Skip to content

Athang69/Expense-Tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

💸 Expense Tracker

A full-stack personal finance app to track income & expenses with interactive dashboards

Live Demo Backend JavaScript React Node.js MongoDB

Note: Backend is hosted on Render's free tier — first load may take ~30 seconds to spin up.


📸 Preview

Add a demo GIF here — record your screen using Loom or any screen recorder, convert at ezgif.com, and drop the file in the repo.


✨ Features

  • 🔐 JWT Authentication — Secure register/login with bcrypt password hashing
  • 💰 Income & Expense Tracking — Add, view, and delete financial entries
  • 📊 Interactive Dashboard — Visual charts and financial summaries using Recharts
  • 🖼️ Profile Picture Upload — Multer-powered image upload support
  • 📥 Export to Excel — Download your financial data as .xlsx
  • 📱 Responsive UI — Works across desktop and mobile

🛠️ Tech Stack

Layer Technology
Frontend React 19, Vite, Tailwind CSS, Recharts, React Router
Backend Node.js, Express.js
Database MongoDB (Mongoose ODM)
Auth JWT, Bcrypt
File Upload Multer
Deployment Vercel (frontend), Render (backend)

🏗️ Project Structure

expense-tracker/
├── backend/
│   ├── controllers/       # Route handlers (auth, transactions)
│   ├── models/            # Mongoose schemas (User, Transaction)
│   ├── routes/            # Express route definitions
│   ├── middleware/         # JWT auth middleware
│   └── server.js          # Entry point
│
└── frontend/
    └── expense-tracker/
        ├── src/
        │   ├── components/    # Reusable UI components
        │   ├── pages/         # Dashboard, Login, Register
        │   └── context/       # Auth & data context
        └── vite.config.js

🚀 Getting Started

Prerequisites

1. Clone the repo

git clone https://github.com/Athang69/Expense-Tracker.git
cd Expense-Tracker

2. Backend Setup

cd backend
npm install

Create a .env file based on .env.example:

PORT=8000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret_key
npm run dev

Backend runs at http://localhost:8000

3. Frontend Setup

cd frontend/expense-tracker
npm install
npm run dev

Frontend runs at http://localhost:5173


🔌 API Endpoints

Auth

Method Endpoint Description
POST /api/v1/auth/register Register new user
POST /api/v1/auth/login Login & receive JWT
GET /api/v1/auth/getUser Get current user profile

Transactions

Method Endpoint Description
POST /api/v1/income/addIncome Add income entry
GET /api/v1/income/getIncome Get all income
DELETE /api/v1/income/:id Delete income entry
POST /api/v1/expense/addExpense Add expense entry
GET /api/v1/expense/getExpense Get all expenses
DELETE /api/v1/expense/:id Delete expense entry

📄 .env.example

PORT=8000
MONGO_URI=mongodb+srv://<username>:<password>@cluster.mongodb.net/expense-tracker
JWT_SECRET=your_super_secret_key

👨‍💻 Author

Athang KaliGitHub · LinkedIn · Portfolio

About

BackEndURL: https://expense-tracker-a6yf.onrender.com/

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors