Built with Flutter • Clean Architecture • BLoC • Scalable Design
A professional transformation of a legacy codebase into a modern, high-performance Flutter application. This project demonstrates strong knowledge of Clean Architecture, SOLID principles, and scalable mobile development.
This project was initially provided with an unstructured and poorly organized codebase. The main goal was to refactor, restructure, and rebuild the application using modern Flutter development practices.
- Complete refactor of legacy codebase
- Implemented feature-based Clean Architecture
- Applied SOLID principles for maintainability
- Improved code readability and structure
- Updated and optimized dependencies
- 🔐 User Authentication (Login & Register)
- 💾 Persistent user data with SharedPreferences
- 🌍 Multi-language support (EN, AZ, TR, RU)
- ⭐ Favorites system with local storage
- 📱 Responsive UI using flutter_screenutil
The project follows a Feature-based Clean Architecture, separating UI, business logic, and data layers.
lib/
├── app/ # Entry point & global providers
├── core/ # Constants, themes, shared utilities
├── data/ # Models and data layer
└── features/ # Feature-based modules
├── auth/ # Authentication
├── dashboard/ # Main screen
├── favorites/ # Saved items
├── language/ # Localization
├── lessons/ # Lesson system
└── profile/ # User profile
The application uses BLoC / Cubit:
- Separation of UI and business logic
- Predictable and scalable state flow
- Improved performance and maintainability
- Flutter
- Dart
- BLoC / Cubit
- SharedPreferences
- flutter_screenutil
- Google Fonts
- Refactored messy and unstructured codebase
- Separated concerns (UI, logic, data)
- Improved performance and rebuild efficiency
- Standardized naming and structure
- Made the app scalable for future features
- API Integration (REST / GraphQL)
- Backend integration (Firebase / Supabase)
- Unit & Widget Testing
- Advanced progress tracking
- Dark mode support
Fərhad Kərimov (fourhadd)
This project demonstrates the ability to analyze an existing codebase, refactor it, and rebuild it using scalable architecture and clean coding principles. It reflects real-world development skills, including problem-solving, system design, and code optimization.