A full-stack MERN expense tracking web application that helps users manage expenses, monitor budgets, and visualize spending analytics through interactive dashboards.
- 🔐 JWT Authentication — Secure register, login & logout
- 👤 User-scoped data — Each user sees only their own expenses & budgets
- 💸 Full CRUD — Add, edit & delete transactions
- 📊 Dashboard Analytics — Interactive pie & bar charts via Recharts
- 📁 Categories & Filters — Filter by category, type, month
- 🔎 Search — Real-time transaction search
- 🎯 Budget Tracking — Set limits per category with progress bars
- ☁️ Cloud Database — MongoDB Atlas
- 🌐 Fully Deployed — Vercel (frontend) + Render (backend)
- 📱 Mobile Responsive — Works on all screen sizes
| Layer | Technology |
|---|---|
| Frontend | React, Vite, CSS, Axios, Recharts |
| Backend | Node.js, Express.js |
| Auth | JWT, bcryptjs |
| Database | MongoDB Atlas, Mongoose |
| Deployment | Vercel, Render |
| Dashboard | Transactions |
|---|---|
![]() |
![]() |
| Login | Budgets |
|---|---|
![]() |
![]() |
SpendSense/
├── backend/
│ ├── controllers/
│ ├── middleware/
│ ├── models/
│ ├── routes/
│ └── server.js
├── frontend/
│ └── src/
│ ├── api/
│ ├── components/
│ ├── pages/
│ └── App.jsx
└── README.md
git clone https://github.com/NishadRaval/SpendSense.git
cd SpendSensecd backend
npm installCreate backend/.env:
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_secret_key
JWT_EXPIRES_IN=7d
PORT=5000npm run devcd frontend
npm installCreate frontend/.env:
VITE_API_URL=http://localhost:5000/apinpm run dev| Variable | Description |
|---|---|
MONGO_URI |
MongoDB Atlas connection string |
JWT_SECRET |
Secret key for JWT signing |
JWT_EXPIRES_IN |
Token expiry duration (e.g. 7d) |
PORT |
Server port (default: 5000) |
| Variable | Description |
|---|---|
VITE_API_URL |
Backend API base URL |
- Recurring expenses
- Dark mode toggle
- Export reports to PDF/CSV
- Monthly trend line chart
- Email notifications
- AI spending insights
- Mobile app (React Native)
Nishad Raval
- 🌐 Portfolio: nishadraval.site
- 💻 GitHub: @NishadRaval
Built with ❤️ using the MERN Stack



