Moneta is an intelligent personal finance tracking application built with Flutter that automatically captures and categorizes your transactions from banking SMS messages. Powered by Google's Gemini AI, it provides personalized financial advice, budget planning, and investment recommendations tailored specifically for Indian users.
- Smart SMS Parsing: Automatically captures and parses banking SMS notifications
- Multi-Bank Support: Works with all major Indian banks (HDFC, ICICI, SBI, Axis, PNB, BCCB, etc.)
- Real-time Processing: Instant transaction categorization and balance tracking
- Duplicate Prevention: Advanced filtering to prevent duplicate transaction entries
- Personalized Tips: Gemini AI analyzes spending patterns to provide tailored financial advice
- Smart Categorization: Automatic transaction categorization with 15+ predefined categories
- Budget Planning: AI-generated monthly budget plans based on your spending habits
- Investment Advice: Personalized investment recommendations with SIP suggestions
- Monthly Reports: Detailed spending analysis with category breakdowns
- Visual Insights: Interactive charts and graphs for spending patterns
- Savings Rate Tracking: Monitor your financial health with savings rate calculations
- Category Analysis: Detailed breakdown of spending by categories with emoji tags
- Quick Overview: Android home widget showing daily debit/credit totals
- Real-time Updates: Automatically updates with latest transaction data
- Minimalist Design: Clean, informative widget for your home screen
- Transaction Alerts: Instant notifications for new transactions
- Bulk Processing: Notifications for SMS inbox imports
- Balance Updates: Real-time balance notifications
- Financial Reminders: Proactive financial guidance alerts
- Framework: Flutter 3.7.2 with Dart SDK
- State Management: Provider pattern for reactive UI
- Local Storage: Hive database for offline transaction storage
- Charts: FL Chart for beautiful data visualizations
- Theming: Dark/Light theme support with custom app themes
- Cloud Functions: TypeScript-based serverless functions
- Firestore: NoSQL database for cloud transaction storage
- Authentication: Firebase Auth for secure user management
- API Integration: Direct Gemini AI API integration
- Model: Google Gemini 2.0 Flash for financial analysis
- Features: Natural language processing for financial advice
- Context: Indian financial market awareness (SIP, FD, ELSS, PPF)
- Personalization: User-specific spending pattern analysis
moneta_app/
โโโ lib/
โ โโโ main.dart # App entry point
โ โโโ models/ # Data models
โ โ โโโ transaction.dart # Transaction model
โ โโโ screens/ # UI screens
โ โ โโโ home.dart # Main dashboard
โ โ โโโ dashboard.dart # Financial overview
โ โ โโโ insights.dart # AI-powered insights
โ โ โโโ financial_advice_screen.dart # Financial advice
โ โ โโโ local_transactions.dart # Transaction history
โ โ โโโ monthly_reports.dart # Monthly analytics
โ โโโ services/ # Business logic
โ โ โโโ sms_capture.dart # SMS processing
โ โ โโโ sms_parser_service.dart # Transaction parsing
โ โ โโโ gemini_advice_service.dart # AI integration
โ โ โโโ insights_service.dart # Analytics engine
โ โ โโโ notification_service.dart # Push notifications
โ โ โโโ widget_service.dart # Home widget
โ โโโ widgets/ # Reusable components
โ โโโ theme/ # App theming
โ โโโ local/ # Local storage
โโโ functions/ # Firebase Cloud Functions
โโโ android/ # Android configuration
โโโ assets/ # App resources
Supported Transaction Types:
- โ Debit transactions (payments, purchases, transfers)
- โ Credit transactions (salary, refunds, deposits)
- โ UPI transactions with merchant details
- โ ATM withdrawals and cash transactions
- โ EMI and recurring payments
Parsing Capabilities:
- Amount Extraction: Supports INR, Rs., โน formats with comma separation
- Date Recognition: Multiple date formats (DD-MMM-YYYY, DD/MM/YYYY)
- Merchant Detection: Smart extraction of business names and payment recipients
- Transaction ID: Extracts UPI reference numbers and transaction IDs
- Balance Tracking: Current balance extraction from SMS
Example SMS Processing:
Input: "Your BCCB A/c XXXXXX is debited INR 60.00 On 17-AUG-2025 by UPI/DR/522916825224/STAR B. Clear bal INR 1,50,893.38."
Output: {
type: 'debit',
amount: 60.0,
date: '17-AUG-2025',
recipient: 'STAR B',
category: 'Food & Beverages',
transactionId: '522916825224',
balance: 150893.38
}
Financial Analysis:
- Spending Pattern Recognition: Identifies unusual spending behaviors
- Category Optimization: Specific recommendations for high-spending categories
- Savings Opportunities: Concrete steps to improve savings rate
- Risk Assessment: Alerts for concerning spending patterns
Personalized Recommendations:
- Budget Allocation: Category-wise spending recommendations
- Investment Suggestions: SIP, FD, ELSS recommendations based on surplus
- Emergency Fund: Guidance on emergency fund building
- Tax Planning: 80C investment suggestions for tax optimization
Pre-defined Categories with Emoji Tags:
- ๐ฝ๏ธ Food & Beverages: Restaurants, food delivery, cafes
- ๐ Transport: Uber, Ola, fuel, metro, parking
- ๐ Shopping: Amazon, Flipkart, retail stores
- ๐ฌ Entertainment: Netflix, movies, games, subscriptions
- ๐ก Bills & Utilities: Electricity, water, internet, mobile
- ๐ฅ Healthcare: Hospitals, pharmacies, medical expenses
- ๐ Education: Schools, courses, books, training
- โฝ Fuel: Petrol pumps, vehicle fuel
- ๐ฆ Banking & Finance: ATM, loans, EMI, bank charges
Frequency Tags:
- ๐ฅ Very frequent (15+ transactions)
- โก Frequent (10+ transactions)
- ๐ Regular (5+ transactions)
Three Key Metrics:
- Debited: Total outgoing transactions
- Credited: Total incoming transactions
- Balance: Current account balance
Monthly Analytics Reset:
- Automatic monthly report generation
- Analytics reset for fresh monthly insights
- Year-over-year comparison capabilities
- Flutter SDK 3.7.2 or higher
- Dart SDK
- Android Studio / VS Code
- Firebase account
- Gemini AI API key
git clone https://github.com/RA-L-PH/Moneta.git
cd Moneta/moneta_appflutter pub get# Install Firebase CLI
npm install -g firebase-tools
# Login to Firebase
firebase login
# Initialize Firebase project
firebase init
# Deploy Cloud Functions
cd functions
npm install
firebase deploy --only functions// In lib/services/gemini_advice_service.dart
static const String _geminiApiKey = 'YOUR_GEMINI_API_KEY';The app requires the following permissions (automatically handled):
READ_SMS: For SMS transaction capturePOST_NOTIFICATIONS: For transaction notificationsINTERNET: For AI API calls and cloud sync
flutter run- Grant SMS and notification permissions
- The app automatically starts capturing banking SMS
- View transactions in the Dashboard tab
- Overview Section: See your debited, credited, and balance amounts
- Category Breakdown: Visual charts of spending categories
- Recent Transactions: Latest transaction history
- Navigate to Insights tab
- Select date range for analysis
- Toggle AI insights for detailed analysis
- Get personalized spending tips with emoji tags
- Financial Tips: AI-generated personalized tips
- Budget Planning: Set income and savings targets
- Investment Advice: Get portfolio recommendations
- Long press on Android home screen
- Add Moneta Widget
- View daily transaction totals at a glance
- Local-First: Transactions stored locally using Hive encryption
- Selective Sync: Only aggregated data sent to AI services
- No Raw SMS: Raw SMS content is anonymized for AI analysis
- Secure API: All API calls use HTTPS encryption
- SMS Access: Only reads banking SMS, no personal messages
- Notification: For transaction alerts only
- Internet: For AI insights and cloud backup (optional)
- Code Obfuscation: ProGuard enabled for release builds
- Network Security: Configured security policies
- No Malicious Behavior: Transparent SMS processing only
# Run SMS parser tests
flutter test test/sms_parser_test.dart
# Run AI advice tests
flutter test test/gemini_advice_test.dart
# Run all tests
flutter test- Use the SMS Parser Test Screen in the app
- Test sample banking SMS messages
- Verify parsing accuracy and categorization
# Build release APK
flutter build apk --release
# Build App Bundle for Play Store
flutter build appbundle --releasecd functions
npm run build
firebase deploy --only functions- ๐ Investment Tracking: Monitor mutual fund and stock performance
- ๐ฏ Goal-Based Planning: Set and track financial goals
- ๐ค Chatbot: Conversational AI for financial queries
- ๐ Bank API Integration: Direct bank account linking
- ๐ Advanced Analytics: Predictive spending analysis
- ๐ Multi-Language: Support for regional Indian languages
- ๐ Real-time Sync: Live transaction synchronization
- ๐ฑ iOS Version: Full iOS app development
- ๐ Offline AI: Local machine learning models
- ๐ Biometric Auth: Fingerprint and face unlock
- โ๏ธ Auto Backup: Automated cloud backups
- โก SMS Parsing: < 5ms per message
- ๐ง AI Response: < 3 seconds average
- ๐พ Storage: Efficient local storage with Hive
- ๐ Battery: Optimized background processing
- ๐ฑ Memory: < 50MB RAM usage
We welcome contributions! Please read our contributing guidelines:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is proprietary software. All rights reserved.
For support and questions:
- ๐ง Email: [email protected]
- ๐ Issues: Create a GitHub issue
- ๐ Documentation: Check the wiki section
- Flutter Team: For the amazing cross-platform framework
- Google Gemini AI: For powerful AI financial insights
- Firebase: For robust backend infrastructure
- Indian Banking System: For standardized SMS formats
- Open Source Community: For countless helpful packages
Made with โค๏ธ for better financial management
Moneta - Your AI-Powered Financial Companion
