Smart notification-based expense tracking for India - Automatically track your monthly expenses by reading transaction SMS and notifications from banking apps. No bank account integration needed!
Features Installation Documentation Contributing
MFTracker (My Finance Tracker) is an open-source mobile app that automatically tracks your monthly expenses by reading transaction SMS and notifications from banking apps, UPI services, and payment platforms. It categorizes your spending, provides insights, and helps you manage your budget - all without connecting to your bank account.
Unlike traditional finance apps that require bank account linking, continuous internet, and cloud storage, MFTracker:
- 100% offline - no internet permission
- Reads transaction SMS and notifications locally
- Stores data locally on your device (SQLite)
- Zero cloud storage - your data never leaves your phone
- Privacy-first, always and forever
- Open source - verify the code yourself
- Automatic SMS & Notification Parsing - Reads transaction SMS and notifications from 20+ Indian banks
- Smart Categorization - Rule-based transaction categorization (Food, Shopping, Bills, etc.)
- Analytics and Insights - Visual charts, spending trends, and budget tracking
- Multi-Account Support - Track multiple bank accounts and credit cards
- Privacy First - All data stored locally, 100% offline, no internet permission
- Lightweight - 85.9MB APK, less than 50MB RAM usage
- Material Design 3 - Modern, beautiful UI with dark mode
- Download the APK:
build/app/outputs/flutter-apk/app-release.apk - Disable Play Protect temporarily (required - see note below)
- Install the APK on your device
- Grant SMS and notification permissions in Settings
- Re-enable Play Protect
Note: Google Play Protect may flag this app because it uses READ_SMS and NotificationListenerService. This is expected for sideloaded apps with sensitive permissions. The app is safe - it is open source, 100% offline with no internet permission, and all SMS/notification data is processed locally only.
Prerequisites:
- Flutter SDK 3.x or higher
- Dart 3.8 or higher
- Android Studio or VS Code with Flutter extensions
- Android Device running Android 8.0 (API 26) or higher
Quick Start:
# Clone the repository
git clone https://github.com/sahilmohile15/mftracker.git
cd mftracker
# Install dependencies
flutter pub get
# Run code generation
flutter pub run build_runner build --delete-conflicting-outputs
# Run the app
flutter run
# Build APK
flutter build apk --releaseComprehensive documentation is available in the docs/ folder:
| Document | Description |
|---|---|
| Project Overview | Vision, features, tech stack, roadmap |
| Architecture | System design, layers, components |
| ML Integration | Categorization, ML model training |
- Framework: Flutter 3.x
- Language: Dart 3.8+
- State Management: Riverpod 2.4+
- Database: SQLite (sqflite 2.3+)
- Charts: fl_chart ^0.65.0
- Testing: flutter_test, integration_test
HDFC Bank, ICICI Bank, State Bank of India (SBI), Axis Bank, Kotak Mahindra Bank, Punjab National Bank (PNB), Bank of Baroda, Canara Bank, IDBI Bank, Yes Bank, and 10+ more banks plus generic parser for unsupported banks.
We welcome contributions! Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.
Areas for contribution:
- Add new bank parsers
- Improve ML categorization
- UI/UX enhancements
- Analytics features
- Localization
- Tests
- Documentation
- All data stored locally on your device
- No cloud sync or external data transmission
- No user accounts or authentication required
- Notification data is never uploaded anywhere
- Optional database encryption (SQLCipher)
See Architecture Documentation for security details.
| Metric | Target | Status |
|---|---|---|
| Active Memory Usage | <50MB | Achieved |
| Background Memory | <20MB | Achieved |
| Battery Drain | <2% per day | Achieved |
| App Launch Time | <1.5s | Achieved |
| APK Size | <15MB | Achieved |
| Parsing Accuracy | 90%+ | Achieved |
- Core CRUD operations for transactions, budgets, accounts
- Notification import with native platform channels
- Smart categorization (90%+ accuracy)
- Budget management with real-time alerts
- Analytics dashboard with charts
- Multi-account support
- ML-powered categorization
- Expense predictions
- Export to CSV/Excel
- Recurring transaction detection
- iOS support
- Cloud backup (optional, encrypted)
- AI-powered financial advisor
- Investment tracking
This project is licensed under the MIT License - see the LICENSE file for details.
- Flutter Team - For the amazing framework
- Riverpod - For excellent state management
- fl_chart - For beautiful charts
- PennywiseAI - For excellent financial text parsing architecture and patterns. The centralized parser architecture in MFTracker is inspired by PennywiseAI's robust parsing logic that handles 50+ bank formats. Special thanks to @sarim2000 for building such a comprehensive reference implementation.
- Open Source Community - For inspiration and support
This project was inspired by the need for a privacy-focused, offline-first expense tracking solution for the Indian market.
- Check the Documentation
- Report bugs via GitHub Issues
- Join our Discussions
MFTracker - Built with in India for better financial tracking
Last Updated: October 30, 2025