Smart expense tracker for Android that auto-detects bank transactions from SMS. Built for Ethiopian banks (CBE, telebirr) with a visual pattern builder, 50/30/20 budget engine, daily spending limits, debt tracking, and analytics. Flutter + Riverpod + Hive.
# BudgetSMS
A smart expense tracking app for Android that automatically detects bank transactions from SMS messages. Built for the Ethiopian banking ecosystem with pre-configured patterns for CBE, CBE Birr, and telebirr.
## Features
- **Automatic SMS Parsing** - Detects incoming bank SMS and extracts transaction amounts, fees, and descriptions using regex patterns
- **Visual SMS Pattern Builder** - Paste a real bank SMS, tap tokens to tag them as Amount/Fee/Description, and the app generates regex patterns automatically (no regex knowledge needed)
- **50/30/20 Budget Engine** - Allocates income into Needs, Wants, and Savings with customizable percentages that always total 100%
- **Daily Spending Limit** - Calculates how much you can spend per day until your next payday
- **Debt & Loan Tracking** - Track money lent and borrowed with due dates, partial payments, and overdue alerts
- **Analytics Dashboard** - Weekly spending bar chart, category breakdown pie chart, and monthly summary with net balance
- **13 Pre-configured Patterns** - Works out of the box with CBE, CBE Birr, and telebirr SMS formats
- **Android Home Widget** - Shows daily budget remaining on your home screen
- **Offline-First** - All data stored locally with Hive, no internet required
## Tech Stack
| Layer | Technology |
|---|---|
| Framework | Flutter (Dart) |
| State Management | Riverpod |
| Local Storage | Hive |
| SMS Parsing | another_telephony + RegExp |
| Charts | fl_chart |
| Home Widget | home_widget |
## Architecture
```
lib/
main.dart # Entry point, Hive init
app.dart # Main shell with bottom navigation
database/
local_db.dart # Hive database wrapper
models/
transaction.dart # Transaction model + enums
sms_pattern.dart # SMS pattern configuration
category.dart # Spending categories
debt.dart # Debt/loan model
providers/
providers.dart # Riverpod state managers
services/ …