A next-generation React Native & Expo mobile application designed to solve budgeting fatigue using behavioral psychology, AI natural language parsing, and predictive financial analytics.
Most expense trackers act like tedious accounting spreadsheets that require micromanaging categories and offer little psychological motivation.
SmartBudget bridges the gap between numbers and human behavior with 6 unique pillars:
- Instead of overwhelming you with a static monthly number (e.g. ₹10,000), it calculates a Daily Safe-to-Spend Limit:
$$\text{Daily Safe-to-Spend} = \frac{\text{Remaining Pocket Money / Budget}}{\text{Days Remaining in Month}}$$ - Real-Time Recalibration: Splurge today on an outing? The app gently adjusts tomorrow's limit to keep you on track without running out of money before month-end.
- Type or speak naturally: "Spent ₹450 on Zomato pizza yesterday" or "Uber cab 320".
- Powered by Google Gemini 1.5 Flash with an instant offline NLP fallback.
- Extracts
amount,title,category, anddatein milliseconds.
- Prevents dopamine-driven impulse spending by locking non-essential wants behind a 24h, 48h, or 72h reflection timer.
- When the timer unlocks, ask yourself: "Do I still really need this?"
- 🛡️ Impulse Defense Savings Trophy: Tracks the total money saved every time you walk away!
- Tracks how you feel about your spending, not just what you bought.
- 1-tap reaction on recent purchases: 😍 Worth it, 😐 Okay, or 😩 Regret.
- Visualizes your monthly Emotional ROI Dashboard (Joy vs Regret ratio).
- Visualizes the true Annual Drain of recurring subscriptions (Netflix, Spotify, Gym, Cloud, Wifi).
- 1-tap pause/archive toggle to cancel and eliminate ghost expenses.
- Month-End Spend Prediction: Forecasts your final spending at the end of the month based on your daily burn velocity.
- Duolingo-Style Gamification: Daily habit streaks (🔥) and unlockable achievement badges (Habit Builder, Consistency King, Impulse Conqueror, Subscription Slayer).
- Defaulted for students: tracks Monthly Pocket Money and calculates percentage impact (e.g., "This meal takes 8% of your monthly pocket money").
SmartBudget features a modern 5-tab navigation bar:
- 🏠 Home: Daily Pocket Money Safe-to-Spend gauge, streak counter, and recent activity with 1-tap emotional reviews.
- 🤖 Smart Log: Natural language quick-entry, category selection, and 10-year compounding opportunity cost previews.
- 🧠 Mindset: Impulse reflection timers, unlocked review actions, and emotional ROI analytics.
- ⚰️ Subscriptions: Recurring subscription manager, active toggles, and annualized cost shock banner.
- 📊 Analytics: Month-end predictive burn-rate forecast, spending velocity status, and achievement badges.
- Framework: React Native 0.81 (Expo SDK 54)
- Language: TypeScript (Strict Mode)
- Navigation: React Navigation (Bottom Tabs & Native Stack)
- State & Storage: React Context API +
@react-native-async-storage/async-storage(Offline-First) - AI & NLP: Google Gemini 1.5 Flash API + Local Heuristic Entity Extractor
-
Clone the repository:
git clone https://github.com/TANVII05/personalized-budget-tracker.git cd personalized-budget-tracker -
Install dependencies:
npm install
-
Start the development server:
npx expo start -c
-
Open on your device:
- iOS: Open Camera and scan the terminal QR code.
- Android: Open the Expo Go app and tap "Scan QR code".
- Web: Press
win the terminal to view in browser.
personalized-budget-tracker/
├── App.tsx # Main App entry point & Context provider
├── src/
│ ├── context/
│ │ └── ExpenseContext.tsx # Centralized budget state, calculations & persistence
│ ├── navigation/
│ │ └── AppTabs.tsx # 5-Tab modern bottom navigator
│ ├── screens/
│ │ ├── HomeScreen.tsx # Daily Safe-to-Spend & Emotional Check-ins
│ │ ├── AddExpenseScreen.tsx # AI NLP Entry & Opportunity Cost Preview
│ │ ├── MindsetScreen.tsx # Impulse Cool-Down & Emotional ROI Dashboard
│ │ ├── SubscriptionScreen.tsx # Subscription Graveyard & Shock Calculator
│ │ └── AnalyticsScreen.tsx # Predictive Forecast & Habit Badges
│ ├── services/
│ │ └── aiParser.ts # Gemini AI + Offline NLP entity extractor
│ ├── types/
│ │ └── Expense.ts # TypeScript data models
│ └── utils/
│ └── autoCategorize.ts # Category mapping utilities
└── package.json
This project is open-source and available under the MIT License.