A Full-Stack Industrial AI solution that predicts the Remaining Useful Life (RUL) of turbofan jet engines using sensor telemetry.
The Problem: In manufacturing and aviation, unscheduled downtime costs millions. Waiting for a machine to break is too expensive; replacing parts too early is wasteful.
The Solution: This dashboard uses a Random Forest Regressor trained on NASA C-MAPSS data to predict exactly when an engine will fail, allowing for "Just-In-Time" maintenance.
- Real-time RUL Prediction: Ingests live sensor data (Temperature, Pressure, Fan Speed) to estimate cycles remaining.
- Explainable AI (XAI): Integrated SHAP analysis to tell operators why the AI predicts failure (e.g., "Sensor 11 pressure drop").
- Traffic Light Health System: Instant Green/Orange/Red status for non-technical shop floor managers.
- Dockerized: Fully containerized for instant deployment on any cloud or on-prem server.
| Component | Technology | Description |
|---|---|---|
| Core | Python 3.11 | Data processing and logic |
| Model | Scikit-Learn | Random Forest Regressor (RMSE ~41.5) |
| App | Streamlit | Interactive Industrial Dashboard |
| XAI | SHAP | Model interpretability and feature importance |
| DevOps | Docker | Containerization and reproducible builds |
| Testing | Pytest | Automated unit testing for math logic |
├── app/
│ ├── main.py # Streamlit Dashboard Entry Point
├── data/ # Raw NASA C-MAPSS Sensor Logs (Ignored by Git)
├── models/ # Serialized ML Models (.pkl)
├── notebooks/ # Jupyter Labs for EDA & Training
├── src/ # Production-Grade Source Code
│ ├── data.py # Data Ingestion Pipeline
│ ├── features.py # Feature Engineering (RUL Calculation)
│ ├── model.py # Model Training Logic
├── tests/ # Pytest Unit Tests
├── Dockerfile # Container Config
└── pyproject.toml # Dependency Manifest
The easiest way to run the app without installing dependencies.
docker build -t predictive-maintenance .
docker run -p 8501:8501 predictive-maintenanceAccess the dashboard at http://localhost:8501.
If you want to edit the code, use uv.
# 1. Clone the repo
git clone [https://github.com/maxykoin/predictive-maintenance.git](https://github.com/maxykoin/predictive-maintenance.git)
cd predictive-maintenance
# 2. Sync dependencies
uv sync
# 3. Run the App
uv run streamlit run app/main.pyThis project uses pytest to ensure mathematical accuracy of RUL calculations.
uv run pytest