A modern Flutter application for personal finance management. Track expenses, set financial goals, and manage investments — all in one place.
| Platform | Status |
|---|---|
| Android | ✅ |
| iOS | ✅ |
| Web | ✅ |
| macOS | ✅ |
| Linux | ✅ |
| Windows | ✅ |
The project is built on Clean Architecture + BLoC pattern:
Presentation Layer (Pages + Blocs)
↓
Domain Layer (Entities + UseCases + Repositories)
↓
Data Layer (Models + DataSources + Mappers + RepoImpls)
↓
Supabase / Firebase / Hive
Each feature follows this structure:
feature/
├── data/
│ ├── data_source/
│ ├── mapper/
│ ├── models/
│ └── repositories/
├── domain/
│ ├── entities/
│ ├── repositories/ ← abstract
│ └── usecases/
└── presentation/
├── blocs/
└── pages/
| Feature | Description |
|---|---|
| 🔐 Auth | Sign in and sign up (OTP SMS) |
| 🏠 Home | Dashboard — expense and balance overview |
| 💰 Finance | Financial reports and analytics |
| 🎯 Goals | Financial goals and progress tracking |
| ➕ Add Expense | Quick expense entry |
| 👤 Profile | Profile, settings, achievements, habit tracker, subscriptions, automation, and more |
flutter_bloc ^9.1.1·bloc ^9.1.0·bloc_concurrency ^0.3.0
go_router ^17.0.0— 4 tabs withStatefulShellRoute
supabase_flutter ^2.12.0— primary backenddio ^5.9.0— HTTP client- Firebase — Messaging, Crashlytics, Remote Config
hive ^2.2.3+hive_flutter ^1.1.0
intl ^0.20.2+flutter_localizations- Supported languages: 🇺🇿 Uzbek · 🇷🇺 Russian · 🇬🇧 English · 🇹🇯 Tajik
flutter_svg·cached_network_image·shimmer·pinput·scale_button·gap- Fonts: Manrope (400/500/700) · Poppins (500/700)
- Light and Dark theme support
freezed ^3.2.3·json_serializable ^6.13.0·injectable_generator ^2.9.1·flutter_gen_runner ^5.12.0
- Flutter SDK
>=3.10.0 <4.0.0 - Dart SDK
>=3.0.0
# Clone the repository
git clone https://github.com/sharifsharipov/expense_pro.git
cd expense_pro
# Install dependencies
flutter pub get
# Run code generation
dart run build_runner build --delete-conflicting-outputs
# Run the app
flutter runmake gen # Run code generation (build_runner)
make clean # Clean the projectlib/
├── core/ # Utilities, theme, DI, errors, extensions
│ ├── common/ # Shared widgets
│ ├── di/ # GetIt + Injectable
│ ├── themes/ # AppColor, AppTextStyle, AppTheme
│ ├── services/ # Auth, Location, Notification, SMS
│ └── ...
├── features/
│ ├── auth/
│ ├── home/
│ ├── finance/
│ ├── goals/
│ ├── add_expense/
│ ├── profile/
│ └── main/
└── l10n/ # Localization (arb files)
- Fork the repository
- Create a feature branch:
git checkout -b feature/new-feature - Commit your changes:
git commit -m 'feat: add new feature' - Push to the branch:
git push origin feature/new-feature - Open a Pull Request
This project is distributed under a private license.
Made with ❤️ using Flutter