A modern full-stack Expense Tracker Web Application built using React, Node.js, Express, and MongoDB.
It helps users manage their income and expenses securely with user-specific data and authentication.
🔗Demo Video: https://drive.google.com/file/d/1VHmHlPyhBYp-K9si6WKiWCS1vS--vYyb/view?usp=sharing
- User Signup & Login
- JWT-based Authentication
- Secure Logout
- View Total Balance
- Track Total Income & Expenses
- Clean UI (optimized for desktop)
- Add Income / Expense
- View transaction history
- Delete transactions
- Real-time balance updates
- Each user sees only their own transactions
- Secure backend data handling
- React.js
- React Router
- React Hook Form
- Axios
- CSS
- Node.js
- Express.js
- MongoDB (Mongoose)
- JWT Authentication
- CORS & Environment Variables
- Vercel (Frontend)
- Render (Backend)
Expense-Tracker/
│
├── Backend/
│ ├── controllers/
│ ├── models/
│ ├── routes/
│ ├── server.js
│ ├── package.json
│ └── .env
│
├── Frontend/
│ ├── public/
│ ├── src/
│ │ ├── components/
│ │ ├── context/
│ │ ├── App.jsx
│ │ └── main.jsx
│ ├── package.json
│ └── index.html
│
└── README.mdgit clone https://github.com/your-username/expense-tracker.gitcd expense-trackercd Frontend
npm install
npm run devcd Backend
npm install
npm run devCreate a .env file in the Backend folder and add:
PORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_secret_key- Users authenticate using JWT
- Each request is verified on the backend
- Transactions are stored in MongoDB with a user reference
- Balance is calculated dynamically:
- Income → Added
- Expense → Subtracted
- Connecting frontend with backend APIs
- Implementing secure JWT authentication
- Fixing a major bug where all users were seeing the same data
→ Solved using user-specific queries in MongoDB
- Mobile responsiveness
- Edit transactions
- Charts & analytics
- Dark mode
Prateek Garg
🔗Linkedn : https://www.linkedin.com/in/prateek-garg-coder/
If you like this project, consider giving it a ⭐ on GitHub!