FinTracer is a full-stack personal finance tracker that allows users to log, manage, and visualize their income and expenses. It supports CSV/PDF export, JWT authentication, and clean UI features like dark mode and category-wise charts.
Frontend
- HTML, CSS, JavaScript
- Charts via Chart.js
Backend
- Python, Flask
- Flask-JWT-Extended for auth
- SQLAlchemy ORM
- MySQL database
FinTracer/
│
├── frontend/ # Frontend static files
│ ├── index.html
│ ├── app.js
│ └── styles.css
│
├── backend/
│ ├── app.py # Main Flask application
│ ├── db.py # DB init logic
│ ├── models/ # SQLAlchemy models
│ │ ├── user.py
│ │ └── transaction.py
│ ├── routes/ # Modular routes (Blueprints)
│ │ ├── auth.py
│ │ ├── transactions.py
│ │ └── export.py
| ├── requirements.txt # Python dependencies
│ └── .env # Environment variables
│
├── .gitignore # gitignore file
│
└── README.md # You're here!
- ✅ User authentication (register/login) with JWT
- ✅ Add/view/delete income & expenses
- ✅ Filter and group by date/category/type
- ✅ Export transactions as CSV or PDF
- ✅ Dual pie charts (expense vs income, and expense category-wise)
- ✅ Dark mode toggle
git clone https://github.com/PALLADIUM26/FinTracer.git
cd FinTracer-
Create a virtual environment (optional but recommended):
python -m venv venv source venv/bin/activate # or venv\Scripts\activate on Windows
-
Install dependencies:
cd backend pip install -r requirements.txt -
Configure
.envin thebackend/folder:DATABASE_URL=mysql+pymysql://root:yourpassword@localhost/db2 JWT_SECRET_KEY=your-secret-key
-
Run the backend server:
cd backend python app.py
✅ Runs on:
http://localhost:5000
-
Go to the frontend directory:
cd frontend -
Start a local server:
- If using VS Code, run Live Server
- Or use:
python -m http.server 5500
✅ Opens at:
http://localhost:5500
| Method | Route | Description |
|---|---|---|
| POST | /auth/register |
Register a new user |
| POST | /auth/login |
Login and get JWT token |
| GET | /transactions |
Fetch user's transactions |
| POST | /transactions |
Add new transaction |
| DELETE | /transactions/<id> |
Delete transaction |
| GET | /export/csv |
Download CSV |
| GET | /export/pdf |
Download PDF |
Note: Authenticated routes require Authorization: Bearer <token> in headers.
- Add update/edit transaction feature
- Add recurring transactions
- Deploy
- Add unit tests
Pranith Dutta 🔗 GitHub



