# tavas-softech/apms architecture

> Architecture diagram of the GitHub repository tavas-softech/apms, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/tavas-softech/apms
- Repository: https://github.com/tavas-softech/apms

## Overview

BMP-II Engine Health AI is a predictive-maintenance codebase for monitoring UTD-20 / BMP-II engines. Its tree indicates a workflow spanning sensor and vehicle-data acquisition, signal preparation and synchronization, feature generation, anomaly/fault/health and remaining-life analysis, then decision support and reporting. Training, inference, and evaluation have dedicated pipeline modules. The sampled source excerpts are empty, so component-to-component calls and data transfers cannot be verified; the graph therefore shows capabilities and stages without asserting wiring.

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ingest["Data acquisition"]
  node_can["CAN interface<br/>[can_interface.py]"]
  node_daq["DAQ interface<br/>[daq_interface.py]"]
  node_sensor["Sensor interface"]
  node_logger["Data logger<br/>[data_logger.py]"]
end

subgraph group_prep["Signal preparation"]
  node_preprocess["Preprocessing"]
  node_sync["Time and RPM sync"]
  node_regime["Operating regime"]
  node_quality["Data quality"]
end

subgraph group_analysis["Engine analytics"]
  node_features["Feature engineering"]
  node_train["Training pipeline"]
  node_infer["Inference pipeline"]
  node_evaluate["Evaluation pipeline"]
  node_anomaly["Anomaly detection"]
  node_fault["Fault classification"]
  node_health["Health assessment"]
  node_degradation["Degradation tracking"]
  node_rul["Remaining useful life"]
  node_explain["Model explanations"]
end

subgraph group_action["Decision and reporting"]
  node_decision["Decision support"]
  node_reports["Health and maintenance reports"]
end

subgraph group_state["Persistence"]
  node_maintenance[("Maintenance records")]
  node_predictions[("Prediction records")]
  node_engine_records[("Engine records")]
end

node_engine(("Engine sensors"))

