# vpraveen6070-cpu/marisentinel_ architecture

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

- Interactive diagram: https://gitdiagram.com/vpraveen6070-cpu/marisentinel_
- Repository: https://github.com/vpraveen6070-cpu/marisentinel_

## Overview

MARISENTINEL is a browser-based maritime surveillance and coastal incident-response platform, backed by a Flask Random Forest prediction API. Operators inspect vessel threats in command, create and dispatch incidents to field officers, then record mission progress and closure. The map, shared state, and hybrid risk services are supported by sampled source; role portals and broader administration/mission features are documented in the README, but their detailed wiring is not shown. Data files are mock/seed operational datasets, not evidence of a persistent database.

Main entry points: [`js/store.js`](https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/js/store.js) (Operational State), [`command.html`](https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/command.html) (Command Console), [`field.html`](https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/field.html) (Field Console), [`js/services/fusionService.js`](https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/js/services/fusionService.js) (Hybrid Fusion)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_portals["Operator Portals"]
  node_admin["Admin Console<br/>[admin.html]"]
  node_command["Command Console<br/>[command.html]"]
  node_field["Field Console<br/>[field.html]"]
  node_dashboard["Dashboard UI<br/>[dashboard.js]"]
end

subgraph group_operations["Maritime Operations"]
  node_map["Tactical Map<br/>[map.js]"]
  node_alerts["Alert Triage<br/>[store.js]"]
  node_incident["Incident Dispatch<br/>[store.js]"]
  node_mission["Field Mission<br/>[store.js]"]
end

subgraph group_intelligence["Threat Intelligence"]
  node_fusion["Hybrid Fusion<br/>[fusionService.js]"]
  node_risk["Risk Insights<br/>[riskEngine.js]"]
  node_rules["Explainability Rules<br/>[ruleEngine.js]"]
  node_threat["Threat Fallback<br/>[threatEngine.js]"]
end

subgraph group_state["State and Data"]
  node_store["Operational State<br/>[store.js]"]
  node_datasets["Seed Datasets"]
  node_vesseldata["Vessel Data Loader<br/>[data.js]"]
  node_audit["Audit and Notifications<br/>[store.js]"]
end

subgraph group_backend["Prediction Backend"]
  node_api["Flask API<br/>[app.py]"]
  node_ml["Random Forest Inference<br/>[mlService.py]"]
  node_backendfusion["Backend Fusion<br/>[fusionService.py]"]
  node_model[("Trained Model<br/>[risk_model.pkl]")]
end

node_operator(("Operator"))
node_ais(("AIS and Radar Feeds"))
node_weather(("Marine Weather API"))
node_maptiles(("Map Tile Service"))

node_operator -->|"manages"| node_admin
node_operator -->|"monitors"| node_command
node_operator -->|"executes"| node_field
node_admin -->|"updates policy"| node_store
node_command -->|"views"| node_dashboard
node_field -->|"views"| node_dashboard
node_dashboard -->|"reads state"| node_store
node_store -->|"loads datasets"| node_vesseldata
node_vesseldata -->|"reads"| node_datasets
node_command -->|"renders operations"| node_map
node_field -->|"renders mission"| node_map
node_map -->|"reads state"| node_store
node_map -.->|"requests tiles"| node_maptiles
node_ais -.->|"seed telemetry"| node_datasets
node_weather -.->|"seed conditions"| node_datasets
node_command -->|"requests threat analysis"| node_fusion
node_fusion -->|"posts prediction"| node_api
node_api -->|"dispatches fusion"| node_backendfusion
node_api -->|"requests prediction"| node_ml
node_ml -->|"loads model"| node_model
node_backendfusion -->|"predicts vessels"| node_ml
node_backendfusion -->|"evaluates explanations"| node_rules
node_fusion -->|"evaluates explanations"| node_rules
node_risk -->|"requests rule insights"| node_rules
node_command -->|"reviews alerts"| node_alerts
node_alerts -->|"confirms and dispatches"| node_incident
node_incident -->|"records incident"| node_store
node_field -->|"updates mission"| node_mission
node_mission -->|"records progress"| node_store
node_store -->|"logs actions"| node_audit
node_fusion -.->|"fallback classification"| node_threat

