# ismailimamoglu/motocortex architecture

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

- Interactive diagram: https://gitdiagram.com/ismailimamoglu/motocortex
- Repository: https://github.com/ismailimamoglu/motocortex

## Overview

MotoCortex is an offline-first mobile vehicle diagnostics and ECU-coding product. A driver connects an adapter, identifies a vehicle, scans vehicle systems, reviews diagnostic results, and may perform supported service or coding actions. The map also preserves documented EV, reporting, telemetry, and AI capabilities. The README supports these product branches; sampled source confirms selected engine, safety, storage, and UI behavior, but not every screen-to-service connection.

Main entry points: [`src/api/OBD2ProtocolEngine.ts`](https://github.com/ismailimamoglu/motocortex/blob/main/src/api/OBD2ProtocolEngine.ts) (OBD protocol engine), [`src/services/multiEcuService.ts`](https://github.com/ismailimamoglu/motocortex/blob/main/src/services/multiEcuService.ts) (Multi-ECU diagnostics), [`App.tsx`](https://github.com/ismailimamoglu/motocortex/blob/main/App.tsx) (Mobile app), [`src/components/LiveEngineHero.tsx`](https://github.com/ismailimamoglu/motocortex/blob/main/src/components/LiveEngineHero.tsx) (Live engine)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Mobile experience"]
  node_app["Mobile app<br/>[App.tsx]"]
  node_connection_ui["Connection flow"]
  node_live_ui["Live engine<br/>[LiveEngineHero.tsx]"]
end

subgraph group_diagnostics["Connection and diagnostics"]
  node_protocol_engine["OBD protocol engine"]
  node_transport["Native OBD transports<br/>[index.ts]"]
  node_identity["Vehicle identity"]
  node_ecu_discovery["ECU discovery"]
  node_multi_ecu["Multi-ECU diagnostics<br/>[multiEcuService.ts]"]
  node_dtc["DTC parsing and lookup<br/>[DtcStreamParser.ts]"]
end

subgraph group_coding["ECU coding and safety"]
  node_feature_catalog["OEM feature catalog<br/>[FeatureCatalog.ts]"]
  node_activation["Feature activation"]
  node_safety["Safety policy<br/>[SafetyGate.ts]"]
  node_sgw["Gateway access<br/>[SgwBypassEngine.ts]"]
end

subgraph group_insights["Vehicle insights"]
  node_ai["AI Doctor<br/>[aiDoctorService.ts]"]
  node_ev["EV diagnostics"]
  node_inspection["Inspection reports"]
  node_telemetry["Telemetry services"]
end

subgraph group_platform["Persistence and services"]
  node_bluetooth_store["Connection state"]
  node_sqlite[("Telemetry queue<br/>[SQLiteStorage.ts]")]
  node_supabase["Supabase services<br/>[supabaseClient.ts]"]
end

node_driver(("Driver"))
node_adapter(("OBD adapter"))

node_driver -->|"uses"| node_app
node_app -->|"presents"| node_connection_ui
node_app -->|"presents"| node_live_ui
node_live_ui -->|"reads state"| node_bluetooth_store
node_live_ui -->|"connects through"| node_adapter
node_adapter -->|"sends vehicle data"| node_transport
node_protocol_engine -->|"executes commands"| node_transport
node_protocol_engine -->|"updates state"| node_bluetooth_store
node_protocol_engine -->|"decodes codes"| node_dtc
node_protocol_engine -->|"provides responses"| node_identity
node_identity -->|"informs vehicle scan"| node_ecu_discovery
node_ecu_discovery -->|"supports module scan"| node_multi_ecu
node_multi_ecu -->|"provides diagnostic context"| node_ai
node_dtc -->|"provides fault codes"| node_ai
node_feature_catalog -->|"supplies definitions"| node_activation
node_activation -->|"checks safety"| node_safety
node_activation -.->|"uses gateway access"| node_sgw
node_telemetry -->|"queues telemetry"| node_sqlite
node_telemetry -->|"syncs data"| node_supabase
node_multi_ecu -->|"supplies diagnostics"| node_inspection
node_multi_ecu -->|"supports EV scan"| node_ev

click node_app "https://github.com/ismailimamoglu/motocortex/blob/main/App.tsx"
click node_connection_ui "https://github.com/ismailimamoglu/motocortex/blob/main/src/screens/ConnectionFlowScreen.tsx"
click node_live_ui "https://github.com/ismailimamoglu/motocortex/blob/main/src/components/LiveEngineHero.tsx"
click node_protocol_engine "https://github.com/ismailimamoglu/motocortex/blob/main/src/api/OBD2ProtocolEngine.ts"
click node_transport "https://github.com/ismailimamoglu/motocortex/blob/main/modules/motocortex-obd/src/index.ts"
click node_identity "https://github.com/ismailimamoglu/motocortex/blob/main/src/core/identity/VehicleIdentityEngine.ts"
click node_ecu_discovery "https://github.com/ismailimamoglu/motocortex/blob/main/src/core/discovery/EcuDiscoveryEngine.ts"
click node_multi_ecu "https://github.com/ismailimamoglu/motocortex/blob/main/src/services/multiEcuService.ts"
click node_dtc "https://github.com/ismailimamoglu/motocortex/blob/main/src/core/parser/DtcStreamParser.ts"
click node_ai "https://github.com/ismailimamoglu/motocortex/blob/main/src/services/aiDoctorService.ts"
click node_ev "https://github.com/ismailimamoglu/motocortex/blob/main/src/core/ev/EvDiagnosticSuite.ts"
click node_inspection "https://github.com/ismailimamoglu/motocortex/blob/main/src/core/inspection/InspectionReportEngine.ts"
click node_telemetry "https://github.com/ismailimamoglu/motocortex/blob/main/src/services/TelemetrySyncManager.ts"
click node_feature_catalog "https://github.com/ismailimamoglu/motocortex/blob/main/src/core/features/FeatureCatalog.ts"
click node_activation "https://github.com/ismailimamoglu/motocortex/blob/main/src/core/features/FeatureActivationEngine.ts"
click node_safety "https://github.com/ismailimamoglu/motocortex/blob/main/src/core/safety/SafetyGate.ts"
click node_sgw "https://github.com/ismailimamoglu/motocortex/blob/main/src/core/security/SgwBypassEngine.ts"
click node_bluetooth_store "https://github.com/ismailimamoglu/motocortex/blob/main/src/store/useBluetoothStore.ts"
click node_sqlite "https://github.com/ismailimamoglu/motocortex/blob/main/src/core/database/SQLiteStorage.ts"
click node_supabase "https://github.com/ismailimamoglu/motocortex/blob/main/src/api/supabaseClient.ts"

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_app,node_connection_ui,node_live_ui toneBlue
class node_protocol_engine,node_transport,node_identity,node_ecu_discovery,node_multi_ecu,node_dtc toneAmber
class node_feature_catalog,node_activation,node_safety,node_sgw toneMint
class node_ai,node_ev,node_inspection,node_telemetry toneRose
class node_bluetooth_store,node_sqlite,node_supabase,node_driver,node_adapter toneIndigo
```

## Components

### Mobile experience

- [Mobile app](https://github.com/ismailimamoglu/motocortex/blob/main/App.tsx): `App.tsx`
- [Connection flow](https://github.com/ismailimamoglu/motocortex/blob/main/src/screens/ConnectionFlowScreen.tsx): `src/screens/ConnectionFlowScreen.tsx`
- [Live engine](https://github.com/ismailimamoglu/motocortex/blob/main/src/components/LiveEngineHero.tsx): `src/components/LiveEngineHero.tsx`

### Connection and diagnostics

- [OBD protocol engine](https://github.com/ismailimamoglu/motocortex/blob/main/src/api/OBD2ProtocolEngine.ts): `src/api/OBD2ProtocolEngine.ts`
- [Native OBD transports](https://github.com/ismailimamoglu/motocortex/blob/main/modules/motocortex-obd/src/index.ts): `modules/motocortex-obd/src/index.ts`
- [Vehicle identity](https://github.com/ismailimamoglu/motocortex/blob/main/src/core/identity/VehicleIdentityEngine.ts): `src/core/identity/VehicleIdentityEngine.ts`
- [ECU discovery](https://github.com/ismailimamoglu/motocortex/blob/main/src/core/discovery/EcuDiscoveryEngine.ts): `src/core/discovery/EcuDiscoveryEngine.ts`
- [Multi-ECU diagnostics](https://github.com/ismailimamoglu/motocortex/blob/main/src/services/multiEcuService.ts): `src/services/multiEcuService.ts`
- [DTC parsing and lookup](https://github.com/ismailimamoglu/motocortex/blob/main/src/core/parser/DtcStreamParser.ts): `src/core/parser/DtcStreamParser.ts`

### ECU coding and safety

- [OEM feature catalog](https://github.com/ismailimamoglu/motocortex/blob/main/src/core/features/FeatureCatalog.ts): `src/core/features/FeatureCatalog.ts`
- [Feature activation](https://github.com/ismailimamoglu/motocortex/blob/main/src/core/features/FeatureActivationEngine.ts): `src/core/features/FeatureActivationEngine.ts`
- [Safety policy](https://github.com/ismailimamoglu/motocortex/blob/main/src/core/safety/SafetyGate.ts): `src/core/safety/SafetyGate.ts`
- [Gateway access](https://github.com/ismailimamoglu/motocortex/blob/main/src/core/security/SgwBypassEngine.ts): `src/core/security/SgwBypassEngine.ts`

### Vehicle insights

- [AI Doctor](https://github.com/ismailimamoglu/motocortex/blob/main/src/services/aiDoctorService.ts): `src/services/aiDoctorService.ts`
- [EV diagnostics](https://github.com/ismailimamoglu/motocortex/blob/main/src/core/ev/EvDiagnosticSuite.ts): `src/core/ev/EvDiagnosticSuite.ts`
- [Inspection reports](https://github.com/ismailimamoglu/motocortex/blob/main/src/core/inspection/InspectionReportEngine.ts): `src/core/inspection/InspectionReportEngine.ts`
- [Telemetry services](https://github.com/ismailimamoglu/motocortex/blob/main/src/services/TelemetrySyncManager.ts): `src/services/TelemetrySyncManager.ts`

### Persistence and services

- [Connection state](https://github.com/ismailimamoglu/motocortex/blob/main/src/store/useBluetoothStore.ts): `src/store/useBluetoothStore.ts`
- [Telemetry queue](https://github.com/ismailimamoglu/motocortex/blob/main/src/core/database/SQLiteStorage.ts): `src/core/database/SQLiteStorage.ts`
- [Supabase services](https://github.com/ismailimamoglu/motocortex/blob/main/src/api/supabaseClient.ts): `src/api/supabaseClient.ts`

### Other components

- **Driver**
- **OBD adapter**

## Connections

- Driver → Mobile app: uses
- Mobile app → Connection flow: presents
- Mobile app → Live engine: presents
- Live engine → Connection state: reads state
- Live engine → OBD adapter: connects through
- OBD adapter → Native OBD transports: sends vehicle data
- OBD protocol engine → Native OBD transports: executes commands
- OBD protocol engine → Connection state: updates state
- OBD protocol engine → DTC parsing and lookup: decodes codes
- OBD protocol engine → Vehicle identity: provides responses
- Vehicle identity → ECU discovery: informs vehicle scan
- ECU discovery → Multi-ECU diagnostics: supports module scan
- Multi-ECU diagnostics → AI Doctor: provides diagnostic context
- DTC parsing and lookup → AI Doctor: provides fault codes
- OEM feature catalog → Feature activation: supplies definitions
- Feature activation → Safety policy: checks safety
- Feature activation → Gateway access: uses gateway access
- Telemetry services → Telemetry queue: queues telemetry
- Telemetry services → Supabase services: syncs data
- Multi-ECU diagnostics → Inspection reports: supplies diagnostics
- Multi-ECU diagnostics → EV diagnostics: supports EV scan
