A modern, feature-rich Flutter expense tracking application that helps users manage their finances with ease. Built with clean architecture and local data storage for complete offline functionality.
- 💳 Transaction Management: Add, edit, and delete income/expense transactions
- 📊 Financial Dashboard: Real-time balance tracking and spending insights
- 📈 Statistics & Charts: Visual representation of spending patterns by category
- 🏷️ Category Organization: Predefined categories for better expense classification
- 🔍 Transaction History: Comprehensive view of all financial activities
- 💾 Local Storage: Complete offline functionality using SharedPreferences
- 🌙 Modern UI: Clean, intuitive interface with smooth animations
- 📱 Responsive Design: Optimized for various screen sizes
- 🚀 Fast Performance: Lightweight app with instant data access
- 🔒 Privacy First: No cloud dependencies, all data stays on device
- 🎯 No Authentication: Instant access without signup requirements
- Flutter 3.32.7: Cross-platform mobile development
- Dart 3.8.1: Programming language
- GetX: State management and navigation
- Material Design: UI components and theming
- SharedPreferences: Local key-value storage
- JSON Serialization: Data persistence and retrieval
- Local Data Service: Custom service layer for data management
dependencies:
flutter: sdk
get: ^4.6.6 # State management
shared_preferences: ^2.2.3 # Local storage
intl: ^0.19.0 # Date formatting
syncfusion_flutter_charts: ^27.1.50 # Charts
lottie: ^3.1.0 # Animations
flutter_svg: ^2.0.10+1 # SVG icons
iconsax: ^0.0.8 # Icon librarylib/
├── controller/ # Business logic & state management
│ ├── home_controller/ # Dashboard functionality
│ ├── wallet_controller/# Transaction management
│ └── auth_controller/ # User registration (simplified)
├── model/ # Data models
│ ├── transaction_model.dart
│ └── categories_model.dart
├── services/ # Service layer
│ └── local_data_service.dart
├── view/ # UI screens
│ ├── home/ # Dashboard screens
│ ├── wallet/ # Transaction screens
│ └── auth/ # Login/register (optional)
├── widgets/ # Reusable components
└── routes/ # Navigation setup
- MVC Architecture: Clean separation of concerns
- Service Layer Pattern: Centralized data management
- Repository Pattern: Data access abstraction
- Observer Pattern: Reactive state management with GetX
- Flutter SDK (3.0.0 or higher)
- Dart SDK (3.0.0 or higher)
- Android Studio / VS Code
- Android emulator or physical device
-
Clone the repository
git clone https://github.com/jitu72/Expanse-Tracker-App.git cd Expanse-Tracker-App -
Install dependencies
flutter pub get
-
Run the application
flutter run
# Android APK
flutter build apk --release
# Android App Bundle
flutter build appbundle --releaseThe app automatically initializes with sample transactions on first launch:
- Monthly salary (Income): $2000
- Grocery shopping (Expense): $50
- Coffee purchase (Expense): $5
- Categories: Modify categories in
lib/model/categories_model.dart - Colors: Update app theme in
lib/config/app_color.dart - Sample Data: Adjust in
lib/services/local_data_service.dart
- User Input → Transaction Form
- Validation → Controller Layer
- Processing → Local Data Service
- Storage → SharedPreferences
- State Update → GetX Controllers
- UI Refresh → Reactive Widgets
# Run unit tests
flutter test
# Run widget tests
flutter test test/widget_test.dart| Platform | Status |
|---|---|
| Android | ✅ Fully Supported |
| iOS | ✅ Fully Supported |
| Web | ✅ Supported |
| Windows | ✅ Supported |
| macOS | ✅ Supported |
| Linux | ✅ Supported |
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Flutter Team: For the amazing framework
- GetX Community: For excellent state management
- Material Design: For UI/UX guidelines
- Syncfusion: For beautiful chart components
Jihadul Islam
- GitHub: @jitu72
- Email: jihadulislam.jitu72@gmail.com
⭐ Star this repository if you found it helpful!
Built with ❤️ using Flutter