1. Inspiration

Managing daily expenses and understanding spending habits can be challenging. Many people record their expenses manually but struggle to organize transactions, monitor budgets, and identify where their money goes. This inspired us to develop an intelligent Expense Tracker using Machine Learning that simplifies expense management through automatic categorization, budget monitoring, and visual analytics. Our goal is to help users make informed financial decisions and develop better spending habits.

  1. What it does

Expense Tracker is a web-based application that helps users record, organize, and analyze their daily expenses. It uses Machine Learning to automatically predict expense categories based on transaction descriptions, reducing the need for manual categorization.

Key features include:

AI-Powered Categorization: Automatically classifies expenses into categories such as Food, Transport, Shopping, Education, Health, Entertainment, Bills, and Fitness.

Expense Management: Allows users to add, edit, delete, search, filter, and sort transactions.

Budget Tracking: Enables users to set monthly budgets and monitor their spending through visual progress indicators.

Spending Analytics: Displays total expenses, transaction count, average transaction amount, top spending category, and payment method breakdowns.

Data Visualization: Presents expense patterns and category-wise spending in an easy-to-understand format.

CSV Export: Allows users to download their expense records for future reference and financial analysis.

Data Storage: Uses an SQLite database to store expense transactions and budget information.

  1. How we built it

We developed the project using a full-stack architecture that combines web development, database management, and Machine Learning.

Frontend: React and Vite were used to create an interactive, responsive user interface with a modern dashboard.

Backend: Python Flask was used to develop REST APIs that connect the frontend, Machine Learning model, and database.

Machine Learning: We implemented a text classification pipeline using TF-IDF vectorization and Logistic Regression. TF-IDF converts transaction descriptions into numerical features, while Logistic Regression predicts the most likely expense category.

Dataset: A CSV dataset containing categorized expense descriptions is used to train the model.

Model Training: The dataset is divided into training and testing sets using an 80:20 split. The model is evaluated using accuracy and a classification report before being trained on the complete dataset.

Model Storage: Joblib is used to save the trained Machine Learning pipeline for reuse.

Database: SQLite stores transactions and budget details persistently.

Integration: The React frontend communicates with the Flask backend through REST API endpoints to provide expense management, category prediction, budget tracking, and analytics.

  1. Challenges we ran into

One of the main challenges was designing a Machine Learning model that could categorize different expense descriptions accurately. Similar transactions may use different words, abbreviations, or descriptions, making classification difficult. We addressed this by using TF-IDF with unigram and bigram features along with Logistic Regression.

Another challenge was integrating the trained model with the Flask backend and connecting it to the React frontend. We also had to ensure that expense records were stored correctly in the database and that budget calculations and dashboard summaries remained consistent when transactions were added, edited, or deleted.

Creating a user-friendly dashboard that presents financial information clearly was another important challenge. We worked on organizing the information into summary cards, category breakdowns, and budget progress indicators to make the application easier to understand and use.

  1. Accomplishments that we're proud of

We are proud to have developed a full-stack expense management application that combines Machine Learning with practical financial tracking features. Instead of relying entirely on manual categorization, our application predicts expense categories from transaction descriptions.

We successfully integrated a trained Machine Learning pipeline with a Flask API, connected it to a React-based interface, and implemented persistent storage using SQLite. We also developed monthly budget monitoring, expense analytics, transaction management, and CSV export functionality.

This project demonstrates how Machine Learning can be applied to a real-world problem to reduce repetitive tasks, organize financial information, and support better spending decisions.

  1. What we learned

Through this project, we gained practical experience in full-stack web development, Machine Learning, data preprocessing, model evaluation, database integration, and API development.

We learned how TF-IDF transforms text into numerical features and how Logistic Regression can classify expense descriptions. We also understood the importance of training and testing data separately, evaluating classification performance, and saving trained models for later use.

Additionally, we improved our skills in connecting React with a Python Flask backend, managing data using SQLite, handling expense records, and presenting information through an interactive dashboard. This project helped us understand how different technologies can work together to solve everyday financial management problems.

  1. What's next for Expense Tracker Using Machine Learning

In the future, we plan to enhance the application with more intelligent and personalized financial features.

Expense Forecasting: Use historical spending data to estimate future expenses and monthly spending trends.

Personalized Recommendations: Suggest practical ways to manage spending based on the user's expense patterns.

Unusual Expense Detection: Identify transactions or spending patterns that differ significantly from a user's normal activity.

Smart Savings Goals: Help users set savings targets and monitor their progress.

Advanced Analytics: Introduce interactive reports that compare spending across different months and categories.

Mobile-Friendly Experience: Improve accessibility through a mobile application or progressive web app.

Secure User Accounts: Add authentication and individual profiles to support separate financial records for multiple users.

Improved Machine Learning: Expand the training dataset and evaluate additional models to improve categorization performance.

Our long-term vision is to transform Expense Tracker into an intelligent personal finance assistant that not only records expenses but also helps users understand their financial habits, plan their budgets, and make smarter financial decisions.

Built With

Share this project:

Updates

Submission history