TrackFi is a full-stack personal finance tracking web application that helps users manage income, expenses, and spending categories through a clean and interactive interface. The app allows users to add, edit, delete, and filter transactions while automatically calculating balances and summaries in real time.
TrackFi was built as part of EECS 1012 – Net-Centric Computing at York University, with an emphasis on front-end interaction, backend API design, and basic software testing.
- Web-based application
- Frontend & Backend architecture
- Runs locally using Node.js and Express
- User login (name-based session)
- Add income and expense transactions
- Category-based expense tracking
- Edit and delete transactions via modal UI
- Automatic calculation of total income, expenses, and balance
- Category filtering and transaction summaries
- Client-side persistence using localStorage
- REST-style backend API for transactions and statistics
- Unit tests for core logic using Vitest
Frontend
- HTML5
- CSS3 (responsive design)
- JavaScript (DOM manipulation, event handling)
Backend
- Node.js
- Express.js (REST API)
Testing
- Vitest (unit tests for validation, totals, and stats)
git clone https://github.com/KaashDev/TrackFi.git
cd TrackFi
Option 1: Frontend Only
- Open index.html directly in your browser.
- Transactions will be stored locally using localStorage.
Option 2: Full Stack (Recommended)
npm install
node server.js
Then open:
http://localhost:3000
This enables backend API routes for transaction management and statistics.
GET /transactions – Get all transactions
POST /transactions – Add a new transaction
PUT /transactions/:id – Update a transaction
DELETE /transactions/:id – Delete a transaction
DELETE /transactions/reset – Reset all data
GET /category/:category – Filter by category
GET /stats – Get financial summaries
Run unit tests using:
npm test
Tests cover:
- Balance and total calculations
- Input validation
- Transaction validation logic
- Statistics aggregation
This project was developed by Kaash Dev Seetohul as part of EECS 1012 at York University.
