About the Project
🌟 Inspiration
The idea for SpendWise was born from a shared frustration among our team members—impulse spending. As students and young adults, we often found ourselves making unnecessary purchases, only to regret them later. We realized that while budgeting apps exist, very few actually help users build awareness or change behavior. That’s when we asked:
What if your finances came with a personal coach that nudges you before you overspend?
Inspired by behavioral science and habit-building apps like Duolingo, we envisioned SpendWise—a smart financial assistant that uses AI and psychology to gently steer users toward smarter money decisions.
🧠 What We Learned
This project taught us a lot, including:
- How to process and analyze financial data using Python and Pandas.
- Building and fine-tuning a Random Forest Classifier to distinguish between needs and wants.
- The power of nudges—small, timely interventions that lead to significant behavioral shifts.
- Creating clean and intuitive dashboards with a user-centric design approach.
- Integrating an AI model into a working web application via Flask APIs.
We also got hands-on experience with version control, teamwork, and time management—key real-world skills.
🛠 How We Built It
Our tech stack includes:
- Python: For data preprocessing and building the ML model.
- Scikit-learn: To develop and train the Random Forest classifier.
- Flask: Used to wrap our model into an API.
- HTML/CSS/JavaScript + Bootstrap: For building the frontend dashboard.
- Matplotlib & Seaborn: For visualizing user spending data.
- Figma: For wireframing and designing UI mockups.
The model classifies each transaction based on features like amount, merchant type, time of transaction, and spending patterns. The results are sent to the dashboard, where nudges and visual feedback are generated.
🚧 Challenges We Faced
Lack of Real Transaction Data
Due to privacy concerns, we couldn’t access real financial data. To overcome this, we synthesized realistic transaction datasets based on publicly available merchant categories and spending behavior patterns.Need vs Want Classification
Human judgment of what's a "need" versus a "want" can be subjective. We had to carefully engineer features and validate our model's logic to make it consistent and fair.Balancing Simplicity with Functionality
Designing a dashboard that was informative without being overwhelming required multiple iterations and feedback loops.Integrating AI with Frontend
Making the AI model communicate smoothly with the frontend via Flask was challenging initially, especially ensuring real-time performance and stability.
Despite these hurdles, we were driven by the belief that small nudges can lead to big savings, and that kept us going.
Log in or sign up for Devpost to join the conversation.