Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SpendScope 💳

Personal Finance Analytics & Budgeting Dashboard

SpendScope is a full-stack personal finance web application for importing transactions, tracking spending, setting category budgets, and discovering useful patterns through an interactive dashboard.

Why this project

SpendScope is designed as a practical final-term project with a real database, REST-style API, responsive frontend, analytics, CSV import, budgeting, and anomaly detection — without requiring a complicated installation stack.

✨ Features

  • Add, edit and delete transactions
  • Import transactions from CSV
  • SQLite database
  • Dashboard with income, expenses and balance
  • Monthly spending trend
  • Category spending breakdown
  • Budget tracking
  • Highest-spend category detection
  • Unusual transaction detection using a statistical threshold
  • Recent transactions table
  • Responsive web UI
  • REST-style JSON API
  • No external database server required

🛠️ Tech Stack

  • Backend: Python 3
  • Web Server: Python http.server
  • Database: SQLite
  • Frontend: HTML5, CSS3, Vanilla JavaScript
  • Charts: SVG-based charts rendered in the browser
  • Data import: Python CSV module
  • Analytics: Python standard library

This deliberately keeps the project dependency-light so it can run reliably on a normal college laptop.

📁 Structure

SpendScope/
├── server.py
├── requirements.txt
├── README.md
├── .gitignore
├── LICENSE
├── data/
│   └── sample_transactions.csv
├── static/
│   ├── index.html
│   ├── app.js
│   └── styles.css
├── docs/
│   └── PROJECT_OVERVIEW.md
└── tests/
    └── test_api.py

▶️ Run

Windows

Open a terminal inside the project folder:

python server.py

Then open:

http://localhost:8000

macOS / Linux

python3 server.py

Then open:

http://localhost:8000

The application automatically creates spendscope.db on first run and seeds the included sample data.

📥 CSV format

CSV import expects these columns:

date,description,category,type,amount
2026-01-05,Salary,Income,income,50000
2026-01-06,Groceries,Food,expense,2400

Dates use YYYY-MM-DD.

🧪 Tests

With the server running in one terminal:

python tests/test_api.py

🔮 Future Scope

  • User authentication
  • PostgreSQL support
  • Recurring transactions
  • Exportable PDF reports
  • Cloud deployment
  • More advanced forecasting
  • Mobile/PWA version

About

Personal finance analytics and budgeting dashboard built with Python, SQLite, HTML, CSS and JavaScript.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages