A full-stack Reimbursement & Expense Management System built with Node.js, Express, MongoDB, React, and Tailwind CSS.
Track-Flow/
โโโ backend/ โ Node.js + Express REST API
โโโ frontend/ โ React + Tailwind CSS UI
- Multi-tenant โ Each company is fully isolated
- Role-based access โ Admin, Manager, Employee
- Approval workflow engine โ Sequential or parallel, configurable per category
- Receipt uploads โ JPEG, PNG, PDF (5MB limit)
- Analytics & Reports โ KPI dashboard, category breakdown, monthly trends
- Secure โ JWT auth, bcrypt hashing, Helmet headers, rate limiting
Run
npm run seedinsidebackend/first to create these accounts.
| Role | Password | Dashboard | |
|---|---|---|---|
| ๐ Admin | [email protected] |
admin1234 |
/admin |
| ๐ Manager | [email protected] |
manager1234 |
/manager |
| ๐ค Employee | [email protected] |
employee1234 |
/employee |
| ๐ค Employee | [email protected] |
employee1234 |
/employee |
- Node.js v18+
- MongoDB Atlas account (free tier works)
git clone https://github.com/sachin-chavan-10/Track-Flow.git
cd Track-Flowcd backend
cp .env.example .env
# Edit .env โ add your MONGO_URI and JWT_SECRET
npm install
npm run seed # creates demo accounts
npm run dev # starts on http://localhost:5000cd ../frontend
npm install
npm run dev # starts on http://localhost:5173Visit http://localhost:5173 and sign in with any demo account above.
| Layer | Technology |
|---|---|
| Frontend | React 18, Tailwind CSS v4, React Router v6, Axios |
| Backend | Node.js, Express.js, MongoDB, Mongoose |
| Auth | JWT, bcryptjs |
| Security | Helmet, express-rate-limit |
| Dev Tools | Vite, Nodemon |
Base URL: http://localhost:5000/api
| Method | Endpoint | Description |
|---|---|---|
| POST | /auth/signup |
Create company + admin |
| POST | /auth/login |
Login |
| GET | /auth/me |
Current user |
| GET | /users |
List users |
| POST | /users |
Create user |
| GET | /expenses |
List expenses (role-filtered) |
| POST | /expenses |
Create expense |
| POST | /expenses/:id/submit |
Submit draft for approval |
| GET | /approvals/pending |
Manager's approval queue |
| POST | /approvals/:id/approve |
Approve expense |
| POST | /approvals/:id/reject |
Reject expense |
| GET | /reports/summary |
Admin KPI dashboard |
| GET | /reports/my-expenses |
Employee personal report |
Full collection: see backend/api-tests.http