FleetFlow is a production-level, enterprise-grade Transport Management System (TMS) designed for a manufacturing company. It utilizes a modular MERN stack architecture with Role-Based Access Control (RBAC), live simulated GPS coordinates tracking via Socket.IO, custom Leaflet maps rendering truck route vectors, analytical dashboards, and local file storage with Multer.
- Role-Based Access Control (RBAC):
- Admin: System configurations, user/driver directories, database deletions.
- Dispatcher: Allocates available vehicles and drivers to shipments.
- Warehouse Manager: Registers delivery shipments, loads weights, coordinates presets.
- Driver: Mobile portal showing assigned deliveries, route updates, comments feed, and Multer POD uploads.
- Real-time Live Operations Map:
- Leaflet.js maps drawing custom animated truck icons.
- GPS simulators moving trucks step-by-step along coordinates paths.
- Analytics Dashboard:
- Recharts visual metrics showing completed deliveries, truck deployment stacks, and status distributions.
- Operations timeline logging warehouse and dispatch activities.
- Resilient Mock Database Fallback:
- If local MongoDB instances are down, the server automatically reads and writes from an in-memory database populated with seed values (
mockDb.js).
- If local MongoDB instances are down, the server automatically reads and writes from an in-memory database populated with seed values (
For recruiter reviews and immediate dashboard explorations:
- Admin Portal:
- Email:
admin@fleetflow.com - Password:
password123
- Email:
- Dispatcher Portal:
- Email:
dispatcher@fleetflow.com - Password:
password123
- Email:
- Warehouse Manager Portal:
- Email:
warehouse@fleetflow.com - Password:
password123
- Email:
- Driver Portal:
- Email:
driver@fleetflow.com - Password:
password123
- Email:
FleetFlow/
├── backend/
│ ├── src/
│ │ ├── config/ # MongoDB and Mock JSON databases
│ │ ├── controllers/ # Express controllers (Auth, Shipments, Vehicles, Drivers, Analytics)
│ │ ├── middleware/ # JWT protection, RBAC checks, Multer uploads, Errors
│ │ ├── models/ # Mongoose schemas (User, Vehicle, Driver, Shipment, Notification)
│ │ ├── routes/ # Express routing definitions
│ │ ├── services/ # GPS Simulator, Notification dispatcher
│ │ ├── sockets/ # Socket.IO connection configurations
│ │ └── utils/ # Standard response utilities, token signers
│ ├── uploads/ # local image storage directory for Proof of Deliveries
│ ├── server.js # Node HTTP server launcher
│ └── package.json
├── frontend/
│ ├── src/
│ │ ├── assets/ # CSS styles
│ │ ├── components/ # Visual skeletons loading loaders
│ │ ├── context/ # Theme, Auth, and WebSockets contexts
│ │ ├── hooks/ # useAuth, useSocket, useTheme
│ │ ├── layouts/ # Auth layouts, Sidebars layouts shell
│ │ ├── pages/ # Login, Analytics, Shipments, Kanban board, Live tracking, Driver portal
│ │ ├── routes/ # Protected routes and navigation matrices
│ │ ├── services/ # Axios API hooks (auth, shipments, vehicles, drivers)
│ │ └── App.jsx # Context binders
│ └── package.json
└── README.md
- Node.js installed locally (version >= 18.0.0).
- MongoDB (optional - server automatically falls back to in-memory JSON if local connection is refused).
Create a .env file inside backend/ directory:
PORT=5000
MONGODB_URI=mongodb://localhost:27017/fleetflow
JWT_SECRET=fleetflow_jwt_secret_key_2026_super_secure
JWT_REFRESH_SECRET=fleetflow_jwt_refresh_secret_key_2026_super_secure
NODE_ENV=development
CLIENT_URL=http://localhost:5173Populate users, vehicles, transit shipments, and audit logs:
cd backend
npm run seedLaunch Express Node.js application:
npm run devInstall client dependencies and launch Vite React app:
cd ../frontend
npm install
npm run devOpen http://localhost:5173 in your browser.
POST /register— Sign up users or drivers.POST /login— Authenticate and retrieve JWT + Refresh token.POST /logout— Invalidate user tokens.POST /refresh— Issue rotated access tokens.GET /me— Retrieve active profile.
GET /— Fetch shipments with status/priority filtering.POST /— Register a shipment (Warehouse Manager / Admin).GET /:id— Load comments and status history timelines.PUT /:id/assign— Allocate driver and vehicle (Dispatcher / Admin).PUT /:id/status— Modify shipment status (Driver / Dispatchers).POST /:id/deliver— Upload receipt image (Multer) and close shipment (Driver).DELETE /:id— Wipe shipment record (Admin / Dispatcher).
GET /— List truck metrics.POST /— Create vehicle (Dispatcher / Admin).PUT /:id— Toggle maintenance status (Service Due, Under Repair).DELETE /:id— Wipes truck details (Admin).
GET /— List active driver profiles.PUT /:id— Toggle shift status.GET /tasks— Driver dashboard tasks queue.
GET /kpis— Summarize total counts and delivery success percentage.GET /charts— Retrieve Recharts data feeds.