LinguaLearn is an interactive mobile application designed to help users master new languages through daily lessons, flashcards, and quizzes. Built with Flutter using Clean Architecture and BLoC pattern.
- Multi-Language Support - Learn Spanish, French, German, or Japanese
- Daily Lessons - Structured lessons with vocabulary, phrases, and sentences
- Flashcards - Interactive swipeable cards with translations and pronunciations
- Quizzes - Multiple choice assessments to test your knowledge
- Categories - Organized learning content (Vocabulary, Grammar, Phrases, Numbers, etc.)
- Progress Tracking - Track completed lessons and quiz scores
- Clean Intuitive UI - Material Design 3 with modern aesthetics
- Offline Learning - All data stored locally in SQLite
- Quick Actions - Fast access to flashcards and quizzes from home screen
- Daily Lesson - New lesson available each day on the home screen
lib/
├── core/
│ ├── constants/ # App constants
│ └── theme/ # Theme configuration
├── data/
│ ├── database/ # SQLite database helper
│ ├── models/ # Data models
│ └── repositories/ # Repository implementations
├── domain/
│ └── entities/ # Business entities
└── presentation/
├── bloc/ # BLoC state management
├── screens/ # UI screens
└── widgets/ # Reusable widgets
| Category | Technology |
|---|---|
| Framework | Flutter 3.10+ |
| Language | Dart 3.10+ |
| State Management | flutter_bloc |
| Local Storage | sqflite |
| Architecture | Clean Architecture |
- Flutter SDK 3.10 or higher
- Android SDK / iOS SDK / Xcode
-
Clone the repository
git clone https://github.com/yourusername/language_learning_app.git cd language_learning_app -
Install dependencies
flutter pub get
-
Run the app
flutter run
Debug APK:
flutter build apk --debugRelease APK:
flutter build apk --releaseiOS:
flutter build ios- Home Screen (
home_screen.dart) - Dashboard with daily lesson, quick actions, and progress - Lessons Screen (
lessons_screen.dart) - Browse all available lessons by category - Lesson Detail Screen (
lesson_detail_screen.dart) - View words in a lesson - Flashcards Screen (
flashcards_screen.dart) - Swipeable flashcards practice - Quiz Screen (
quiz_screen.dart) - Take quizzes to test knowledge - Categories Screen (
categories_screen.dart) - Browse words by category - Main Navigation (
main_navigation.dart) - Bottom navigation and app shell
LanguageBloc- Language selectionLessonBloc- Lessons loading and completionFlashcardBloc- Flashcard navigation and flipQuizBloc- Quiz questions and scoring
The app comes pre-loaded with sample content:
- Languages: Spanish, French, German, Japanese
- Spanish Vocabulary: 20+ words including greetings, numbers, common phrases
- Lessons: Basic Greetings, Numbers 1-5, Essential Words
- Quiz Questions: Basic Greetings Quiz, Numbers Quiz
Contributions are welcome! Please read our contributing guidelines first.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Flutter - UI framework
- flutter_bloc - State management
- sqflite - SQLite database
- Material Design - Design system
- GitHub: @yourusername
- Email: your.email@example.com
Made with ❤️ for language learners