A full-stack expense tracking application with a modern React + Vite frontend and a Node.js/Express + MongoDB backend.
- User authentication (signup, login, logout)
- Secure session management
- Add, view, and categorize expenses
- Dashboard with analytics and KPIs
- Profile management and monthly budget setting
- Responsive, mobile-optimized UI with Tailwind CSS
- SweetAlert2 for user notifications
/
│
├── backend/ # Node.js/Express API server
│ ├── index.js
│ ├── package.json
│ └── models/
│ ├── userschema.js
│ └── expenseschema.js
│
└── frontend/ # React + Vite client
├── src/
│ ├── App.jsx
│ ├── main.jsx
│ ├── index.css
│ ├── pages/
│ │ ├── Home.jsx
│ │ ├── Signup.jsx
│ │ ├── Login.jsx
│ │ └── Dashboard.jsx
│ └── components/
├── package.json
├── vite.config.js
└── index.html
- Frontend: React, Vite, Tailwind CSS, React Router, Lucide Icons, SweetAlert2
- Backend: Node.js, Express, MongoDB, Mongoose, bcrypt, express-session, connect-mongo, dotenv, cors
- Node.js (v18+ recommended)
- MongoDB instance (local or cloud)
- Navigate to the backend folder:
cd backend - Install dependencies:
npm install
- Create a
.envfile with:MONGO_URI=your_mongodb_connection_string PORT=7000 FRONT_END_URI=http://localhost:5173 SMTP_USER = <your email address> SMTP_PASS = <your app password> - Add a
uploads/folder:mkdir uploads - Start the backend server:
npm start
- Navigate to the frontend folder:
cd frontend - Install dependencies:
npm install
- Start the development server:
npm run dev
- Open http://localhost:5173 in your browser.
- Sign up for a new account.
- Log in to access your dashboard.
- Add and manage expenses, set your monthly budget, and view analytics.
npm start— Start the backend server with nodemon
npm run dev— Start the Vite dev servernpm run build— Build for productionnpm run preview— Preview the production buildnpm run lint— Run ESLint
This project is licensed under the ISC License.