ngenohkevin 42236c88e4 v1.6.0: car expense tracking (Fuel/Service) + tappable notifications
Mark any transaction as Fuel or Car Service from the detail sheet (a tag
separate from its category). New 'Car expenses' screen (You tab) shows the
car's lifetime cost plus per-tag This Week / This Month / All Time, summed
across every SIM. DB v4->v5 adds a nullable carTag column (additive, no
rebuild).

Also: notifications now carry a tap intent, so tapping opens the app and
clears them instead of lingering until manually swiped.
2026-06-28 16:49:58 +03:00
2026-05-16 13:26:22 +03:00

Ledga

M-Pesa spending tracker for Android. Automatically reads M-Pesa SMS confirmations to track your spending — zero manual entry.

Download

Download the latest APK from Releases.

Install directly on your Android phone (no Play Store needed). The app checks for updates automatically.

Features

Automatic SMS Tracking

  • Reads M-Pesa SMS in real-time via BroadcastReceiver
  • Supports 17 transaction types: Send Money, Buy Goods, Pay Bill, Withdraw (Agent/ATM), Deposit, Received, Airtime (Self/Other), M-Pesa Global, Fuliza (Borrow/Repayment/Reversal), M-Shwari, KCB M-Pesa, Reversal
  • Import existing SMS history on first launch
  • Stores raw SMS for future parser improvements

Smart Categorization

  • 13 default categories: Groceries, Transport, Bills, Airtime, Food, Send Money, Received, Withdrawal, Deposit, Shopping, International, Savings & Loans, Other
  • Auto-categorizes by merchant name and paybill/till number
  • Pre-loaded rules for common merchants (Naivas, KPLC, Uber, etc.)
  • Tap any transaction to re-categorize

Home Dashboard

  • Current M-Pesa balance (from last transaction)
  • Monthly spending total with fees breakdown
  • Animated donut chart by category
  • Period selector: Today / This Week / Month
  • Recent transactions feed

Transactions

  • Grouped by day with search and filters
  • Filter by type: All, Sent, Received, Bills, Goods, Withdraw
  • Transaction detail bottom sheet with full info
  • One-tap re-categorization
  • Daily spending bar chart (Vico)
  • Category breakdown with color indicators
  • Top 5 merchants by spending
  • Transaction fees summary
  • Period selector: 7D / 30D / 90D / 1Y

Budget Tracking

  • Set overall monthly budget
  • Progress bars with color coding (green/warning/red)
  • Per-category budget support

Notifications

  • Daily spending summary (default 8 PM)
  • Weekly summary (Sunday evening)
  • Budget warning at 80% and exceeded at 100%
  • Large transaction alerts (configurable threshold)
  • All toggleable in settings

Backup & Export

  • Google Drive: Auto-backup to app data folder, restore on fresh install
  • Manual Export: ZIP file with transactions.csv (Excel-friendly) + data.json (full restore)
  • Manual Import: Restore from exported ZIP
  • Share exports via WhatsApp, email, Bluetooth

Self-Update

  • Checks GitHub Releases on launch (max once per day)
  • Download and install updates directly from the app

Customization

  • Theme: System / Light / Dark
  • Font size: System Default / Small / Medium / Large / Extra Large
  • M-Pesa green primary color with Material 3

Tech Stack

Component Technology
Language Kotlin
UI Jetpack Compose + Material 3
Database Room (SQLite)
DI Hilt
Settings Jetpack DataStore
Charts Vico
Background WorkManager + BroadcastReceiver
Backup Google Drive API
Navigation Navigation Compose (type-safe routes)
Build Gradle (Kotlin DSL)

Requirements

  • Android 8.0+ (API 26)
  • SMS permission (to read M-Pesa messages)
  • Notification permission (Android 13+, for summaries and alerts)

Privacy

All data stays on your device. No server, no accounts, no analytics, no tracking. Google Drive backup uses the app-specific folder — invisible to other apps and only accessible by Ledga.

Building

# Debug
./gradlew assembleDebug

# Release (requires keystore)
./gradlew assembleRelease

# Tests
./gradlew testDebugUnitTest

Release

Tag a version to trigger the CI/CD pipeline:

git tag v1.0.0
git push origin v1.0.0

GitHub Actions builds the signed APK and creates a release automatically.

License

Private — for personal/family use.

S
Description
No description provided
Readme
416 KiB
Languages
Kotlin 99.4%
Python 0.6%