An AI powered language learning app · flutter · django.
| Login Screen | Sign In Screen | Sign Up Screen |
|---|---|---|
![]() |
![]() |
![]() |
| Home Screen | Personas Screen | Chat Screen |
|---|---|---|
![]() |
![]() |
![]() |
| Layer | Technology | Purpose / Notes |
|---|---|---|
| Frontend (Mobile) | Flutter 3+ | Cross-platform, modern UI framework |
| Architecture | Clean Architecture | Scalable, testable, layered separation |
| State Management | Riverpod | Robust, testable, declarative |
| Navigation | go_router | Declarative routing, URL-based navigation |
| Networking | Dio | HTTP client with interceptors, ideal for Clean Arch |
| Local Storage | Hive | Lightweight NoSQL DB, good for offline storage |
| Localization | intl package | Multi-language support |
| Component | Technology | Purpose / Notes |
|---|---|---|
| AI Service | Gemini API (Google) | Grammar correction, explanations, chatbot, etc. |
| Abstraction Layer | GeminiService / UseCase (Flutter) | Wrap AI calls inside use cases for testability |
| Component | Technology | Purpose / Notes |
|---|---|---|
| Framework | Django + Django REST Framework | Custom backend API, great for AI and admin tasks |
| Auth | Token-based (JWT or session) | Secure login and premium features |
| AI Integration | Gemini API via Python | API calls from backend for centralized control |
| Database | PostgreSQL | Relational DB, scalable and production-ready |
| Feature | Tool/Tech | Purpose |
|---|---|---|
| Error Monitoring | Sentry | Crash and error tracking in production |
| Secure Storage | flutter_secure_storage | Store auth tokens securely on device |
| Analytics | Firebase Analytics | Track user behavior, improve UX |
| Testing | mocktail, flutter_test, pytest | Unit and integration testing on both ends |
| Subscription System | in_app_purchase + Django | Premium feature unlock and backend verification |
| Admin Panel | Django Admin | Manage users, content, grammar logs, etc. |
| Section | Description | Details |
|---|---|---|
| Overview | Clean Architecture Principles | The project follows Clean Architecture with three main layers: Presentation (UI and user interactions), Domain (business logic, entities, repository interfaces), and Data (data sources, repository implementations). This ensures modularity, testability, and maintainability. |
| Project Structure | lib/ |
Main directory containing all app code. |
core/ |
Global utilities, themes, and configurations. - exceptions/: Custom error handling.- network/: Network-related utilities.- utils/: Reusable utilities.- theme/: App-wide themes and styles. |
|
features/ |
Self-contained feature modules (e.g., language_learning/). |
|
features/language_learning/data/ |
Data layer. - datasources/: Remote and local data sources.- models/: DTOs for API or local DB.- repositories/: Repository implementations. |
|
features/language_learning/domain/ |
Domain layer. - entities/: Core business models.- repositories/: Abstract repository interfaces.- usecases/: Application-specific business logic. |
|
features/language_learning/application/ |
Application layer. - providers/: Riverpod providers.- notifiers/: StateNotifiers and AsyncNotifiers for state management. |
|
features/language_learning/presentation/ |
Presentation layer. - pages/: UI screens.- widgets/: Reusable UI components.- routes/: go_router routes for navigation. |
|
app.dart |
App root widget and go_router configuration. | |
main.dart |
Application entry point. | |
injection.dart |
Dependency injection setup. | |
| Tools & Technologies | Error Monitoring | Sentry: Crash and error tracking in production. |
| Secure Storage | flutter_secure_storage: Store auth tokens securely on device. | |
| Analytics | Firebase Analytics: Track user behavior to improve UX. | |
| Testing | mocktail, flutter_test, pytest: Unit and integration testing for both frontend and backend. | |
| Subscription System | in_app_purchase + Django: Premium feature unlock with backend verification. | |
| Admin Panel | Django Admin: Manage users, content, grammar logs, etc. |





