Inspiration
Ever looked at your bank statement and felt completely lost? Multiple $4 coffee charges adding up without you noticing, confusing terms like "APR" and "utilization" thrown around by big banks, and financial apps that assume you already know what you're doing. We wanted to build something different, a tool that meets people where they are, explains the jargon, and helps them actually understand their money without needing a finance degree. We wanted a secure tool that has all your financial data together to help make informed decisions about your life
What it does
F.I.R.E. (Financial Independence Retire Early) connects to your real bank accounts via Plaid and aggregates all your financial data in one place. It:
- Shows your checking, savings, credit, investments, and loans in a unified dashboard
- Flags high APRs, credit utilization, and spending patterns automatically
- Breaks down your spending by category with AI-powered insights
- Lets you chat with a Gemini-powered financial coach that speaks plain English
- Supports multiple bank connections so your full financial picture is always visible
How we built it
- Frontend: React + Vite, with a custom design system (Card, Button, Badge, Icon components)
- Backend: Python + Flask, handling Plaid API integration, session management, and transaction processing
- Bank data: Plaid Link for secure OAuth bank connections, supporting multi-account aggregation
- AI: Google Gemini for the financial coach chat
- Auth: Firebase Google Sign-In
- Caching: Session-based caching to minimize redundant API calls ## Challenges we ran into
- Managing multiple Plaid access tokens in Flask sessions without corrupting the token list
- Getting Plaid's sandbox data to map correctly across account types (depository, credit, investment, loans)
- Setting up yarn to concurrently our backend and serve the frontend while giving us debug statements for both
- Handling Gemini 503 errors gracefully during high-demand periods
- Aggregating accounts from multiple connected banks while keeping balances accurate and still maintaining the data for each account
Accomplishments that we're proud of
- A fully working multi-bank dashboard that aggregates real financial data
- An AI coach that has actual context about your accounts when giving advice
- A clean, accessible UI that doesn't overwhelm first-time users
- Getting the full Plaid flow (link → exchange → fetch) working end to end
What we learned
- Financial APIs are powerful but require careful data modeling to present meaningfully
- Session management in Flask needs explicit handling for mutable objects
- Good UX for financial tools means progressive disclosure, show the simple view first, details on demand
- Caching strategy matters a lot when every API call costs time and quota. Knowing what to persist and where, like storing the authenticated user in sessionStorage to keep them logged in across navigation without hitting Firebase on every page load, made a big difference in both performance and user experience. ## What's next for F.I.R.E
- Expand course library
- Inflation-adjusted spending calculator
- NCUA Branch locator
- Debt pay-off calculator
- Recurring transaction warnings
Log in or sign up for Devpost to join the conversation.