An intelligent personal finance app with AI-powered expense tracking, receipt OCR, and a city-aware cafΓ© companion for financial advice.
Group 3 β DSBA 6010 Spring 2026 | UNC Charlotte
A full-stack personal budgeting application that combines Large Language Models (LLMs) with computer vision to make expense tracking effortless. Features natural language processing, receipt OCR, a multi-agent cafΓ© companion, and location-aware financial insights.
- π€ AI CafΓ© Companion β Chat with Penny π§, Esper π, Mochi π±, or Capy 𦫠for personalized budget advice
- β Pet Community Cafe β Turn-based gossip mode with one new agent message per click and per-user memory persistence
- πΈ Receipt OCR β Upload receipt photos for automatic expense extraction via Gemini Vision + Tesseract
- π¬ Natural Language Input β Type "Spent $45 on pizza" instead of filling forms
- π Location-Aware Insights β Compare spending across US cities using real-time cost-of-living data
- π Interactive Calendar β Visual spending patterns with hover details
- π¨ Companion System β Build friendship levels through consistent tracking
- π Smart Analytics β Category breakdowns, trends, and budget alerts
| Service | URL |
|---|---|
| π Frontend (Vercel) | https://budget-buddy-llm-app.vercel.app |
| βοΈ Backend (Railway) | https://budgetbuddy-group3.up.railway.app |
| π API Docs | https://budgetbuddy-group3.up.railway.app/docs |
src/app/
βββ components/
β βββ BudgetBuddy.tsx # AI Chat / CafΓ© Companion
β βββ BudgetSettings.tsx # Budget goal management
β βββ BudgetSummary.tsx # Monthly analytics
β βββ ExpenseList.tsx # Expense history
β βββ CompanionSelector.tsx # Pet selection system
β βββ FriendshipStatus.tsx # Companion friendship meter
βββ dateUtils.ts # Timezone-safe date handling
backend/
βββ main.py # FastAPI entry point & all API routes
βββ auth.py # JWT authentication
βββ database.py # Supabase PostgreSQL client
βββ llm_pipeline.py # Groq / Gemini LLM wrappers
βββ cafe_agents.py # Multi-agent cafΓ© companion
βββ cafe_tools.py # Companion memory load/save utilities
βββ receipt_parser.py # OCR + Gemini Vision receipt parsing
βββ receipt_to_database.py # Receipt β expense DB pipeline
βββ function_calling.py # LLM function/tool calling system
βββ cost_of_living.py # RapidAPI cost-of-living integration
βββ rag.py # RAG system (optional, gracefully disabled)
| Stage | Model / Tool | Purpose |
|---|---|---|
| Input Routing | FastAPI | Detects text vs. image input |
| NLP Parsing | Groq LLaMA 3.1-8b | Extracts expense fields from natural language |
| OCR Extraction | Tesseract + Gemini 2.5 Flash Vision | Reads text from receipt images |
| Normalization | Groq LLaMA 3.1-8b | Standardizes amounts, dates, categories |
| Function Calling | Groq Tool Use | Structures output into DB-ready JSON |
| Pet Community Cafe | Multi-agent persona engine | One-turn gossip generation with speaker rotation and persisted per-user memory |
| LLM Fallback Chain | OpenAI -> Anthropic -> Groq -> Mock | Ensures cafe continuity if provider keys are missing or unavailable |
| Agent Orchestration | Planner -> Executor -> Reviewer | Multi-step task decomposition, tool execution, and response synthesis |
| Cost-of-Living | RapidAPI | City-specific financial context |
| Persistence | Supabase PostgreSQL | Stores expenses, budgets, user profiles |
| Layer | Technology | Purpose |
|---|---|---|
| Frontend | React 18 + TypeScript | SPA with Vite bundler |
| UI Components | MUI + Radix UI + Tailwind CSS | Accessible, customizable components |
| Backend | FastAPI + Python 3.12 | Async REST API |
| Database | Supabase (PostgreSQL) | Row-level security, real-time |
| LLM | Groq (LLaMA 3.1-8b) | Fast inference for chat & parsing |
| Vision / OCR | Gemini 2.5 Flash + Tesseract | Receipt image understanding |
| Cost Data | RapidAPI | Real-time city cost-of-living |
| Auth | JWT + Supabase | Secure user sessions |
| Deploy Frontend | Vercel | Auto-deploy from main branch |
| Deploy Backend | Railway + Railpack (default) | Auto-deploy from \backend |
Type naturally: "Spent $32 on Uber to airport" or "Coffee $5.50 this morning"
- LLM extracts amount, category, description, and date automatically
- Review and confirm before saving
- Click Upload Receipt
- Select a photo (PNG/JPG)
- Gemini Vision + Tesseract auto-extracts amount, merchant, and items
- Review and submit
Choose your companion β each has a unique personality:
- Penny the Penguin π§ β Cheerful and encouraging
- Esper the Dragon π β Wise guardian of your treasure
- Mochi the Cat π± β Sassy but genuinely helpful
- Capy the Capybara 𦫠β Zen and chill financial coach
Example questions:
- "Should I cut back on dining out this month?"
- "How does my spending compare to the Charlotte average?"
- "Where can I save on groceries?"
Responses adapt based on companion personality, friendship level (0β100), and your current budget status.
- Open the cafe panel and click Visit Cafe to start the session
- Each click on Continue Chat generates exactly one new turn
- Backend stores per-user cafe history so the conversation continues over time
- Endpoints used by the feature:
POST /api/cafe/gossipGET /api/cafe/context/{user_id}GET /api/cafe/memory/{user_id}DELETE /api/cafe/memory/{user_id}
- Hover over any calendar day to see expense breakdown
- Category icons + amounts displayed inline
- Monthly budget vs. actual comparison
| Feature | Status | Description |
|---|---|---|
| Natural Language Parser | β | LLM-powered expense extraction |
| Receipt OCR | β | Gemini Vision + Tesseract |
| AI CafΓ© Companion | β | Multi-agent chat with memory |
| Pet Community Cafe | β | Turn-based one-message-per-click gossip flow with per-user memory |
| Cost-of-Living API | β | City-aware financial context |
| Budget Tracking | β | Category limits with alerts |
| Interactive Calendar | β | Hover tooltips with expense details |
| Companion System | β | Friendship levels + mood |
| JWT Authentication | β | Secure login + user profiles |
| Supabase RLS | β | Row-level security per user |
| Responsive Design | β | Mobile-friendly UI |
| Document | Description |
|---|---|
| docs/SETUP.md | Full installation & troubleshooting guide |
| docs/BudgetBuddy_Final_Report_Draft.docx | 4β5 page white-paper style report draft in Microsoft Word format |
| database/schema.sql | PostgreSQL schema with RLS policies |
- Groq β Fast LLM inference
- Google Gemini β Vision + OCR capabilities
- Supabase β Backend infrastructure
- RapidAPI β Cost-of-living data
- Radix UI / MUI β Accessible components
- Tailwind CSS β Rapid styling
- FastAPI β Modern Python framework
- Vite β Lightning-fast dev server
- Backend Endpoints: 20+
- Frontend Components: 10+
- Database Tables: 3 (users, expenses, budgets)
- LLM Providers: 2 (Groq, Gemini)
- Companion Personalities: 4
- Cafe Endpoints: 4 (gossip, context, memory read, memory reset)
- Supported Cities: 54 (via RapidAPI)
Built with β€οΈ for DSBA 6010 β Spring 2026
Version: 1.0.0 | Status: β Production Ready | Last Updated: April 2026
