A full-stack MERN (MongoDB, Express, React, Node.js) application to manage and track your personal expenses with authentication, category-wise tracking, and dashboards.
- 🔗 Frontend (Vercel): https://expense-tracker-topaz-six.vercel.app
- 🔗 Backend (Render): https://expense-tracker-ooym.onrender.com
- 🔗 GitHub Repository: https://github.com/sharmaHarshit2000/expense-tracker
- User Registration & Login (JWT-based)
- Add, Edit, and Delete Expenses
- Expense Filtering by Date and Category
- Dashboard for Total and Recent Expenses
- Admin Panel to View All Expenses and Audit Logs
- CSV Export for Admins
- Insight Charts using Recharts
- Responsive UI with TailwindCSS / Material UI
- Toast Notifications for Feedback
- Frontend: React, Redux Toolkit, TailwindCSS or MUI, Axios
- Backend: Node.js, Express.js, MongoDB, Mongoose, JWT
- Deployment: Render (Backend), Vercel/Render (Frontend)
- Charting: Recharts (Insights)
git clone https://github.com/sharmaHarshit2000/expense-tracker.git
cd expense-trackercd backend
npm installCreate a .env file in backend/:
PORT=5000
MONGO_URI=your_mongo_db_uri
JWT_SECRET=your_jwt_secretStart the backend:
npm run devcd frontend
npm installCreate a .env file in frontend/:
VITE_API_BASE_URL=https://your-backend-service.onrender.com/apiStart the frontend:
npm run dev- Connect GitHub repo
- Add Environment Variables (
MONGO_URI,JWT_SECRET) - Set build command:
npm install - Set start command:
node index.jsornpm start
- Set
VITE_API_BASE_URLto backend's deployed URL - Set build command:
npm run build - Output directory:
dist(for Vite)
expense-tracker/
├── backend/
│ ├── server.js
│ ├── config/
│ ├── middlewares/
│ │ ├── authMiddleware.js
│ │ ├── errorHandler.js
│ │ └── notFound.js
│ ├── routes/
│ │ ├── authRoutes.js
│ │ ├── expenseRoutes.js
│ │ └── auditRoutes.js
│ ├── controllers/
│ │ ├── authController.js
│ │ ├── expenseController.js
│ │ └── auditController.js
│ ├── models/
│ │ ├── User.js
│ │ ├── Expense.js
│ │ └── AuditLog.js
│ └── utils/
│ └── generateToken.js
│
├── frontend/
│ ├── App.jsx
│ ├── main.jsx
│ ├── components/
│ │ ├── Header.jsx
│ │ ├── ProtectedRoute.jsx
│ │ ├── Footer.jsx
│ ├── pages/
│ │ ├── LoginPage.jsx
│ │ ├── RegisterPage.jsx
│ │ ├── Dashboard.jsx
│ │ ├── AdminPanel.jsx
│ │ ├── ExpenseForm.jsx
│ │ ├── AuditLogs.jsx
│ │ └── Insight.jsx
│ ├── context/
│ │ └── AuthContext.jsx
│ ├── api/
│ │ ├── auth.js
│ │ ├── audit.js
│ │ ├── expense.js
│ │ └── axios.js
│
├── screenshots/
│ ├── login.png
│ ├── register.png
│ ├── dashboard.png
│ ├── expenses.png
│ ├── admin-panel.png
│ ├── audit-logs.png
│ └── insight.png🧑💼 To view Audit Logs and Admin Panel, login as an admin user.
Harshit Sharma
📧 harshitsharma9989@gmail.com
📞 9369966830
🔗 GitHub Profile