click node_admin "https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/admin.html"
click node_command "https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/command.html"
click node_field "https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/field.html"
click node_dashboard "https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/js/dashboard.js"
click node_map "https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/js/map.js"
click node_store "https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/js/store.js"
click node_datasets "https://github.com/vpraveen6070-cpu/marisentinel_/tree/main/data"
click node_vesseldata "https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/js/data.js"
click node_alerts "https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/js/store.js"
click node_incident "https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/js/store.js"
click node_mission "https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/js/store.js"
click node_audit "https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/js/store.js"
click node_fusion "https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/js/services/fusionService.js"
click node_risk "https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/js/services/riskEngine.js"
click node_rules "https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/js/services/ruleEngine.js"
click node_threat "https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/js/services/threatEngine.js"
click node_api "https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/backend/app.py"
click node_ml "https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/backend/services/mlService.py"
click node_backendfusion "https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/backend/services/fusionService.py"
click node_model "https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/backend/model/risk_model.pkl"

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_admin,node_command,node_field,node_dashboard toneBlue
class node_map,node_alerts,node_incident,node_mission toneAmber
class node_fusion,node_risk,node_rules,node_threat,node_weather toneMint
class node_store,node_datasets,node_vesseldata,node_audit toneRose
class node_api,node_ml,node_backendfusion,node_model,node_operator,node_ais,node_maptiles toneIndigo
```

## Components

### Operator Portals

- [Admin Console](https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/admin.html): `admin.html`
- [Command Console](https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/command.html): `command.html`
- [Field Console](https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/field.html): `field.html`
- [Dashboard UI](https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/js/dashboard.js): `js/dashboard.js`

### Maritime Operations

- [Tactical Map](https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/js/map.js): `js/map.js`
- [Alert Triage](https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/js/store.js): `js/store.js`
- [Incident Dispatch](https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/js/store.js): `js/store.js`
- [Field Mission](https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/js/store.js): `js/store.js`

### Threat Intelligence

- [Hybrid Fusion](https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/js/services/fusionService.js): `js/services/fusionService.js`
- [Risk Insights](https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/js/services/riskEngine.js): `js/services/riskEngine.js`
- [Explainability Rules](https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/js/services/ruleEngine.js): `js/services/ruleEngine.js`
- [Threat Fallback](https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/js/services/threatEngine.js): `js/services/threatEngine.js`

### State and Data

- [Operational State](https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/js/store.js): `js/store.js`
- [Seed Datasets](https://github.com/vpraveen6070-cpu/marisentinel_/tree/main/data): `data`
- [Vessel Data Loader](https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/js/data.js): `js/data.js`
- [Audit and Notifications](https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/js/store.js): `js/store.js`

### Prediction Backend

- [Flask API](https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/backend/app.py): `backend/app.py`
- [Random Forest Inference](https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/backend/services/mlService.py): `backend/services/mlService.py`
- [Backend Fusion](https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/backend/services/fusionService.py): `backend/services/fusionService.py`
- [Trained Model](https://github.com/vpraveen6070-cpu/marisentinel_/blob/main/backend/model/risk_model.pkl): `backend/model/risk_model.pkl`

### Other components

- **Operator**
- **AIS and Radar Feeds**
- **Marine Weather API**
- **Map Tile Service**

## Connections

- Operator → Admin Console: manages
- Operator → Command Console: monitors
- Operator → Field Console: executes
- Admin Console → Operational State: updates policy
- Command Console → Dashboard UI: views
- Field Console → Dashboard UI: views
- Dashboard UI → Operational State: reads state
- Operational State → Vessel Data Loader: loads datasets
- Vessel Data Loader → Seed Datasets: reads
- Command Console → Tactical Map: renders operations
- Field Console → Tactical Map: renders mission
- Tactical Map → Operational State: reads state
- Tactical Map → Map Tile Service: requests tiles
- AIS and Radar Feeds → Seed Datasets: seed telemetry
- Marine Weather API → Seed Datasets: seed conditions
- Command Console → Hybrid Fusion: requests threat analysis
- Hybrid Fusion → Flask API: posts prediction
- Flask API → Backend Fusion: dispatches fusion
- Flask API → Random Forest Inference: requests prediction
- Random Forest Inference → Trained Model: loads model
- Backend Fusion → Random Forest Inference: predicts vessels
- Backend Fusion → Explainability Rules: evaluates explanations
- Hybrid Fusion → Explainability Rules: evaluates explanations
- Risk Insights → Explainability Rules: requests rule insights
- Command Console → Alert Triage: reviews alerts
- Alert Triage → Incident Dispatch: confirms and dispatches
- Incident Dispatch → Operational State: records incident
- Field Console → Field Mission: updates mission
- Field Mission → Operational State: records progress
- Operational State → Audit and Notifications: logs actions
- Hybrid Fusion → Threat Fallback: fallback classification
