How dylankatchen/engine_prediction_app works
EngineGuard AI simulates a fleet from CMAPSS sensor data, predicts engine remaining useful life, and presents fleet health and per-engine history. The documented path is producer → Kafka → API ingestion and persistence → scheduled ML prediction → status/history API → dashboard. The README documents PostgreSQL, Kafka, and dashboard capabilities; source excerpts show the API and ML interactions, while deployment configuration and some frontend implementation details were not sampled.
Main entry points: SensorReadingRepository.java Reading repository · PredictionScheduler.java Prediction scheduler · EngineStatusRepository.java Status repository · SensorConsumer.java Sensor consumer
Components 15
Sensor ingestion
- CMAPSS simulator
kafka-producer/producer.py - Kafka bus
Maintenance API
- Sensor consumer
maintenance-api/src/main/java/com/aircraft/maintenance/SensorConsumer.java - Sensor readings
maintenance-api/src/main/java/com/aircraft/maintenance/SensorReading.java - Reading repository
maintenance-api/src/main/java/com/aircraft/maintenance/SensorReadingRepository.java - PostgreSQL
- Engine status
maintenance-api/src/main/java/com/aircraft/maintenance/EngineStatus.java - Status repository
maintenance-api/src/main/java/com/aircraft/maintenance/EngineStatusRepository.java - Status and history API
maintenance-api/src/main/java/com/aircraft/maintenance/EngineController.java
RUL prediction
- Prediction scheduler
maintenance-api/src/main/java/com/aircraft/maintenance/PredictionScheduler.java - ML prediction service
ml-service/app.py - Model training
ml-service/train.py
Fleet dashboard
- Fleet health dashboard
frontend_dash/src/App.tsx
Other components
- Demo operator
- Dashboard user
Connections 19
- Demo operator → CMAPSS simulator: starts simulation
README.md - CMAPSS simulator → Kafka bus: publishes readings
kafka-producer/producer.py - Kafka bus → Sensor consumer: delivers readings
README.md - Sensor consumer → Sensor readings: creates records
maintenance-api/src/main/java/com/aircraft/maintenance/SensorConsumer.java - Sensor consumer → Reading repository: saves readings
maintenance-api/src/main/java/com/aircraft/maintenance/SensorConsumer.java - Reading repository → Sensor readings: persists records
maintenance-api/src/main/java/com/aircraft/maintenance/SensorReadingRepository.java - Reading repository → PostgreSQL: stores readings
- Prediction scheduler → Reading repository: loads pending
maintenance-api/src/main/java/com/aircraft/maintenance/PredictionScheduler.java - Prediction scheduler → ML prediction service: requests prediction
maintenance-api/src/main/java/com/aircraft/maintenance/PredictionScheduler.java - ML prediction service → Prediction scheduler: returns RUL
maintenance-api/src/main/java/com/aircraft/maintenance/PredictionScheduler.java - Prediction scheduler → Status repository: saves status
maintenance-api/src/main/java/com/aircraft/maintenance/PredictionScheduler.java - Prediction scheduler → Reading repository: marks processed
maintenance-api/src/main/java/com/aircraft/maintenance/PredictionScheduler.java - Status repository → Engine status: persists status
maintenance-api/src/main/java/com/aircraft/maintenance/EngineStatusRepository.java - Status repository → PostgreSQL: stores status
- Status and history API → Status repository: reads statuses
maintenance-api/src/main/java/com/aircraft/maintenance/EngineController.java - Status and history API → Reading repository: reads history
maintenance-api/src/main/java/com/aircraft/maintenance/EngineController.java - Fleet health dashboard → Status and history API: fetches status and history
frontend_dash/src/App.tsx - Dashboard user → Fleet health dashboard: views health charts
README.md - Model training → ML prediction service: provides model
README.md