Inspiration
I wanted to build something practical that helps people understand their money quickly. Most bank statements are hard to read, and even when people see charts, they still don’t know what to do next. I wanted to turn financial data into simple actions.
What it does
PennyPilot lets users upload a bank statement and get:
- automatic transaction parsing and categorization
- spending charts and summary
- AI spending insights
- a strategy simulator to reduce spending by category
- personalized goal planning (ex: save for a camera lens or a trip)
- AI recommendations for how much to cut and what habits to improve
How we built it
Frontend: Next.js, React, TypeScript, Tailwind, Recharts Backend: FastAPI, SQLAlchemy, Python parsing pipeline AI: Gemini for insights and strategy coaching Auth/Security: Auth0 + owner-based data isolation in the backend Added tests for core planning logic and access control
Challenges we ran into
We ran into several auth and integration issues while building PennyPilot, including switching from Clerk to Auth0 mid-project, route and environment variable misconfigurations, repeated 401 errors on uploads, token/session mismatches between frontend and backend, missing backend dependencies like jose that blocked server startup, and frontend dev-server cache/build instability; we resolved these step by step by tightening the authentication flow, fixing environment setup, adding a local development fallback, and improving error handling across the stack.
Accomplishments that we're proud of
We’re proud that we built PennyPilot as a complete end-to-end product. We added personalized financial planning features, improved the simulator so users can adjust reductions across all categories dynamically, and added privacy/security protections so data is owner-scoped. Most importantly, we kept iterating through many bugs and integration issues until the app worked reliably.
What we learned
We learned that auth integration can take much longer than expected, especially when switching providers during development. We also learned that strong environment/config management is essential, and that small UX details like chart readability, labels, and layout have a big impact on user trust and usability. On the AI side, output quality depends heavily on prompt design, and on the backend side, testing access control early saves significant debugging time later.
What's next for PennyPilot
Next, we want to improve statement parsing to support more bank formats, make AI recommendations more personalized, and add progress tracking so users can monitor goal completion over time. We may add a gamified feature that will make users more likely to accomplish their goals. We also plan to harden production authentication by removing local development fallbacks, then deploy on stable infrastructure with stronger monitoring and observability.
Built With
- auth0
- fastapi
- gemini
- next.js
- pdf-plumber
- python
- react
- sqlalchemy
- tailwindcss
- typescript
Log in or sign up for Devpost to join the conversation.