Inspiration

We are college students who are not always the best at saving money, so we wanted to make a tool that provides motivation and makes saving money more fun.

What it does

SaveHaven analyzes financial data from a user's bank account (in this case Capital One’s Nessie sandbox) to identify income, bills, and spending patterns. It creates an explainable savings plan with weekly savings and spending targets. Following the plan earns coins and experience, which users can spend to unlock, purchase, and arrange buildings in a personalized virtual town.

How we built it

We built SaveHaven as a React and TypeScript web application with Tailwind CSS and Phaser for the game portion. For the backend, we used FastAPI to handle financial planning, rewards, authentication, and game state, then used SQLAlchemy, and SQLite for a database. Railway, and GitHub Actions support deployment and continuous integration.

Challenges we ran into

One of our biggest challenges was coordinating work across different Git branches. Miscommunication sometimes caused us to modify the same files or develop overlapping features. This created a lot of merge conflicts and duplicated work. We improved by assigning clearer responsibilities, communicating before changing shared features, and pulling from main frequently.

Accomplishments that we're proud of

We are pretty proud of the game portion's UI and we think it is pretty fun to look at and play.

What we learned

Through playtesting, we learned that gamifying saving works better when the game supports the user instead of punishing them. We originally planned to have users lose progress, but moved away from that once we played it a bit. We also learned the importance of stable API contracts, deterministic demo data, clear financial explanations, and keeping financial and game logic separated.

What's next for SaveHaven

A natural stepping stone is a mobile app, as well as adding more levels and buildings to unlock.

Built With

Share this project:

Updates

Submission history