Inspiration
Managing money can be stressful, especially for students learning financial independence. We wanted to build something that makes budgeting simple, visual, and interactive. Our goal was to make a tool that shows the impact of every purchase in real time. PennyWise was born from the idea that better awareness leads to better habits, and that even small savings start with seeing where your money goes.
What it does
PennyWise is a personal banking and budgeting simulator built in Java. Users can:
- Log in or create an account securely
- Manage their checking and savings accounts balances
- Deposit, withdraw, and track every purchase
- Set a personal spending goal to stay below
- Watch a live progress bar fill as they spend toward that goal. Our project is designed to teach mindful spending and help users visualize their financial limits in an intuitive, gamified way.
How we built it
We built PennyWise entirely with Java Swing for the GUI, applying object-oriented principles through Account, Checking, and SavingsAccount classes. All user data and transaction history are saved and reloaded using file I/O with .txt files ensuring persistence between sessions. The interface uses CardLayout to switch between login, dashboard, and account creation panels, making it feel like a cohesive desktop app.
Challenges we ran into
- Debugging Swing layout overlap issues and getting components (like tables, buttons, and the spending goal section) to align visually.
- Managing NullPointerExceptions from uninitialized GUI components while refactoring between login and creation panels.
- Coordinating Git collaboration without overwriting teammates’ changes (solving merge conflicts and local branch pushes).
- Designing a responsive and visually clean interface while handling multiple dynamic updates (balance changes, progress bar animation, etc.).
Accomplishments that we're proud of
- Created a fully functional, multi-panel banking dashboard from scratch.
- Implemented real-time updates between account actions and the GUI.
- Designed an intuitive progress bar that visualizes spending toward a goal.
- Overcame several Swing and Git pitfalls while maintaining teamwork flow.
- Built a complete and stable Java application ready for future expansion.
What we learned
We deepened our understanding of object-oriented programming, GUI design, and data persistence in Java. We also learned practical collaboration skills including version control discipline, debugging graphical interfaces, and integrating user interaction logic with backend account models.
What's next for PennyWise
- Add data visualization features like monthly charts and spending breakdowns.
- Implement user authentication with encryption for saved accounts.
- Build an AI-powered budgeting assistant to suggest saving goals.
- Ultimately, we would want PennyWise to evolve into a smart, educational budgeting companion that helps users develop real-world financial literacy.

Log in or sign up for Devpost to join the conversation.