click node_can "https://github.com/tavas-softech/apms/blob/main/src/apms_core/acquisition/can_interface.py"
click node_daq "https://github.com/tavas-softech/apms/blob/main/src/apms_core/acquisition/daq_interface.py"
click node_sensor "https://github.com/tavas-softech/apms/blob/main/src/apms_core/acquisition/sensor_interface.py"
click node_logger "https://github.com/tavas-softech/apms/blob/main/src/apms_core/acquisition/data_logger.py"
click node_preprocess "https://github.com/tavas-softech/apms/tree/main/src/apms_core/preprocessing"
click node_sync "https://github.com/tavas-softech/apms/tree/main/src/apms_core/synchronization"
click node_regime "https://github.com/tavas-softech/apms/tree/main/src/apms_core/operating_regime"
click node_quality "https://github.com/tavas-softech/apms/tree/main/src/apms_core/data_quality"
click node_features "https://github.com/tavas-softech/apms/tree/main/src/apms_core/feature_engineering"
click node_train "https://github.com/tavas-softech/apms/blob/main/src/apms_core/pipeline/training_pipeline.py"
click node_infer "https://github.com/tavas-softech/apms/blob/main/src/apms_core/pipeline/inference_pipeline.py"
click node_evaluate "https://github.com/tavas-softech/apms/blob/main/src/apms_core/pipeline/evaluation_pipeline.py"
click node_anomaly "https://github.com/tavas-softech/apms/tree/main/src/apms_core/anomaly_detection"
click node_fault "https://github.com/tavas-softech/apms/tree/main/src/apms_core/fault_classification"
click node_health "https://github.com/tavas-softech/apms/tree/main/src/apms_core/health_assessment"
click node_degradation "https://github.com/tavas-softech/apms/tree/main/src/apms_core/degradation"
click node_rul "https://github.com/tavas-softech/apms/tree/main/src/apms_core/rul"
click node_explain "https://github.com/tavas-softech/apms/tree/main/src/apms_core/explainability"
click node_decision "https://github.com/tavas-softech/apms/tree/main/src/apms_core/decision_support"
click node_reports "https://github.com/tavas-softech/apms/tree/main/src/apms_core/reporting"
click node_maintenance "https://github.com/tavas-softech/apms/blob/main/src/apms_core/database/maintenance_repository.py"
click node_predictions "https://github.com/tavas-softech/apms/blob/main/src/apms_core/database/prediction_repository.py"
click node_engine_records "https://github.com/tavas-softech/apms/blob/main/src/apms_core/database/engine_repository.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_can,node_daq,node_sensor,node_logger toneBlue
class node_preprocess,node_sync,node_regime,node_quality toneAmber
class node_features,node_train,node_infer,node_evaluate,node_anomaly,node_fault,node_health,node_degradation,node_rul,node_explain toneMint
class node_decision,node_reports toneRose
class node_maintenance,node_predictions,node_engine_records,node_engine toneIndigo
```

## Components

### Data acquisition

- [CAN interface](https://github.com/tavas-softech/apms/blob/main/src/apms_core/acquisition/can_interface.py): `src/apms_core/acquisition/can_interface.py`
- [DAQ interface](https://github.com/tavas-softech/apms/blob/main/src/apms_core/acquisition/daq_interface.py): `src/apms_core/acquisition/daq_interface.py`
- [Sensor interface](https://github.com/tavas-softech/apms/blob/main/src/apms_core/acquisition/sensor_interface.py): `src/apms_core/acquisition/sensor_interface.py`
- [Data logger](https://github.com/tavas-softech/apms/blob/main/src/apms_core/acquisition/data_logger.py): `src/apms_core/acquisition/data_logger.py`

### Signal preparation

- [Preprocessing](https://github.com/tavas-softech/apms/tree/main/src/apms_core/preprocessing): `src/apms_core/preprocessing`
- [Time and RPM sync](https://github.com/tavas-softech/apms/tree/main/src/apms_core/synchronization): `src/apms_core/synchronization`
- [Operating regime](https://github.com/tavas-softech/apms/tree/main/src/apms_core/operating_regime): `src/apms_core/operating_regime`
- [Data quality](https://github.com/tavas-softech/apms/tree/main/src/apms_core/data_quality): `src/apms_core/data_quality`

### Engine analytics

- [Feature engineering](https://github.com/tavas-softech/apms/tree/main/src/apms_core/feature_engineering): `src/apms_core/feature_engineering`
- [Training pipeline](https://github.com/tavas-softech/apms/blob/main/src/apms_core/pipeline/training_pipeline.py): `src/apms_core/pipeline/training_pipeline.py`
- [Inference pipeline](https://github.com/tavas-softech/apms/blob/main/src/apms_core/pipeline/inference_pipeline.py): `src/apms_core/pipeline/inference_pipeline.py`
- [Evaluation pipeline](https://github.com/tavas-softech/apms/blob/main/src/apms_core/pipeline/evaluation_pipeline.py): `src/apms_core/pipeline/evaluation_pipeline.py`
- [Anomaly detection](https://github.com/tavas-softech/apms/tree/main/src/apms_core/anomaly_detection): `src/apms_core/anomaly_detection`
- [Fault classification](https://github.com/tavas-softech/apms/tree/main/src/apms_core/fault_classification): `src/apms_core/fault_classification`
- [Health assessment](https://github.com/tavas-softech/apms/tree/main/src/apms_core/health_assessment): `src/apms_core/health_assessment`
- [Degradation tracking](https://github.com/tavas-softech/apms/tree/main/src/apms_core/degradation): `src/apms_core/degradation`
- [Remaining useful life](https://github.com/tavas-softech/apms/tree/main/src/apms_core/rul): `src/apms_core/rul`
- [Model explanations](https://github.com/tavas-softech/apms/tree/main/src/apms_core/explainability): `src/apms_core/explainability`

### Decision and reporting

- [Decision support](https://github.com/tavas-softech/apms/tree/main/src/apms_core/decision_support): `src/apms_core/decision_support`
- [Health and maintenance reports](https://github.com/tavas-softech/apms/tree/main/src/apms_core/reporting): `src/apms_core/reporting`

### Persistence

- [Maintenance records](https://github.com/tavas-softech/apms/blob/main/src/apms_core/database/maintenance_repository.py): `src/apms_core/database/maintenance_repository.py`
- [Prediction records](https://github.com/tavas-softech/apms/blob/main/src/apms_core/database/prediction_repository.py): `src/apms_core/database/prediction_repository.py`
- [Engine records](https://github.com/tavas-softech/apms/blob/main/src/apms_core/database/engine_repository.py): `src/apms_core/database/engine_repository.py`

### Other components

- **Engine sensors**
