TrafficFlow is a production-ready Traffic Management System (TMS) prototype designed for selected intersections in Uyo, Nigeria. It features real-time traffic data simulation, dynamic congestion level classification, adaptive signal timing optimization, and congestion-aware path routing utilizing a custom implementation of Dijkstra's algorithm.
# TrafficFlow
TrafficFlow is a production-ready Traffic Management System (TMS) prototype designed for selected intersections in Uyo, Nigeria. It features real-time traffic data simulation, dynamic congestion level classification, adaptive signal timing optimization, and congestion-aware path routing utilizing a custom implementation of Dijkstra's algorithm.
---
## Technical Stack
- **Backend:** Node.js + Express.js
- **Frontend:** EJS (Embedded JavaScript) templating with a unified flat CSS design system
- **Database:** MySQL 8.0 (utilizing parameterized query connections via `mysql2`)
- **Real-time Telemetry:** Socket.IO & SVG-based interactive graph visualizations
- **Containerization:** Docker Compose
---
## Project Structure
```
├── config/
│ └── db.js # Database connection pool setup
├── engine/
│ └── tmsEngine.js # Core business logic: Simulator, Congestion, Signals, Dijkstra
├── middleware/
│ └── auth.js # Auth access control (Admin checks)
├── public/
│ ├── css/
│ │ └── style.css # Flat design system styles (prefixed tms-*)
│ └── js/
│ ├── adminMap.js # Live network SVG graph visualization loader
│ └── userMap.js # Dijkstra path planner SVG rendering
├── routes/
│ ├── api/ # JSON REST API routes
│ │ ├── admin.js
│ │ ├── auth.js
│ │ └── traffic.js
│ └── pages/ # HTML/EJS rendering page controllers
│ ├── admin.js
│ ├── auth.js
│ └── roadUser.js
├── views/
│ ├── admin/ # Admin pages: Dashboard, Intersections, Roads, Settings, Reports
│ ├── auth/ # Access forms: Login, Register
│ ├── partials/ # Shared fragments: Header, Footer, Navbar, Sidebar
│ ├── public/ # Public pages: Index (Route Planner)
│ ├── 404.ejs
│ └── 500.ejs
├── .env.example # Environment variables template
├── app.js # Central system bootstrap file
├── Dockerfile …