Transform 60 hours of classroom learning into 15 minutes of daily, AI-powered practice
Features โข Screenshots โข Architecture โข Getting Started
A production-ready Android application revolutionizing language learning through AI-powered personalization, spaced repetition algorithms, and gamified experiences. Built for IELTS/TOEFL learners and language enthusiasts worldwide.
- 2,700+ vocabulary words across English & Spanish
- 180 structured lessons per language (A1-B2 CEFR)
- 36+ UI screens with pixel-perfect Compose
- 99.9% offline capability with smart sync
- 200% retention boost via SM-2 algorithm
- SM-2 Spaced Repetition: Scientifically proven to boost retention by 200%
- Active Recall: Flashcard-based learning optimized for long-term memory
- Memory Analytics: Real-time forgetting curve visualization
- Dynamic Mnemonics: Context-aware memory aids for every word
- Smart Distractors: AI-generated quiz options
- Conversation Simulation: Practice dialogues with AI tutor
- Pronunciation Feedback: Speech-to-text with accent coaching
- Streak Tracking: Daily practice with ๐ฅ flame icon motivation
- 50+ Achievements: Unlock badges for milestones
- XP & Leveling: Visual progression system
- Leaderboards: Optional social comparison
- Room Database: Local persistence for all content
- WorkManager Sync: Intelligent background synchronization
- Download Management: Pre-fetch lessons for offline access
- Heatmap Calendar: GitHub-style activity visualization
- Growth Charts: Line graphs showing vocabulary acquisition
- Mastery Breakdown: Donut charts categorizing word proficiency
- Time Tracking: Daily/weekly/monthly practice analysis
![]() Welcome Multi-language greetings |
![]() Smart Learning AI retention focus |
![]() AI Personalization Unique learning paths |
![]() Make Progress Gamified rewards |
![]() Offline Ready Learn anywhere |
![]() Login Portal Secure account access |
![]() Fast Registration Quick user onboarding |
![]() Main Dashboard Daily goals & streaks |
![]() Daily Challenges Skill-based missions |
![]() Vocabulary Bank 2,700+ word database |
![]() Course Selection CEFR-aligned paths |
![]() Mastery Metrics Retention tracking |
![]() Memory Science The Forgetting Curve |
![]() Contribution Map GitHub-style activity |
![]() User Profile Personalized experience |
![]() System Controls Advanced app settings |
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Presentation Layer โ
โ (Jetpack Compose + ViewModels) โ
โโโโโโโโโโโโโโฌโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโค
โ Home ModuleโLearn Moduleโ Profile Module โ
โโโโโโโโโโโโโโดโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Domain Layer โ
โ (Pure Kotlin Business Logic) โ
โโโโโโโโโโโโโโฌโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโค
โ SM-2 Engineโ AI Servicesโ Use Cases โ
โโโโโโโโโโโโโโดโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Data Layer โ
โ (Repositories + Data Sources) โ
โโโโโโโโโโโโโโฌโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโค
โ Room (Local)โ Firestore โ DataStore (Prefs) โ
โโโโโโโโโโโโโโดโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโ
| Category | Technology | Purpose |
|---|---|---|
| Language | Kotlin 1.9.20 | Type-safe codebase |
| UI | Jetpack Compose 1.5.4 | Declarative UI |
| Architecture | MVVM + Clean | Separation of concerns |
| DI | Hilt 2.48 | Dependency injection |
| Local DB | Room 2.6.0 | SQLite with coroutines |
| Cloud DB | Firestore | Real-time sync |
| Auth | Firebase Auth | Multi-provider login |
| AI | Gemini 1.5 Flash | Content generation |
| Notifications | FCM + WorkManager | Smart nudges |
| Testing | JUnit5 + Espresso | Unit + UI tests |
// Calculate new easiness factor (1.3-2.5 range)
fun calculateEaseFactor(currentEF: Float, quality: Int): Float {
val fiveMinusQ = 5 - quality
val adjustment = 0.1f - (fiveMinusQ * (0.08f + (fiveMinusQ * 0.02f)))
return max(1.3f, currentEF + adjustment)
}
// Determine next review interval
fun calculateInterval(prevInterval: Int, EF: Float, reps: Int): Int {
return when (reps) {
0 -> 1 // First review: 1 day
1 -> 6 // Second review: 6 days
else -> (prevInterval * EF).roundToInt() // Exponential growth
}
}class NotificationEngine {
private val epsilon = 0.1f // 10% exploration
fun selectOptimalNotification(user: User): Template {
return if (Random.nextFloat() < epsilon) {
templates.random() // Explore
} else {
templates.maxByOrNull { it.clickRate[user.segment] } // Exploit
}
}
}- Android Studio Hedgehog (2023.1.1+)
- JDK 17+
- Android SDK 24+ (min), 34 (target)
- Firebase project
- Gemini API key
# 1. Clone repository
git clone https://github.com/yourusername/linguasphere.git
cd linguasphere
# 2. Add Firebase config
# Download google-services.json from Firebase Console
# Place in: app/google-services.json
# 3. Set environment variables in local.properties
GEMINI_API_KEY=your_gemini_api_key
FIREBASE_PROJECT_ID=your_project_id
# 4. Build and run
./gradlew assembleDebug./gradlew testDebugUnitTest # Unit tests
./gradlew connectedDebugAndroidTest # UI tests
./gradlew jacocoTestReport # Coverage report- Core SM-2 learning engine
- 36+ UI screens with Compose
- Firebase integration (Auth, Firestore, FCM)
- Offline-first architecture
- Gamification (streaks, achievements)
- Gemini API integration
- Dynamic mnemonic generation
- Advanced conversation AI (voice I/O)
- Pronunciation scoring (phoneme-level)
- Personalized learning paths
- French course (A1-B2, 180 lessons)
- German course (A1-A2, 60 lessons)
- Mandarin Chinese (Beginner, 40 lessons)
- Business English specialization
- Study groups (max 5 members)
- Weekly challenges with leaderboards
- Peer review for writing
- Language exchange matching
- Admin dashboard (web)
- Instructor portal
- Bulk user management
- White-label solution
- iOS app (SwiftUI)
- Web app (React)
- Desktop apps (Electron)
- Smart TV app (Android TV)
We welcome contributions!
- Fork the repository
- Create feature branch:
git checkout -b feature/amazing-feature - Commit changes:
git commit -m 'Add amazing feature' - Push to branch:
git push origin feature/amazing-feature - Open Pull Request
- Follow Kotlin coding conventions
- Use ktlint for linting
- Write meaningful commit messages
This project is licensed under the MIT License.
- SM-2 Algorithm: Based on research by Piotr Wozniak
- UI Inspiration: Duolingo, Anki, Memrise
- Icons: Material Design Icons
- Beta Testers: 100+ users for invaluable feedback
- Email: mohamedoussama.belalia@univ-tiaret.dz
- Facebook: @subaru.fly.03
- Discord: @imaginator.way
- Telegram: @bmo1111
Built with โค๏ธ for learners worldwide
โญ โญ โญ โญ โญ
Report Bug โข Request Feature โข Documentation















