A personal language learning app to teach oneself Kannada, built using Flutter 3.22.0. This project focuses on delivering an engaging and interactive experience, similar to Duolingo, with the goal of making Kannada learning easy and enjoyable.
- Game-Style Levels: Learn Kannada through progressive levels stored in simple JSON files for easy modification and scalability.
- Dependency Injection: Utilizes
get_it
andinjectable
to manage dependencies and ensure clean architecture. - Routing: Easy navigation through the app using
auto_route
. - State Management: Efficient state management with the
provider
package to handle app state.
This app uses Firebase services to enhance user experience, including Authentication, Firestore, and Analytics. To run the app with Firebase, you need to add the Firebase configuration files (google-services.json for Android and GoogleService-Info.plist for iOS) to the project. These files are not included in the repository for security reasons.
For detailed instructions on obtaining or generating these files, please refer to the FIREBASE_CONFIGURATION file.
For more detailed instructions and troubleshooting, please refer to the INSTRUCTIONS.md file.
- Clone the repository:
git clone https://github.com/rshrc/Words625
- Navigate to the project directory:
cd Words625
- Install dependencies:
flutter pub get
- Build executable package:
flutter pub run build_runner build --delete-conflicting-outputs
- Run the app:
flutter run
- get_it: A simple service locator for dependency injection.
- auto_route: Provides a powerful and easy-to-use routing system.
- provider: For state management across the app.
- injectable: An annotation-based code generator for dependency injection.
Game levels are stored in simple JSON files, allowing easy creation and modification of levels without altering the app code. JSON files are parsed at runtime to dynamically generate learning content.
Screenshot 1 | Screenshot 2 | Screenshot 3 |
---|---|---|
- Add Firebase Auth
- Add Firebase Crashlytics
- Add Firebase Analytics
- Maintain Streaks and Streak Reminders
- Leagues for competition - Amethyst, Ruby equivalent of Duolingo
- Deploy to stores
- Implement advanced learning modules with speaking and listening exercises.
- Add Fill in the blanks type game levels.
- Expand the game level repository for a more comprehensive learning journey.
- Add support for learning Kannada script and pronunciation.
- Add image-based learning exercises.
All PR's and contributions are welcome! Whether you're interested in fixing bugs, adding new features, or improving documentation, we would love your help. Please feel free to open a Pull Request with your improvements. If you're not sure where to start, check out our open issues for inspiration, or join our community on Discord to discuss and collaborate. Together, we can make Kannada learning fun and accessible to everyone!
Join our dev community at Discord!