💡 Inspiration

Every budgeting app treats you like a stranger. You open it, dump in your numbers, get a generic pie chart, and close it only to repeat the whole process next week because it forgot everything about you.

I wanted to build something different: a financial assistant that actually remembers you. One that understands you're saving for a house, knows your rent went up last month, and can say "hey, based on what you told me last week, here's how that changes your timeline" without you re-typing your entire financial history every single time.

That's how FinGoal was born: an Agentic AI budget assistant that treats personal finance the way a real financial advisor would as an ongoing relationship, not a one-off transaction.

🚀 What it does

FinGoal is a conversational financial assistant that:

  • Understands your goals in plain English — tell it "I want to save ₹5L for a car in 18 months" and it builds a real savings plan around it
  • Remembers everything — thanks to persistent conversational and user memory, it maintains context across sessions instead of starting from zero
  • Analyzes your finances automatically — upload a statement, and it extracts insights, flags overspending, and suggests optimizations
  • Adapts in real time — every conversation updates your goals, budget, and dashboard automatically, so your financial picture is always current
  • Visualizes progress — an interactive dashboard turns raw numbers into a clear, trackable path toward your goals

🛠️ How I built it

FinGoal is built as a layered, containerized system:

``` React + TypeScript Frontend │ ▼ FastAPI Backend │ ▼ Conversation & Goal Engine ──▶ Financial Planning Engine │ ▼ Snapshot Generation │ ▼ PostgreSQL Database ```

  • Frontend (React + TypeScript): a responsive, interactive dashboard that reflects the user's live financial state
  • Backend (FastAPI): orchestrates conversation flow, goal logic, and financial computations
  • Conversation & Goal Engine: the "agentic" core — interprets intent, updates existing goals instead of duplicating them, and drives follow-up questions based on prior context
  • Financial Planning Engine: runs the actual budgeting math — savings timelines, expense optimization, affordability checks
  • Snapshot Generation: periodically captures the user's financial state so the dashboard reflects the latest conversation instantly
  • PostgreSQL: persists users, goals, conversations, and financial snapshots
  • Docker Compose: one command (`docker compose up --build`) spins up the entire stack — no manual environment setup

🧗 Challenges I ran into

  • Making memory useful, not just present. Storing conversation history is easy; deciding what matters — a changed goal, an updated income, a new expense — and folding it back into the planning engine without contradicting earlier context was the hardest part.
  • Keeping the agent from re-asking what it already knows. I had to carefully design the goal-update logic so the assistant edits existing goals instead of creating duplicates every time the user's situation shifts.
  • Syncing conversation state with the dashboard in real time, so what the user says in chat is immediately reflected visually — without manual refreshes or stale data.
  • Parsing messy, real-world financial statements into structured data the planning engine could actually reason about.

🎓 What I learned

  • How to design agentic systems that persist state meaningfully across sessions, not just log transcripts
  • The nuance in building conversational memory that updates and corrects itself rather than just accumulating
  • How to bridge an LLM-driven conversational layer with a deterministic financial planning engine so the numbers stay accurate even when the conversation is fuzzy
  • The value of a clean, Dockerized architecture for fast iteration across a full-stack, multi-service project

🔮 What's next for FinGoal

  • Multi-account aggregation (bank + credit card + investments)
  • Proactive nudges — FinGoal reaching out when it notices a goal is at risk
  • Shared/family goals with multi-user memory
  • Deeper financial statement OCR for a wider range of formats

Built With

Share this project:

Updates