MasrafApp is a sleek, cross-platform Flutter application designed to simplify personal expense tracking. Built with modern architecture and powerful features, it provides users with an intuitive interface to manage their finances across mobile, web, and desktop platforms.
MasrafApp transforms the way you handle personal finance management by offering a comprehensive expense tracking solution. Whether you're monitoring daily expenses, analyzing spending patterns, or setting financial goals, this application provides all the tools you need in a beautifully crafted interface.
The application leverages Flutter's cross-platform capabilities to deliver a consistent experience across all devices, while Firebase integration ensures your data is securely stored and synchronized in real-time. With support for multiple languages, customizable themes, and powerful analytics, MasrafApp adapts to your personal preferences and financial tracking needs.
- Secure User Authentication: Email/password login with robust validation
- Google Sign-In Integration: Quick and secure authentication via Google
- Account Management: Profile settings and user customization options
- Easy Expense Entry: Add, edit, and delete expenses with intuitive forms
- Category Organization: Customizable expense categories for better organization
- Receipt Attachments: Upload and store receipt images using Firebase Storage
- Bulk Operations: Manage multiple expenses efficiently
- Interactive Charts: Beautiful visualizations powered by fl_chart library
- Category Breakdown: Detailed analysis of spending by categories
- Time-based Filtering: View expenses by current month, last 7 days, or last 30 days
- Total Calculations: Automatic computation of totals and subtotals
- Spending Trends: Track financial patterns over time
- Theme Switching: Toggle between light and dark modes
- Font Size Adjustment: Customize text size for better readability
- Responsive Design: Optimized for mobile, tablet, web, and desktop
- Smooth Animations: Polished transitions and micro-interactions
- Multi-language Support: Available in English and Turkish
- Cultural Adaptation: Localized date formats and currency symbols
- Easy Language Switching: Change language preferences on-the-fly
- Real-time Sync: Seamless data synchronization across all devices
- Firebase Backend: Reliable cloud storage with Firestore database
- Offline Support: Continue using the app even without internet connection
- Data Backup: Automatic cloud backup ensures data safety
- Flutter: Cross-platform UI framework for mobile, web, and desktop
- Dart: Programming language optimized for client development
- Riverpod: Modern, compile-safe state management solution
- Provider Pattern: Efficient dependency injection and state handling
- GoRouter: Declarative routing solution for Flutter applications
- Deep Linking: Support for URL-based navigation
- Firebase Authentication: Secure user authentication and authorization
- Cloud Firestore: NoSQL document database for storing expense data
- Firebase Storage: Cloud storage for receipt images and attachments
- fl_chart: Beautiful and interactive charts for data visualization
- Google Fonts: Wide selection of fonts for enhanced typography
- flutter_svg: SVG support for crisp icons and graphics
- shared_preferences: Local storage for user preferences
- intl: Internationalization and localization support
- uuid: Unique identifier generation for data integrity
- Flutter SDK: Version 3.0.0 or higher
- Dart SDK: Bundled with Flutter (latest stable version)
- IDE: Android Studio, VS Code, or IntelliJ IDEA with Flutter plugins
- Android: API level 21 (Android 5.0) or higher
- iOS: iOS 11.0 or higher
- Web: Modern browsers (Chrome, Firefox, Safari, Edge)
- Desktop: Windows 10+, macOS 10.14+, Linux (Ubuntu 18.04+)
- Active Firebase project with the following services enabled:
- Firebase Authentication
- Cloud Firestore
- Firebase Storage
- Platform-specific configuration files properly set up
git clone https://github.com/mtgsoftworks/MasrafApp.git
cd MasrafAppflutter pub get- Visit the Firebase Console
- Create a new project or select an existing one
- Enable Authentication, Firestore, and Storage services
Android Setup:
- Add an Android app in Firebase Console
- Download
google-services.json - Place it in
android/app/directory
iOS Setup:
- Add an iOS app in Firebase Console
- Download
GoogleService-Info.plist - Place it in
ios/Runner/directory
Web Setup:
- Add a web app in Firebase Console
- Copy the configuration
- Update
web/index.htmlwith Firebase config
Desktop Setup:
- Configure Firebase for desktop platforms
- Update
firebase_options.dartusing FlutterFire CLI
# Install FlutterFire CLI
dart pub global activate flutterfire_cli
# Configure Firebase for your project
flutterfire configure# Run on Android device/emulator
flutter run -d android
# Run on iOS device/simulator (macOS only)
flutter run -d ios# Run on web browser
flutter run -d chrome
# Build for web deployment
flutter build web# Run on Windows
flutter run -d windows
# Run on macOS
flutter run -d macos
# Run on Linux
flutter run -d linuxmasraf_app/
βββ android/ # Android-specific files
βββ ios/ # iOS-specific files
βββ web/ # Web-specific files
βββ windows/ # Windows-specific files
βββ macos/ # macOS-specific files
βββ linux/ # Linux-specific files
βββ lib/ # Main application code
β βββ auth/ # Authentication related code
β β βββ providers/ # Auth state providers
β β βββ services/ # Auth services
β β βββ widgets/ # Auth UI components
β βββ features/ # Feature-specific modules
β β βββ expenses/ # Expense management
β β βββ analytics/ # Charts and analytics
β β βββ categories/ # Category management
β β βββ settings/ # App settings
β βββ home/ # Home screen components
β βββ shared/ # Shared utilities and widgets
β β βββ constants/ # App constants
β β βββ models/ # Data models
β β βββ providers/ # Global providers
β β βββ services/ # API services
β β βββ utils/ # Utility functions
β β βββ widgets/ # Reusable widgets
β βββ l10n/ # Localization files
β βββ main.dart # Application entry point
β βββ firebase_options.dart # Firebase configuration
βββ assets/ # Static assets
β βββ images/ # Image files
β βββ icons/ # Icon files
β βββ fonts/ # Custom fonts
βββ test/ # Unit and widget tests
βββ integration_test/ # Integration tests
βββ pubspec.yaml # Project dependencies
βββ .gitignore # Git ignore rules
βββ README.md # Project documentation
βββ LICENSE # License information
- Sign Up/Sign In: Create an account or sign in with existing credentials
- Set Up Categories: Customize expense categories to match your needs
- Add Your First Expense: Record an expense with amount, category, and optional receipt
- Explore Analytics: View charts and insights about your spending patterns
Adding an Expense:
- Tap the '+' button on the home screen
- Enter expense amount and description
- Select or create a category
- Optionally attach a receipt photo
- Save the expense
Viewing Analytics:
- Navigate to the Analytics tab
- Select desired time range (7 days, 30 days, current month)
- Explore category breakdowns and trends
- Use interactive charts to drill down into data
Managing Categories:
- Go to Settings > Categories
- Add, edit, or delete expense categories
- Customize category colors and icons
- Set category-specific budgets
We welcome contributions from the community! Here's how you can help improve MasrafApp:
- Fork the Repository: Create your own fork of the project
- Create a Feature Branch:
git checkout -b feature/amazing-feature - Make Your Changes: Implement your feature or bug fix
- Write Tests: Add unit tests for your changes
- Commit Changes:
git commit -m 'Add amazing feature' - Push to Branch:
git push origin feature/amazing-feature - Open Pull Request: Submit your changes for review
- Follow Flutter and Dart coding conventions
- Write clear, concise commit messages
- Include tests for new features
- Update documentation as needed
- Ensure all tests pass before submitting
- π Bug fixes and improvements
- β¨ New features and enhancements
- π Additional language translations
- π Documentation improvements
- π§ͺ Test coverage expansion
- π¨ UI/UX enhancements
This project is licensed under the MIT License - see the LICENSE file for details.
- β Commercial use
- β Modification
- β Distribution
- β Private use
- β Liability
- β Warranty
flutter dart expense-tracker finance-management cross-platform mobile-app web-app desktop-app firebase riverpod material-design analytics charts localization authentication cloud-storage responsive-design money-management budget-tracker personal-finance
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Developer: MTG Softworks
Made with β€οΈ by MTG Softworks
*Transform your financial tracking experience with MasrafApp - where simplicity meets powerful functionality