Skip to content

Pranav2112/smartfinance

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ’° SmartFinance β€” Personal Finance Tracker

A full-stack personal finance web application built using Agile Scrum methodology over 4 sprints.
Course: SSW/CS 555 β€” Agile Methods for Software Development | Stevens Institute of Technology | Spring 2026


πŸš€ Demo Login

Field Value
Email demo@smartfinance.com
Password demo123

The demo account has admin access β€” all pages unlocked.


πŸ‘₯ Team

Name Role
Pranav Ramchandra Auti Product Owner & Developer
Anil Kumar Paruchuri Scrum Master & Developer

✨ Features

Page What it does
πŸ” Auth Register, login with JWT, protected routes, auto logout on 401
πŸ“Š Dashboard Income/expense summary cards, monthly bar chart, category pie chart, recent transactions
πŸ’Έ Transactions Add, edit, delete β€” filter by keyword/category/type/date range β€” export as CSV
🎯 Budget Monthly limits per category, progress bars (green/amber/red), real-time alert banners
🏦 Savings Goals Create goals, visual progress bar, add savings incrementally
πŸ“ˆ Insights 6-month expense trend line chart, month-over-month % change, category breakdown
βš™οΈ Admin Platform-wide stats, all users table, category spending breakdown

πŸ›  Tech Stack

Frontend

  • React.js 18 (Vite) + React Router v6
  • Recharts (BarChart, PieChart, LineChart)
  • Axios with JWT interceptors
  • Plain CSS with CSS variables β€” fully mobile responsive

Backend

  • Node.js + Express.js
  • JWT authentication + bcrypt password hashing
  • Knex.js (query builder + migrations + seeds)

Database

  • PostgreSQL

Dev Tools

  • GitHub (feature-branch workflow β€” one branch per Jira ticket)
  • Jira (SmartFinanceSystem project, 13 user stories)

πŸ“ Project Structure

smartfinance/
β”œβ”€β”€ client/                    # React frontend (Vite)
β”‚   └── src/
β”‚       β”œβ”€β”€ pages/             # Login, Register, Dashboard, Transactions,
β”‚       β”‚                      # Budget, Goals, Insights, Admin
β”‚       β”œβ”€β”€ components/        # Navbar, Sidebar, BudgetAlertBanner,
β”‚       β”‚                      # TransactionForm, TransactionTable, FilterBar,
β”‚       β”‚                      # ProtectedRoute
β”‚       β”œβ”€β”€ context/           # AuthContext (JWT state management)
β”‚       └── api/               # Axios instance with request/response interceptors
β”œβ”€β”€ server/                    # Express backend
β”‚   β”œβ”€β”€ routes/                # auth, transactions, budgets, goals,
β”‚   β”‚                          # categories, admin
β”‚   β”œβ”€β”€ middleware/            # auth.js (JWT verify), isAdmin.js
β”‚   └── db/
β”‚       β”œβ”€β”€ knex.js            # Knex connection
β”‚       β”œβ”€β”€ migrations/        # 001_users β†’ 005_goals
β”‚       └── seeds/             # Default categories + demo user + sample data
β”œβ”€β”€ .env                       # Environment variables (not committed)
β”œβ”€β”€ .gitignore
└── README.md

βš™οΈ Getting Started

Prerequisites

  • Node.js 18+
  • PostgreSQL 14+

1. Clone the repo

git clone https://github.com/YOUR_USERNAME/smartfinance.git
cd smartfinance

2. Set up environment variables

Create a .env file in the root:

PORT=5000
DATABASE_URL=postgresql://YOUR_USER:YOUR_PASSWORD@localhost:5432/smartfinance
JWT_SECRET=your_long_random_secret_here
CLIENT_URL=http://localhost:3000

3. Create the database

CREATE DATABASE smartfinance;

4. Install dependencies

# Backend
cd server && npm install

# Frontend
cd ../client && npm install

5. Run migrations & seed data

cd server
npx knex migrate:latest
npx knex seed:run

Seeds insert:

  • 8 default categories (Food, Transport, Housing, Health, Entertainment, Shopping, Savings, Other)
  • Demo admin user (demo@smartfinance.com / demo123)
  • 22 sample transactions across 3 months
  • 6 budget entries + 3 savings goals

6. Start both servers

Terminal 1 β€” Backend (port 5000):

cd server && npm run dev

Terminal 2 β€” Frontend (port 3000):

cd client && npm run dev

Open http://localhost:3000 πŸŽ‰


πŸ—„οΈ Database Schema

users          β€” id, name, email, password_hash, is_admin, created_at
categories     β€” id, name, user_id (null = global default), color
transactions   β€” id, user_id, type, description, amount, category_id,
                 date, is_recurring, recurring_frequency, created_at
budgets        β€” id, user_id, category_id, monthly_limit, month, created_at
savings_goals  β€” id, user_id, name, target_amount, saved_amount, deadline, created_at

πŸ”Œ API Endpoints

Method Endpoint Auth Description
POST /api/auth/register β€” Create account
POST /api/auth/login β€” Login, receive JWT
GET /api/auth/me βœ… Get current user
GET /api/transactions βœ… List with filters
POST /api/transactions βœ… Create transaction
PUT /api/transactions/:id βœ… Update transaction
DELETE /api/transactions/:id βœ… Delete transaction
GET /api/transactions/export/csv βœ… Export as CSV
GET /api/budgets βœ… List budgets
GET /api/budgets/status βœ… Budget usage + %
POST /api/budgets βœ… Create/update budget
DELETE /api/budgets/:id βœ… Delete budget
GET /api/goals βœ… List savings goals
POST /api/goals βœ… Create goal
PUT /api/goals/:id βœ… Update goal
GET /api/categories βœ… List categories
GET /api/admin/stats πŸ”’ Admin Platform stats
GET /api/admin/users πŸ”’ Admin All users
GET /api/admin/category-breakdown πŸ”’ Admin Spending by category

πŸ“‹ Scrum Sprint Summary

Sprint Dates Planned Completed Status
Sprint 1 Feb 22 – Mar 8, 2026 22 pts 17 pts Partially Achieved
Sprint 2 Mar 9 – Mar 23, 2026 21 pts 13 pts Partially Achieved
Sprint 3 Mar 24 – Apr 6, 2026 21 pts 21 pts βœ… Fully Achieved
Sprint 4 Apr 7 – Apr 20, 2026 19 pts 19 pts βœ… Fully Achieved
Total 8 weeks 83 pts 70 pts Complete

☁️ Deployment

Layer Platform
Frontend Vercel
Backend Railway
Database Neon (serverless PostgreSQL)

πŸ“„ License

MIT Β© 2026 Pranav Auti & Anil Paruchuri

About

πŸ’° A full-stack personal finance tracker built with React, Node.js, Express & PostgreSQL β€” Scrum simulation project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors