# masamune21-dev/kusumavisionnms architecture

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

- Interactive diagram: https://gitdiagram.com/masamune21-dev/kusumavisionnms
- Repository: https://github.com/masamune21-dev/kusumavisionnms

## Overview

KusumaVision NMS is an FTTH network-management platform for ZTE, C-Data, and HiOSO OLTs, with a Laravel/Vue web interface and an Android client. Operators monitor OLTs and ONUs, provision and manage devices, map customers and ODPs, and respond to alarms; REST API v1 supports integrations. The graph also preserves documented reporting, administration, GenieACS, Telegram, and FCM capabilities. Several subsystems are represented at directory level because their source was not sampled; links based on documented product behavior cite the README.

Main entry points: [`app/Http/Controllers/SmartOltController.php`](https://github.com/masamune21-dev/kusumavisionnms/blob/main/app/Http/Controllers/SmartOltController.php) (OLT operations), [`resources/js/Pages/Dashboard.vue`](https://github.com/masamune21-dev/kusumavisionnms/blob/main/resources/js/Pages/Dashboard.vue) (Web interface), [`app/Http/Controllers/Api/V1/OnuActionController.php`](https://github.com/masamune21-dev/kusumavisionnms/blob/main/app/Http/Controllers/Api/V1/OnuActionController.php) (ONU actions API), [`app/Services/AlarmEvaluator.php`](https://github.com/masamune21-dev/kusumavisionnms/blob/main/app/Services/AlarmEvaluator.php) (Alarm evaluator)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Access and API"]
  node_web["Web interface<br/>[Dashboard.vue]"]
  node_mobile["Android app<br/>[MainActivity.kt]"]
  node_api["REST API v1<br/>[api.php]"]
end

subgraph group_olt["OLT Operations"]
  node_oltcontroller["OLT operations"]
  node_actionapi["ONU actions API"]
  node_inventory["ONU inventory"]
  node_resolver["Vendor driver resolver"]
  node_zte["ZTE management"]
  node_cdata["C-Data management"]
  node_hioso["HiOSO management"]
  node_snmp["SNMP client<br/>[OltSnmpClient.php]"]
  node_poller["Go SNMP poller<br/>[main.go]"]
end

subgraph group_mapping["Mapping and ACS"]
  node_map["ONU and ODP map"]
  node_genieacs["GenieACS bridge"]
end

subgraph group_alerts["Alarms and Messaging"]
  node_alarm["Alarm evaluator<br/>[AlarmEvaluator.php]"]
  node_alarmdata[("Alarm records<br/>[AlarmEvent.php]")]
  node_telegram["Telegram notifications"]
  node_fcm["Android push"]
end

subgraph group_platform["Platform Services"]
  node_reports["Reports and exports<br/>[ReportService.php]"]
  node_admin["Administration and audit"]
  node_database[("Application data<br/>[SnmpOlt.php]")]
end

node_operator(("Network operator"))
node_oltdevice{{"Managed OLTs"}}
node_acs{{"GenieACS server"}}
node_telegramservice{{"Telegram platform"}}

node_operator -->|"uses"| node_web
node_operator -->|"uses"| node_mobile
node_web -->|"operates through"| node_oltcontroller
node_mobile -->|"requests"| node_api
node_api -->|"routes actions"| node_actionapi
node_oltcontroller -->|"collects inventory"| node_inventory
node_oltcontroller -->|"manages ONUs"| node_zte
node_actionapi -->|"dispatches ZTE actions"| node_zte
node_actionapi -->|"dispatches C-Data actions"| node_cdata
node_actionapi -->|"dispatches HiOSO actions"| node_hioso
node_resolver -->|"resolves driver"| node_cdata
node_resolver -->|"resolves driver"| node_hioso
node_resolver -->|"uses SNMP helpers"| node_snmp
node_oltcontroller -.->|"selects vendor driver"| node_resolver
node_inventory -.->|"reads device state"| node_snmp
node_snmp -->|"queries"| node_oltdevice
node_zte -->|"provisions and manages"| node_oltdevice
node_cdata -->|"manages"| node_oltdevice
node_hioso -->|"manages"| node_oltdevice
node_poller -->|"polls"| node_oltdevice
node_web -->|"views customer map"| node_map
node_web -->|"uses ACS features"| node_genieacs
node_genieacs -->|"calls NBI"| node_acs
node_oltcontroller -.->|"supports alarm operations"| node_alarm
node_alarm -->|"records events"| node_alarmdata
node_alarm -->|"notifies"| node_telegram
node_telegram -->|"sends messages"| node_telegramservice
node_alarm -->|"sends push alerts"| node_fcm
node_fcm -->|"delivers notifications"| node_mobile
node_web -->|"exports reports"| node_reports
node_operator -->|"administers"| node_admin
node_admin -.->|"manages settings"| node_database
node_oltcontroller -.->|"reads and updates OLTs"| node_database

click node_web "https://github.com/masamune21-dev/kusumavisionnms/blob/main/resources/js/Pages/Dashboard.vue"
click node_mobile "https://github.com/masamune21-dev/kusumavisionnms/blob/main/mobile/android/app/src/main/kotlin/net/kusumavision/kusumavision_nms/MainActivity.kt"
click node_api "https://github.com/masamune21-dev/kusumavisionnms/blob/main/routes/api.php"
click node_oltcontroller "https://github.com/masamune21-dev/kusumavisionnms/blob/main/app/Http/Controllers/SmartOltController.php"
click node_actionapi "https://github.com/masamune21-dev/kusumavisionnms/blob/main/app/Http/Controllers/Api/V1/OnuActionController.php"
click node_inventory "https://github.com/masamune21-dev/kusumavisionnms/blob/main/app/Services/OnuInventoryService.php"
click node_resolver "https://github.com/masamune21-dev/kusumavisionnms/blob/main/app/Services/SmartOltSnmpServiceResolver.php"
click node_zte "https://github.com/masamune21-dev/kusumavisionnms/blob/main/app/Services/ZteRemoteOnuService.php"
click node_cdata "https://github.com/masamune21-dev/kusumavisionnms/tree/main/app/Services/CData"
click node_hioso "https://github.com/masamune21-dev/kusumavisionnms/blob/main/app/Services/Hioso/HiosoEponSnmpService.php"
click node_snmp "https://github.com/masamune21-dev/kusumavisionnms/blob/main/app/Services/Snmp/OltSnmpClient.php"
click node_poller "https://github.com/masamune21-dev/kusumavisionnms/blob/main/cmd/kv-snmp-poller/main.go"
click node_map "https://github.com/masamune21-dev/kusumavisionnms/blob/main/app/Services/Map/OnuMapPayloadService.php"
click node_genieacs "https://github.com/masamune21-dev/kusumavisionnms/tree/main/app/Services/Genieacs"
click node_alarm "https://github.com/masamune21-dev/kusumavisionnms/blob/main/app/Services/AlarmEvaluator.php"
click node_alarmdata "https://github.com/masamune21-dev/kusumavisionnms/blob/main/app/Models/AlarmEvent.php"
click node_telegram "https://github.com/masamune21-dev/kusumavisionnms/blob/main/app/Services/Telegram/TelegramNotifier.php"
click node_fcm "https://github.com/masamune21-dev/kusumavisionnms/blob/main/app/Services/Fcm/FcmAlarmNotifier.php"
click node_reports "https://github.com/masamune21-dev/kusumavisionnms/blob/main/app/Services/Report/ReportService.php"
click node_admin "https://github.com/masamune21-dev/kusumavisionnms/blob/main/app/Http/Controllers/SettingsController.php"
click node_database "https://github.com/masamune21-dev/kusumavisionnms/blob/main/app/Models/SnmpOlt.php"

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_web,node_mobile,node_api toneBlue
class node_oltcontroller,node_actionapi,node_inventory,node_resolver,node_zte,node_cdata,node_hioso,node_snmp,node_poller toneAmber
class node_map,node_genieacs,node_acs toneMint
class node_alarm,node_alarmdata,node_telegram,node_fcm toneRose
class node_reports,node_admin,node_database,node_operator,node_oltdevice,node_telegramservice toneIndigo
```

## Components

### Access and API

- [Web interface](https://github.com/masamune21-dev/kusumavisionnms/blob/main/resources/js/Pages/Dashboard.vue): `resources/js/Pages/Dashboard.vue`
- [Android app](https://github.com/masamune21-dev/kusumavisionnms/blob/main/mobile/android/app/src/main/kotlin/net/kusumavision/kusumavision_nms/MainActivity.kt): `mobile/android/app/src/main/kotlin/net/kusumavision/kusumavision_nms/MainActivity.kt`
- [REST API v1](https://github.com/masamune21-dev/kusumavisionnms/blob/main/routes/api.php): `routes/api.php`

### OLT Operations

- [OLT operations](https://github.com/masamune21-dev/kusumavisionnms/blob/main/app/Http/Controllers/SmartOltController.php): `app/Http/Controllers/SmartOltController.php`
- [ONU actions API](https://github.com/masamune21-dev/kusumavisionnms/blob/main/app/Http/Controllers/Api/V1/OnuActionController.php): `app/Http/Controllers/Api/V1/OnuActionController.php`
- [ONU inventory](https://github.com/masamune21-dev/kusumavisionnms/blob/main/app/Services/OnuInventoryService.php): `app/Services/OnuInventoryService.php`
- [Vendor driver resolver](https://github.com/masamune21-dev/kusumavisionnms/blob/main/app/Services/SmartOltSnmpServiceResolver.php): `app/Services/SmartOltSnmpServiceResolver.php`
- [ZTE management](https://github.com/masamune21-dev/kusumavisionnms/blob/main/app/Services/ZteRemoteOnuService.php): `app/Services/ZteRemoteOnuService.php`
- [C-Data management](https://github.com/masamune21-dev/kusumavisionnms/tree/main/app/Services/CData): `app/Services/CData`
- [HiOSO management](https://github.com/masamune21-dev/kusumavisionnms/blob/main/app/Services/Hioso/HiosoEponSnmpService.php): `app/Services/Hioso/HiosoEponSnmpService.php`
- [SNMP client](https://github.com/masamune21-dev/kusumavisionnms/blob/main/app/Services/Snmp/OltSnmpClient.php): `app/Services/Snmp/OltSnmpClient.php`
- [Go SNMP poller](https://github.com/masamune21-dev/kusumavisionnms/blob/main/cmd/kv-snmp-poller/main.go): `cmd/kv-snmp-poller/main.go`

### Mapping and ACS

- [ONU and ODP map](https://github.com/masamune21-dev/kusumavisionnms/blob/main/app/Services/Map/OnuMapPayloadService.php): `app/Services/Map/OnuMapPayloadService.php`
- [GenieACS bridge](https://github.com/masamune21-dev/kusumavisionnms/tree/main/app/Services/Genieacs): `app/Services/Genieacs`

### Alarms and Messaging

- [Alarm evaluator](https://github.com/masamune21-dev/kusumavisionnms/blob/main/app/Services/AlarmEvaluator.php): `app/Services/AlarmEvaluator.php`
- [Alarm records](https://github.com/masamune21-dev/kusumavisionnms/blob/main/app/Models/AlarmEvent.php): `app/Models/AlarmEvent.php`
- [Telegram notifications](https://github.com/masamune21-dev/kusumavisionnms/blob/main/app/Services/Telegram/TelegramNotifier.php): `app/Services/Telegram/TelegramNotifier.php`
- [Android push](https://github.com/masamune21-dev/kusumavisionnms/blob/main/app/Services/Fcm/FcmAlarmNotifier.php): `app/Services/Fcm/FcmAlarmNotifier.php`

### Platform Services

- [Reports and exports](https://github.com/masamune21-dev/kusumavisionnms/blob/main/app/Services/Report/ReportService.php): `app/Services/Report/ReportService.php`
- [Administration and audit](https://github.com/masamune21-dev/kusumavisionnms/blob/main/app/Http/Controllers/SettingsController.php): `app/Http/Controllers/SettingsController.php`
- [Application data](https://github.com/masamune21-dev/kusumavisionnms/blob/main/app/Models/SnmpOlt.php): `app/Models/SnmpOlt.php`

### Other components

- **Network operator**
- **Managed OLTs**
- **GenieACS server**
- **Telegram platform**

## Connections

- Network operator → Web interface: uses
- Network operator → Android app: uses
- Web interface → OLT operations: operates through
- Android app → REST API v1: requests
- REST API v1 → ONU actions API: routes actions (evidence: `app/Http/Controllers/Api/V1/OnuActionController.php`)
- OLT operations → ONU inventory: collects inventory (evidence: `app/Http/Controllers/SmartOltController.php`)
- OLT operations → ZTE management: manages ONUs (evidence: `app/Http/Controllers/SmartOltController.php`)
- ONU actions API → ZTE management: dispatches ZTE actions (evidence: `app/Http/Controllers/Api/V1/OnuActionController.php`)
- ONU actions API → C-Data management: dispatches C-Data actions (evidence: `app/Http/Controllers/Api/V1/OnuActionController.php`)
- ONU actions API → HiOSO management: dispatches HiOSO actions (evidence: `app/Http/Controllers/Api/V1/OnuActionController.php`)
- Vendor driver resolver → C-Data management: resolves driver (evidence: `app/Services/SmartOltSnmpServiceResolver.php`)
- Vendor driver resolver → HiOSO management: resolves driver (evidence: `app/Services/SmartOltSnmpServiceResolver.php`)
- Vendor driver resolver → SNMP client: uses SNMP helpers (evidence: `app/Services/SmartOltSnmpServiceResolver.php`)
- OLT operations → Vendor driver resolver: selects vendor driver (evidence: `app/Http/Controllers/SmartOltController.php`)
- ONU inventory → SNMP client: reads device state
- SNMP client → Managed OLTs: queries
- ZTE management → Managed OLTs: provisions and manages
- C-Data management → Managed OLTs: manages
- HiOSO management → Managed OLTs: manages
- Go SNMP poller → Managed OLTs: polls
- Web interface → ONU and ODP map: views customer map
- Web interface → GenieACS bridge: uses ACS features
- GenieACS bridge → GenieACS server: calls NBI
- OLT operations → Alarm evaluator: supports alarm operations (evidence: `app/Http/Controllers/SmartOltController.php`)
- Alarm evaluator → Alarm records: records events (evidence: `app/Models/AlarmEvent.php`)
- Alarm evaluator → Telegram notifications: notifies
- Telegram notifications → Telegram platform: sends messages (evidence: `app/Services/Telegram/TelegramNotifier.php`)
- Alarm evaluator → Android push: sends push alerts (evidence: `app/Services/Fcm/FcmAlarmNotifier.php`)
- Android push → Android app: delivers notifications
- Web interface → Reports and exports: exports reports
- Network operator → Administration and audit: administers
- Administration and audit → Application data: manages settings
- OLT operations → Application data: reads and updates OLTs (evidence: `app/Http/Controllers/SmartOltController.php`)
