This is a Django-based personal expense tracker inspired by the design and functionality of Google Pay's monthly insights. It allows users to upload expenses via CSV, categorize their spending, and visualize monthly data through a clean dashboard interface.
- User authentication (registration, login, logout)
- Expense entry via form or CSV upload
- Categorization of expenses (canteen, hotel, transport, recharge, stationery, others)
- Monthly and category-wise summary of expenses
- Interactive dashboard using Chart.js
- Filtering of expenses by category and month
- Responsive and modern user interface styled to resemble Google Pay
git clone https://github.com/SrijanSaraswat/gpay-expense-tracker.git
cd gpay-expense-tracker# On Windows
python -m venv env
env\Scripts\activate
# On macOS/Linux
python3 -m venv env
source env/bin/activatepip install -r requirements.txtIf requirements.txt is missing, manually install:
pip install django djangorestframework django-crispy-formspython manage.py makemigrations
python manage.py migratepython manage.py createsuperuserpython manage.py runserverVisit http://127.0.0.1:8000 in your browser.
- Login or register as a user
- Navigate to the dashboard to view current month’s summary
- Use the Add Expense form to manually log a transaction
- Use the Upload CSV page to bulk upload expenses
- Expenses are categorized and summarized for the selected month
- Interactive bar chart provides visual insights
Ensure your CSV is structured as follows:
date,category,amount,description
2025-05-01,canteen,120,Lunch
2025-05-03,transport,50,Bus fare
...
The project is REST-ready. If enabled:
/api/expenses/- List and create expenses/api/upload/- CSV upload via API/api/summary/?month=5- Monthly/category summary
Gpay_Expense_Tracker/
├── Expenses/
│ ├── migrations/
│ ├── templates/
│ │ ├── base.html
│ │ ├── login.html
│ │ ├── dashboard.html
│ │ ├── add_expense.html
│ │ └── upload_csv.html
│ ├── admin.py
│ ├── models.py
│ ├── forms.py
│ ├── views.py
│ └── urls.py
├── Gpay_Expense_Tracker/
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── db.sqlite3
└── manage.py
This project is provided for educational and personal use only.