💡 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
- agentic-ai
- alembic
- chart-js
- docker
- docker-compose
- fastapi
- github
- jwt
- langchain
- llm
- openai
- postgresql
- pydantic
- python
- react
- rest-api
- sqlalchemy
- tailwindcss
- typescript
Log in or sign up for Devpost to join the conversation.