🔧 Key Features
Key
- Have
- In progress / Future / Nice to have
Python FastAPI Service
- Loads trained PPO models
- RESTful action prediction
- Health monitoring
- Comprehensive error handling
- Interactive API documentation (Swagger UI)
- Configurable via environment variables
- Request/response caching for identical observations
- Model versioning and switching at runtime
- Metrics collection (request counts, latency)
- Structured logging with log levels
Java API Gateway
- REST API endpoints for traffic control
- Communicates with Python service
- Health checks and monitoring
- Robust error handling
- Service dependency management
- Load testing capabilities
- Circuit breaker pattern (Resilience4j)
- Load testing capabilities
- API request rate limiting
- Request/response logging and audit trail
- Metrics export (Micrometer/Prometheus)
- Request validation and sanitization
SUMO Traffic Simulator Integration
- SUMO TraCI (Traffic Control Interface) integration
- Vehicle simulation and tracking
- Traffic light control via SUMO
- Real-time traffic state feedback
- SUMO network configuration
- Vehicle data collection and logging
- Simulation metrics and reporting
- Integration with RL inference service
Security & Authentication (Optional - A00163691-JWTAuth Branch)
- JWT token generation and validation
- Bearer token authentication for API endpoints
- Token refresh mechanism
- Role-based access control (RBAC)
- API key management
- Request signing with JWT
- Token expiration and revocation
- Secure token storage (in transit with HTTPS)
- Rate limiting per authenticated user
- Audit logging for authentication events
LSTM Traffic Predictor Service
- Load SUMO historical data (edgeData.xml)
- Preprocess time-series data (stationarity, scaling, sliding windows)
- Train LSTM model on historical traffic patterns
- Achieve MAE < 10% forecasting accuracy
- Predict vehicle flow 15 minutes ahead
- Handle missing sensor data (KNN imputation)
- REST endpoints (health, forecast, model_info)
- Interactive API documentation (Swagger UI)
- Health monitoring and logging
- Docker containerization
- Integration with RL Inference Service
- Bidirectional LSTM for enhanced accuracy (future)
- Attention mechanism for temporal weighting (future)
- Real-time model retraining capability (future)
- Weather data integration (future)
Docker Integration
- Multi-stage builds for optimization
- Service orchestration with Docker Compose
- Health checks and automatic restart
- Persistent volumes for models
- Network isolation
- Logging and monitoring
- Kubernetes deployment manifests (optional)
- Helm charts for production deployments
- Resource limits and requests configuration
- Container registry (Docker Hub/ECR)
Deployment
- Cloud deployment on Render
- GitHub Actions CI/CD pipeline (optional)
- Environment-based configuration (local/production)
- Graceful service fallback and degradation
- Model hot-loading without service restart
- Rollback mechanism for failed deployments
- Automated database migrations (if applicable)
- Secrets management (environment variables/vaults)
- Performance monitoring and alerting
Monitoring & Observability
- Prometheus metrics export
- Grafana dashboards for visualization
- Distributed tracing (Jaeger/Zipkin)
- Centralized logging (ELK Stack/Loki)
- Alert rules and notifications
- SLA/SLO tracking
- Custom business metrics
Documentation
- MkDocs with Material theme
- Auto-generated API documentation (Swagger/OpenAPI)
- Complete setup and troubleshooting guides
- Architecture and design documentation
- Quick start guides (5-minute setup)
- GitHub Pages hosting
- Inline code documentation and docstrings
GitHub Pages Site
- MkDocs Material theme
- Auto-generated from main branch docs
- Published at: https://joeaoregan.github.io/TUS-26-ETP-AI-Traffic-Optimisation/
- Search functionality
- Versioned documentation (multiple versions)
- Custom domain setup (optional)