Logo Lanfrica

Yusha254/BudgetMaster

Domain:

socioeconomic

Record type:

software
Creator:
Yus
Host:
MPesa SMS expense tracking # BudgetMaster 📱 ## Track your MPESA transactions effortlessly. BudgetMaster is a React Native app (runs on Expo Dev Client) designed for smart financial tracking. It reads MPESA SMS messages—including overdraft (Fuliza) notices—automatically, parses them, and stores each transaction in a local SQLite database with real-time analytics. ## 🔍 Features - 📥 Automatic SMS parsing of MPESA transactions and Fuliza debt messages. - 🧮 Expense and Income detection, including transaction costs. - 🐛 Duplicate prevention using unique MPESA transaction codes. - 📊 Category breakdown and spending overview by time period. - 💾 Offline-first storage using local SQLite database. - 🌙 Light / dark optimized themes - 🧠 Flexible for AI-powered categorization and analytics ## 🚀 Why Choose BudgetMaster? - Built with React Native & TypeScript for performance and type safety. - Clean, intuitive UI, inspired by beautiful design. - Designed with automation in mind — human effort minimized. - Secure: Local-first data storage; no sensitive info sent remotely. - Built to help users make smarter financial decisions quickly. ## 🛠 Installation & Setup ### Prerequisites - Android device/emulator (SMS access) - Expo Dev Client (required for custom native module support) ### Install & Prepare ``` git clone github.com cd BudgetMaster npm install npx expo prebuild npm run android # or expo run:android ``` ### Permissions (Android) Ensure the following permissions in android/app/src/main/AndroidManifest.xml: ``` ``` ## 🔁 How It Works 1. On launch, the app calls useSMSScanner: - Requests SMS read permission - Reads MPESA messages from the inbox for the current month - Parses each message via MpesaParser 2. Parsed message types: - transaction → stored in transactions table - fuliza → stored in debts table 3. Duplicate checks use the MPESA transaction code before insertion. 4. Transaction data is accessible throughout the app via TransactionContext. …

Languages