# manojdevops789/qeni architecture

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

- Interactive diagram: https://gitdiagram.com/manojdevops789/qeni
- Repository: https://github.com/manojdevops789/qeni

## Overview

QENI is an experimental edge anomaly-detection platform: sensor telemetry is fused on-device, encoded as quantum feature angles, evaluated by a quantum kernel, then classified locally by an SVM and surfaced in a dashboard. Training builds and evaluates the kernel SVM from synthetic or labeled data; the separate collection workflow gathers labeled sensor samples. README capabilities not shown in sampled code are represented only where the tree supports a subsystem. Dashboard internals and some sensor implementations were not excerpted, so their connections are limited to documented or indexed relationships.

Main entry points: [`sensors/sensor_manager.py`](https://github.com/manojdevops789/qeni/blob/main/sensors/sensor_manager.py) (Sensor Fusion), [`inference/qeni_inference.py`](https://github.com/manojdevops789/qeni/blob/main/inference/qeni_inference.py) (Inference Engine), [`core/training.py`](https://github.com/manojdevops789/qeni/blob/main/core/training.py) (Kernel SVM Training), [`quantum/kernel.py`](https://github.com/manojdevops789/qeni/blob/main/quantum/kernel.py) (Quantum Kernel)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_sensing["Edge Sensing"]
  node_manager["Sensor Fusion<br/>[sensor_manager.py]"]
  node_sensor_base["Reading Model<br/>[base_sensor.py]"]
  node_temperature["Temperature Sensor<br/>[tmp102_sensor.py]"]
  node_current["Current Sensor<br/>[acs712_sensor.py]"]
  node_imu["Motion Sensor"]
end

subgraph group_quantum["Quantum Compute"]
  node_encoder["Feature Encoder<br/>[encoder.py]"]
  node_kernel["Quantum Kernel<br/>[kernel.py]"]
end

subgraph group_learning["Model Lifecycle"]
  node_collector["Labeled Data Collection<br/>[collect_data.py]"]
  node_training_entry["Training Entry<br/>[train.py]"]
  node_training["Kernel SVM Training<br/>[training.py]"]
  node_model_store[("Model Artifacts")]
end

subgraph group_runtime["Inference &amp; Dashboard"]
  node_inference_entry["Inference Runtime<br/>[run_inference.py]"]
  node_inference["Inference Engine<br/>[qeni_inference.py]"]
  node_dashboard["Live Dashboard<br/>[app.py]"]
end

node_operator(("Operator"))
node_sensor_hardware{{"Sensor Hardware"}}
node_ibm{{"IBM Quantum"}}
node_simulator["Aer Simulator"]
node_viewer(("Dashboard Viewer"))

node_sensor_hardware -->|"supplies readings"| node_manager
node_manager -->|"reads"| node_temperature
node_manager -->|"reads"| node_current
node_manager -->|"reads"| node_imu
node_manager -->|"builds readings"| node_sensor_base
node_collector -->|"collects from"| node_manager
node_training_entry -->|"runs training"| node_training
node_training -->|"encodes features"| node_encoder
node_training -->|"computes matrices"| node_kernel
node_training -->|"saves artifacts"| node_model_store
node_inference_entry -->|"starts runtime"| node_inference
node_inference_entry -->|"initializes sensors"| node_manager
node_inference_entry -->|"registers results"| node_dashboard
node_inference -->|"reads telemetry"| node_manager
node_inference -->|"encodes features"| node_encoder
node_inference -->|"requests kernel row"| node_kernel
node_inference -->|"loads artifacts"| node_model_store
node_kernel -->|"executes circuits"| node_ibm
node_kernel -->|"runs locally"| node_simulator
node_dashboard -.->|"streams results"| node_viewer
node_operator -->|"labels samples"| node_collector

click node_manager "https://github.com/manojdevops789/qeni/blob/main/sensors/sensor_manager.py"
click node_sensor_base "https://github.com/manojdevops789/qeni/blob/main/sensors/base_sensor.py"
click node_temperature "https://github.com/manojdevops789/qeni/blob/main/sensors/tmp102_sensor.py"
click node_current "https://github.com/manojdevops789/qeni/blob/main/sensors/acs712_sensor.py"
click node_imu "https://github.com/manojdevops789/qeni/tree/main/sensors"
click node_encoder "https://github.com/manojdevops789/qeni/blob/main/quantum/encoder.py"
click node_kernel "https://github.com/manojdevops789/qeni/blob/main/quantum/kernel.py"
click node_collector "https://github.com/manojdevops789/qeni/blob/main/scripts/collect_data.py"
click node_training_entry "https://github.com/manojdevops789/qeni/blob/main/scripts/train.py"
click node_training "https://github.com/manojdevops789/qeni/blob/main/core/training.py"
click node_model_store "https://github.com/manojdevops789/qeni/tree/main/models"
click node_inference_entry "https://github.com/manojdevops789/qeni/blob/main/scripts/run_inference.py"
click node_inference "https://github.com/manojdevops789/qeni/blob/main/inference/qeni_inference.py"
click node_dashboard "https://github.com/manojdevops789/qeni/blob/main/dashboard/app.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_manager,node_sensor_base,node_temperature,node_current,node_imu,node_viewer toneBlue
class node_encoder,node_kernel toneAmber
class node_collector,node_training_entry,node_training,node_model_store toneMint
class node_inference_entry,node_inference,node_dashboard toneRose
class node_operator,node_sensor_hardware,node_ibm,node_simulator toneIndigo
```

## Components

### Edge Sensing

- [Sensor Fusion](https://github.com/manojdevops789/qeni/blob/main/sensors/sensor_manager.py): `sensors/sensor_manager.py`
- [Reading Model](https://github.com/manojdevops789/qeni/blob/main/sensors/base_sensor.py): `sensors/base_sensor.py`
- [Temperature Sensor](https://github.com/manojdevops789/qeni/blob/main/sensors/tmp102_sensor.py): `sensors/tmp102_sensor.py`
- [Current Sensor](https://github.com/manojdevops789/qeni/blob/main/sensors/acs712_sensor.py): `sensors/acs712_sensor.py`
- [Motion Sensor](https://github.com/manojdevops789/qeni/tree/main/sensors): `sensors`

### Quantum Compute

- [Feature Encoder](https://github.com/manojdevops789/qeni/blob/main/quantum/encoder.py): `quantum/encoder.py`
- [Quantum Kernel](https://github.com/manojdevops789/qeni/blob/main/quantum/kernel.py): `quantum/kernel.py`

### Model Lifecycle

- [Labeled Data Collection](https://github.com/manojdevops789/qeni/blob/main/scripts/collect_data.py): `scripts/collect_data.py`
- [Training Entry](https://github.com/manojdevops789/qeni/blob/main/scripts/train.py): `scripts/train.py`
- [Kernel SVM Training](https://github.com/manojdevops789/qeni/blob/main/core/training.py): `core/training.py`
- [Model Artifacts](https://github.com/manojdevops789/qeni/tree/main/models): `models`

### Inference & Dashboard

- [Inference Runtime](https://github.com/manojdevops789/qeni/blob/main/scripts/run_inference.py): `scripts/run_inference.py`
- [Inference Engine](https://github.com/manojdevops789/qeni/blob/main/inference/qeni_inference.py): `inference/qeni_inference.py`
- [Live Dashboard](https://github.com/manojdevops789/qeni/blob/main/dashboard/app.py): `dashboard/app.py`

### Other components

- **Operator**
- **Sensor Hardware**
- **IBM Quantum**
- **Aer Simulator**
- **Dashboard Viewer**

## Connections

- Sensor Hardware → Sensor Fusion: supplies readings (evidence: `sensors/sensor_manager.py`)
- Sensor Fusion → Temperature Sensor: reads (evidence: `sensors/sensor_manager.py`)
- Sensor Fusion → Current Sensor: reads (evidence: `sensors/sensor_manager.py`)
- Sensor Fusion → Motion Sensor: reads (evidence: `sensors/sensor_manager.py`)
- Sensor Fusion → Reading Model: builds readings (evidence: `sensors/sensor_manager.py`)
- Labeled Data Collection → Sensor Fusion: collects from (evidence: `scripts/collect_data.py`)
- Training Entry → Kernel SVM Training: runs training (evidence: `scripts/train.py`)
- Kernel SVM Training → Feature Encoder: encodes features (evidence: `core/training.py`)
- Kernel SVM Training → Quantum Kernel: computes matrices (evidence: `core/training.py`)
- Kernel SVM Training → Model Artifacts: saves artifacts (evidence: `core/training.py`)
- Inference Runtime → Inference Engine: starts runtime (evidence: `scripts/run_inference.py`)
- Inference Runtime → Sensor Fusion: initializes sensors (evidence: `scripts/run_inference.py`)
- Inference Runtime → Live Dashboard: registers results (evidence: `scripts/run_inference.py`)
- Inference Engine → Sensor Fusion: reads telemetry (evidence: `inference/qeni_inference.py`)
- Inference Engine → Feature Encoder: encodes features (evidence: `inference/qeni_inference.py`)
- Inference Engine → Quantum Kernel: requests kernel row (evidence: `inference/qeni_inference.py`)
- Inference Engine → Model Artifacts: loads artifacts (evidence: `inference/qeni_inference.py`)
- Quantum Kernel → IBM Quantum: executes circuits (evidence: `quantum/kernel.py`)
- Quantum Kernel → Aer Simulator: runs locally (evidence: `quantum/kernel.py`)
- Live Dashboard → Dashboard Viewer: streams results (evidence: `README.md`)
- Operator → Labeled Data Collection: labels samples (evidence: `scripts/collect_data.py`)
