A modern Flutter task management application built with Clean Architecture principles, featuring AI-powered task descriptions and an intuitive user interface.
This project implements Clean Architecture with three main layers:
- Contains business logic and entities
- Defines repository interfaces
- Pure Dart code with no external dependencies
- Implements repository interfaces
- Handles data persistence using SQLite
- Manages external data sources and API interactions
- Implements UI using Flutter
- Uses BLoC pattern for state management
- Contains reusable widgets and screens
- Create, read, update, and delete tasks
- Filter tasks by status (pending/completed)
- AI-powered task descriptions
- Local data persistence using SQLite
- Interactive tutorial for new users
- Modern Material Design UI with custom color scheme
- Clean Architecture implementation
- BLoC pattern for state management
- Animated UI transitions
- Snackbar notifications for user feedback
The app uses a modern color palette:
- Primary Color: Dark Blue (#1A237E)
- Secondary Color: Light Blue (#3949AB)
- Accent Color: Vibrant Blue (#3D5AFE)
- Background: Light Blue-tinted (#F8F9FF)
- Success/Completed: Vibrant Green (#00C853)
- Pending: Vibrant Orange (#FF6D00)
- Flutter SDK ^3.5.x or +
- State Management:
- flutter_bloc: ^8.1.6
- equatable: ^2.0.5
- Routing & DI:
- flutter_modular: ^6.3.4
- Database:
- sqflite: ^2.4.1
- Networking:
- http: ^1.2.0
- UI Components:
- tutorial_coach_mark: ^1.2.11
- Utilities:
- fpdart: ^1.1.0
- intl: ^0.19.0
- shared_preferences: ^2.2.2
- Flutter SDK ^3.5.x or +
- Dart SDK ^3.5.x or +
- Android Studio / VS Code
- Android SDK / Xcode (for iOS development)
- Clone the repository:
git clone https://github.com/AndreyDAraya/smart_tasks.git
- Navigate to the project directory:
cd smart_tasks
- Install dependencies:
flutter pub get
-
Set up environment variables:
- Copy .env.example to .env
- Update the values as needed
-
Run the app:
flutter run
To generate a signed APK:
- Follow the instructions in android_signing.md to set up signing
- Run the build script:
chmod +x build_apk.sh
./build_apk.sh
The APK will be generated in build/app/outputs/flutter-apk/
lib/
├── core/ # Core functionality and shared code
│ └── failure/ # Error handling
└── src/
└── task/ # Task feature module
├── data/ # Data layer
│ └── internal/
│ ├── datasource/
│ ├── models/
│ └── repositories/
├── domain/ # Domain layer
│ ├── entities/
│ └── repository/
└── presenter/ # Presentation layer
├── bloc/
└── page/
The project includes comprehensive tests:
# Run unit tests
flutter test
Test coverage includes:
- Database operations
- Repository implementations
- BLoC state management
- Entity and model mapping
- AI description generation
The project follows Clean Architecture principles:
- Dependency Rule: Dependencies point inward, with the domain layer at the center
- Separation of Concerns: Each layer has specific responsibilities
- Dependency Injection: Using flutter_modular for DI
- State Management: Using BLoC pattern with flutter_bloc
- Following official Dart style guide
- Using flutter_lints for code analysis
- Clean Architecture principles
- BLoC pattern implementation
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request