A full-stack web application to track personal income and expenses, visualize spending, and manage monthly budgets. This project is made with Angular, Node.js, MySQL, Prisma, D3.js, Railway and Vercel deployment, Tailwind CSS.
| Field | Value |
|---|---|
| Username | testuser |
| Password | budgettracker |
Required for login access
| Service | URL |
|---|---|
| Frontend | https://budget-tracker-two-tan.vercel.app |
| Backend API | https://budget-tracker-production-58f5.up.railway.app |
| GitHub Repo | https://github.com/sasidharan19/Budget-Tracker |
- Secure Login
- Add/Edit/Delete Income & Expenses
- Monthly summary dashboard
- Category-wise expense visualization (D3.js Pie Chart)
- Monthly budget setting + budget vs expense view (D3.js bar chart)
- Filters by date/category, pagination
- Responsive UI (Tailwind CSS)
| Category | Tools |
|---|---|
| Frontend | Angular 19, D3.js, Tailwind CSS |
| Backend | Node.js, Express |
| Database | MySQL |
| ORM | Prisma |
| Deployment | Vercel (Frontend), Railway (Backend + DB) |
- Node.js 18+
- MySQL
- Git
git clone https://github.com/sasidharan19/Budget-Tracker
cd Budget-Trackercd backend
npm installCreate .env file (copy .env.example)
DATABASE_URL=mysql://USER:PASSWORD@HOST:PORT/DB
JWT_SECRET=your_jwt_secretRun migrations & start:
npx prisma migrate deploy
npm run startcd ../frontend
npm install
npm start| Area | Test Performed | Result |
|---|---|---|
| Authentication | Verified login with valid & invalid credentials | ✅ Working |
| Dashboard Summary | Checked correct income, expense & balance calculation | ✅ Accurate |
| CRUD Operations | Add / Edit / Delete Transactions | ✅ Working |
| Filters | Filter by category & date | ✅ Working |
| Pagination | Verified pagination on transaction list | ✅ Smooth |
| Budget Logic | Compared budget vs actual expense | ✅ Correct behavior |
| Charts | D3 pie chart renders & updates based on data | ✅ Working |
| Responsive UI | Tested on desktop & mobile | ✅ Responsive |
| Tool | Usage |
|---|---|
| D3.js | Charts |
| Prisma | ORM |
| Tailwind CSS | Styling |
| Vercel | Frontend hosting |
| Railway | Backend + DB hosting |
- ChatGPT — for guidance on architecture, code snippets and debugging support.
AI was used for:
- Understanding feature requirements
- Providing example code snippets for Angular & Node.js
- Improving UI/UX ideas and folder structure
- Helping draft documentation (README, usage notes, testing guide)
- Clarifying best practices for deployment & API structure
- Did not write the full project code
- Did not handle deployment
- Did not generate database data
- No sensitive project information was shared
All application code, logic implementation, debugging, testing, and deployment were done by the developer.
LLM was used only as an assistant for reference and learning.
| Method | Endpoint | Description |
|---|---|---|
| POST | /auth/login |
Login user |
| Method | Endpoint | Description |
|---|---|---|
| GET | /transactions |
Get all transactions |
| GET | /transactions/:id |
Get single transaction by ID |
| POST | /transactions |
Create new transaction |
| PUT | /transactions/:id |
Update transaction |
| DELETE | /transactions/:id |
Delete transaction |
Supports filters & pagination via query params:
?page=1&pageSize=10&category=Food&month=2025-02
| Method | Endpoint | Description |
|---|---|---|
| GET | /categories |
Get all categories |
| POST | /categories |
Create category |
| PUT | /categories/:id |
Update category |
| DELETE | /categories/:id |
Delete category |
| Method | Endpoint | Description |
|---|---|---|
| GET | /budget |
Get current month budget & usage |
| POST | /budget |
Set monthly budget |
| PUT | /budget/:id |
Update monthly budget |
| Method | Endpoint | Description |
|---|---|---|
| GET | /summary?month=YYYY-MM |
Get monthly summary (income, expense, balance) |
| GET | /charts/expense-category |
Breakdown expense by category |
| Field | Value |
|---|---|
| Version | 1.0 |
| Completion Date | 30/10/2025 |
Sasidharan Senthilkumar