LetTutor
LetTutor is the mobile app learn English one to one
- Account registration
- Checking constraints for username, password re-entry, etc.
- Account activation via email
- System login
- Password reset and password reset via email
- Login with Google
- Displaying a list of teachers
- Displaying specialties and filtering teachers by specialties
- Adding teachers to the favorites list
- Viewing the favorites list of teachers
- Searching for teachers
- Pagination for search results
- Grouping search results
- Displaying search results
- Registering as a teacher
- Displaying total number of hours of classes
- Displaying upcoming classes on the homepage and supporting participation in upcoming classes
- Displaying registered class schedules
- Pagination for class schedules
- Viewing the history of past classes
- Cancelling a class
- Initiating video call
- Displaying waiting time before the class starts
- Timing the duration of the class
- Viewing the list of curricula
- Searching for curricula
- Pagination for curriculum
- Viewing detailed description of a curriculum
- Displaying detailed content of a curriculum
- Profile management (updating information, avatar)
- Application settings
- Multilingual support (English and Vietnamese)
- Changing themes (dark & white)
- Display recipient
- Display chat detail
- Language: Dart
- Framework: Flutter
- Nguyα» n Minh HΖ°ng: 20120491
https://www.youtube.com/watch?v=9HcfRAnRQ7M
- The project applies the clean architecture principles to implement the code.
lib/
|- data/
| |- repositories/ => providing data access
| |- models/ => representing data structures
| |- datasources/ => used to communicate with data sources such as a database or API
| |- local/
| |- remote/
|
|- domain/
| |- repositories/ => communicating with the data.repositories layer
| |- entities/ => representing objects within the application
| |- usecases/ => contains the implementation of the application's use cases
|
|- presentation_mobile/
|- presentation/
| |- screens/
| |- widgets/
| |- bloc/
| |- state.dart
| |- bloc.dart
|- app.dart
|- main.dart
Multi-environment configuration (DEV/PRODUCTION) typically involves setting up different configurations for different environments to ensure the application behaves differently based on the environment it is deployed in.
|- configurations/
| |- env/
| |- env_prod.dart
final Map<String, dynamic> environmentProd = {
'name': 'letTutor',
'environment': 'prod',
'baseUrl': 'http://192.168.1.104:8080/',
'mode': 'mobile', // => change web for web version and change to mobile for mobile version
};
| |- configurations.dart
| |- defautl_config.dart
Light1 | Dark1 | Light2 | Dark2 | Light3 | Dark3 |
---|---|---|---|---|---|