Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ExpensePilot Dashboard

ExpensePilot

Personal finance, in flight.
Track every rupee, from takeoff to clarity.


πŸ“– Overview

ExpensePilot is a full-stack personal finance application that helps users manage income, expenses, and budgets β€” and understand their financial health at a glance. It pairs a modern, glassmorphic, dark-mode-only React interface with a secure Node.js/Express + MongoDB backend, giving users a calm, focused space to log transactions, set monthly limits, and explore spending trends through interactive charts.

Built as a full end-to-end product: authentication, protected routes, RESTful APIs, persistent data models, and a polished analytics dashboard β€” all in one codebase.

✨ Features

  • πŸ” Secure Authentication β€” JWT-based auth with httpOnly cookie sessions and protected route middleware
  • πŸ’΅ Income Tracking β€” Add, edit, delete, filter, search, and sort income records
  • πŸ’Έ Expense Management β€” Categorized expense entries with dates and descriptions
  • πŸ“Š Budget Monitoring β€” Set a monthly limit, track category-level spending caps, and get visual warning states as you approach your limit
  • πŸ“ˆ Analytics Dashboard β€” Income vs. expense trends, category distribution, and top spending categories via interactive charts
  • πŸŒ™ Modern Dark UI β€” Glassmorphism, animated gradients, floating blobs, cursor-glow effects, skeleton loaders, and confetti micro-interactions
  • πŸ“± Responsive Design β€” Fully usable across desktop and mobile viewports
  • πŸ”’ Privacy First β€” User data is scoped per-account and never shared

πŸ–ΌοΈ Screenshots

Sign In
Dashboard
Income
Expenses
Budget
Analytics
Profile

πŸ—οΈ Architecture

Frontend

Tech Purpose
React 19 UI library
Vite Build tool & dev server
TypeScript Type safety
TanStack Router Route-based navigation
TanStack Query Server state & caching
Tailwind CSS Utility-first styling
Recharts Data visualization
Sonner Toast notifications

Backend

Tech Purpose
Node.js Runtime
Express.js REST API framework
MongoDB + Mongoose Database & ODM
JWT (httpOnly cookies) Authentication

πŸ—‚οΈ Project Structure

ExpensePilot/
β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ controllers/     # Auth, income, expense, budget, analytics logic
β”‚   β”œβ”€β”€ models/           # Mongoose schemas (User, Income, Expense, Budget)
β”‚   β”œβ”€β”€ routes/           # API route registration
β”‚   β”œβ”€β”€ middleware/       # Auth & error handling
β”‚   └── server.js          # Express app entry point
β”‚
└── frontend/
    β”œβ”€β”€ src/
    β”‚   β”œβ”€β”€ routes/        # Page-level routes (dashboard, income, expenses, budget, analytics, auth)
    β”‚   β”œβ”€β”€ components/    # Shared UI shell, sidebar, layouts, icons
    β”‚   └── lib/
    β”‚       β”œβ”€β”€ api.ts     # API client
    β”‚       └── store.ts   # Client-side UI/session state
    └── vite.config.ts

🧩 Data Models

Model Fields
User account details, hashed password, currency preference
Income amount, category, description, date, owner
Expense amount, category, description, date, owner
Budget one monthly budget per user, category limits

πŸš€ Getting Started

Prerequisites

  • Node.js (v18+ recommended)
  • MongoDB (local instance or MongoDB Atlas)
  • npm or yarn

Installation

# Clone the repository
git clone https://github.com/wasay-khanzada/ExpensePilot.git
cd ExpensePilot

# Install backend dependencies
cd backend
npm install

# Install frontend dependencies
cd ../frontend
npm install

Environment Variables

Create a .env file inside backend/:

PORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
NODE_ENV=development

Create a .env file inside frontend/ (if applicable):

VITE_API_BASE_URL=http://localhost:5000/api

Running Locally

# Start the backend (from /backend)
npm run dev

# Start the frontend (from /frontend, in a separate terminal)
npm run dev

The frontend will typically run at http://localhost:5173 and the backend API at http://localhost:5000.

πŸ—ΊοΈ Roadmap

  • Automated test suite for backend endpoints and critical frontend flows
  • Full backend persistence for category budget limits
  • Reduce reliance on local client-side store in favor of backend as single source of truth
  • CI pipeline for linting, testing, and builds
  • Production deployment configuration & documentation

See CHANGELOG.md for release history.

🀝 Contributing

Contributions, issues, and feature requests are welcome! Please read CONTRIBUTING.md before submitting a pull request.

πŸ“„ License

This project is licensed under the MIT License.

πŸ‘€ Author

Wasay Khanzada GitHub: @wasay-khanzada


Built with β˜• and a lot of dark mode.

About

A full-stack personal finance app to track income, expenses, and budgets with real-time analytics - built with React, TypeScript, Node.js, Express & MongoDB.

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages