A Flutter mobile application for learning the Abesabesi language through interactive lessons, quizzes, and audio pronunciation.
- User registration and login
- Password reset functionality
- Secure session management with Appwrite backend
- Lesson-based learning with categories:
- Greetings (Kuva, Bawo, Daadaa, E ku aaro)
- Family (Baba, Iya, Omo, Egbon)
- Numbers (Ikan, Meji, Meta, Merin)
- Audio pronunciation for each word
- Example sentences with translations
- Progress tracking through lessons
- Interactive quizzes after completing lessons
- Multiple choice questions with shuffled options
- Score tracking and accuracy calculation
- Pass/fail system (70% required to pass)
- Lesson completion upon passing quizzes
- Learning streak counter (daily study tracking)
- Words learned counter
- Average accuracy from quiz results
- Lesson completion status
- Progress persistence using SharedPreferences
- Modern UI with Material Design
- Responsive design for different screen sizes
- Floating banner notifications for user feedback
- Loading states and error handling
- Navigation between lessons and screens
- Audio playback for word pronunciation
- Visual feedback during audio playback
- Graceful fallback when audio files are missing
- Frontend: Flutter (Dart)
- Backend: Appwrite (Authentication & User Management)
- Local Storage: SharedPreferences (Progress & Settings)
- Audio: AudioPlayers package
- UI: Material Design with custom styling
-
Install dependencies:
flutter pub get
-
Configure Appwrite:
- Update
lib/constants/appwrite_config.dartwith your Appwrite credentials - Set up authentication in your Appwrite console
- Update
-
Add audio files:
- Place audio files in
assets/sounds/directory - Audio files should match the filenames in
lesson_data.dart
- Place audio files in
-
Run the app:
flutter run
lib/
├── constants/
│ └── appwrite_config.dart
├── models/
│ ├── lesson_data.dart
│ ├── user_model.dart
│ └── user_progress.dart
├── screens/
│ ├── home_screen.dart
│ ├── lessons_screen.dart
│ ├── quiz_screen.dart
│ ├── progress_screen.dart
│ ├── profile_screen.dart
│ ├── login_screen.dart
│ ├── signup_screen.dart
│ └── forgot_password_screen.dart
├── services/
│ ├── appwrite_services.dart
│ ├── progress_service.dart
│ └── audio_service.dart
└── widgets/
└── floating_banner.dart
- Streak Tracking: Counts consecutive days of study
- Word Counting: Tracks total words learned across all completed lessons
- Accuracy Calculation: Based on quiz performance
- Lesson Progress: Individual progress tracking per lesson
- Question Generation: Creates multiple choice questions from lesson words
- Option Shuffling: Randomizes answer options for variety
- Score Calculation: Tracks correct answers and calculates percentage
- Completion Logic: Marks lessons as complete upon passing (70%+)
- Asset-based Audio: Plays audio files from assets/sounds directory
- Error Handling: Graceful fallback when audio files are missing
- Visual Feedback: Shows playing state with icon changes
- Offline mode support
- More lesson categories
- Advanced quiz types (matching, fill-in-the-blank)
- Social features (leaderboards, sharing)
- Push notifications for daily reminders
- Voice recognition for pronunciation practice
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is licensed under the MIT License.