darshangavate/Track-Flow

โ˜… 0Forks 0GitHub โ†—Compare

README

TrackFlow ๐Ÿš€

A full-stack Reimbursement & Expense Management System built with Node.js, Express, MongoDB, React, and Tailwind CSS.

๐Ÿ“ Repository Structure

Track-Flow/
โ”œโ”€โ”€ backend/    โ€” Node.js + Express REST API
โ””โ”€โ”€ frontend/   โ€” React + Tailwind CSS UI

โœจ Features

  • 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

๐Ÿงช Demo Accounts

Run npm run seed inside backend/ first to create these accounts.

Role Email Password Dashboard
๐Ÿ‘‘ Admin [email protected] admin1234 /admin
๐Ÿ‘” Manager [email protected] manager1234 /manager
๐Ÿ‘ค Employee [email protected] employee1234 /employee
๐Ÿ‘ค Employee [email protected] employee1234 /employee

๐Ÿš€ Quick Start

Prerequisites

  • Node.js v18+
  • MongoDB Atlas account (free tier works)

1. Clone the repo

git clone https://github.com/sachin-chavan-10/Track-Flow.git
cd Track-Flow

2. Setup Backend

cd 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:5000

3. Setup Frontend

cd ../frontend
npm install
npm run dev       # starts on http://localhost:5173

4. Open the app

Visit http://localhost:5173 and sign in with any demo account above.


๐Ÿ›  Tech Stack

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

๐Ÿ“ก API Reference

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

Contributors

sachin-chavan-10renoschubert

Issues