# manikanta2834/web-site-monitoring-system architecture

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

- Interactive diagram: https://gitdiagram.com/manikanta2834/web-site-monitoring-system
- Repository: https://github.com/manikanta2834/web-site-monitoring-system

## Overview

WSMS is a website-monitoring and observability platform. Operators use the Vue dashboard to authenticate, manage monitored sites, and inspect uptime and latency history; the backend probes sites, records telemetry, and serves metrics back through its API. Separate capabilities include SSL checks, configurable portal customization, and an AI assistant with read-only telemetry queries and runbook retrieval. The README documents analytics, EWMA smoothing, and alerting; sampled source confirms probing, SSL inspection, and historical metrics, but does not establish every dashboard or alerting connection.

Main entry points: [`frontend/src/api/client.js`](https://github.com/manikanta2834/web-site-monitoring-system/blob/main/frontend/src/api/client.js) (API client), [`backend/src/main/java/com/wsms/service/MonitoringService.java`](https://github.com/manikanta2834/web-site-monitoring-system/blob/main/backend/src/main/java/com/wsms/service/MonitoringService.java) (Probe engine), [`frontend/src/App.vue`](https://github.com/manikanta2834/web-site-monitoring-system/blob/main/frontend/src/App.vue) (Vue application), [`backend/src/main/java/com/wsms/service/AuthenticationService.java`](https://github.com/manikanta2834/web-site-monitoring-system/blob/main/backend/src/main/java/com/wsms/service/AuthenticationService.java) (Authentication service)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["Operator interface"]
  node_vue["Vue application<br/>[App.vue]"]
  node_dashboard["Dashboard<br/>[Dashboard.vue]"]
  node_api["API client<br/>[client.js]"]
  node_authui["Login view<br/>[Login.vue]"]
end

subgraph group_access["Access control"]
  node_authcontroller["Authentication API"]
  node_authservice["Authentication service"]
  node_captcha["Captcha providers"]
  node_identitydb[("Identity storage")]
end

subgraph group_monitoring["Monitoring and analytics"]
  node_websiteapi["Website API"]
  node_websiteservice["Website service"]
  node_scheduler["Monitoring scheduler"]
  node_monitor["Probe engine"]
  node_telemetrydb[("Telemetry database")]
end

subgraph group_configuration["Platform configuration"]
  node_portalapi["Customization API"]
  node_portalservice["Customization service"]
  node_configurationdb[("Configuration storage")]
end

subgraph group_assistant["AI assistance"]
  node_chatui["Chat assistant<br/>[ChatAssistant.vue]"]
  node_chatapi["Chat API"]
  node_aiservice["AI service<br/>[AiService.java]"]
  node_rag["RAG service<br/>[RagService.java]"]
end

node_operator(("Operator"))
node_target(("Monitored websites"))
node_ollama["Ollama model"]
node_runbooks[("Runbook store")]

node_operator -->|"uses"| node_vue
node_vue -->|"routes to"| node_dashboard
node_vue -->|"routes to"| node_authui
node_dashboard -->|"requests data"| node_api
node_authui -->|"sends credentials"| node_api
node_api -->|"HTTP requests"| node_authcontroller
node_api -->|"HTTP requests"| node_websiteapi
node_authcontroller -->|"delegates"| node_authservice
node_authservice -->|"verifies token"| node_captcha
node_authservice -->|"reads and writes"| node_identitydb
node_websiteapi -->|"delegates"| node_websiteservice
node_websiteapi -->|"triggers probe"| node_monitor
node_websiteservice -->|"reads and writes"| node_telemetrydb
node_scheduler -->|"schedules probes"| node_monitor
node_monitor -->|"HTTP and SSL checks"| node_target
node_monitor -->|"stores telemetry"| node_telemetrydb
node_portalapi -->|"delegates"| node_portalservice
node_portalservice -->|"reads and writes"| node_configurationdb
node_operator -->|"asks questions"| node_chatui
node_chatui -->|"sends chat request"| node_api
node_api -->|"HTTP requests"| node_chatapi
node_chatapi -->|"delegates"| node_aiservice
node_aiservice -->|"retrieves context"| node_rag
node_rag -->|"queries telemetry"| node_telemetrydb
node_rag -->|"searches runbooks"| node_runbooks
node_aiservice -->|"prompts model"| node_ollama

click node_vue "https://github.com/manikanta2834/web-site-monitoring-system/blob/main/frontend/src/App.vue"
click node_dashboard "https://github.com/manikanta2834/web-site-monitoring-system/blob/main/frontend/src/views/Dashboard.vue"
click node_api "https://github.com/manikanta2834/web-site-monitoring-system/blob/main/frontend/src/api/client.js"
click node_authui "https://github.com/manikanta2834/web-site-monitoring-system/blob/main/frontend/src/views/Login.vue"
click node_authcontroller "https://github.com/manikanta2834/web-site-monitoring-system/blob/main/backend/src/main/java/com/wsms/controller/AuthenticationController.java"
click node_authservice "https://github.com/manikanta2834/web-site-monitoring-system/blob/main/backend/src/main/java/com/wsms/service/AuthenticationService.java"
click node_websiteapi "https://github.com/manikanta2834/web-site-monitoring-system/blob/main/backend/src/main/java/com/wsms/controller/WebsiteController.java"
click node_websiteservice "https://github.com/manikanta2834/web-site-monitoring-system/blob/main/backend/src/main/java/com/wsms/service/WebsiteService.java"
click node_scheduler "https://github.com/manikanta2834/web-site-monitoring-system/blob/main/backend/src/main/java/com/wsms/scheduler/MonitoringScheduler.java"
click node_monitor "https://github.com/manikanta2834/web-site-monitoring-system/blob/main/backend/src/main/java/com/wsms/service/MonitoringService.java"
click node_portalapi "https://github.com/manikanta2834/web-site-monitoring-system/blob/main/backend/src/main/java/com/wsms/controller/PortalCustomizationController.java"
click node_portalservice "https://github.com/manikanta2834/web-site-monitoring-system/blob/main/backend/src/main/java/com/wsms/service/PortalCustomizationService.java"
click node_chatui "https://github.com/manikanta2834/web-site-monitoring-system/blob/main/frontend/src/components/ChatAssistant.vue"
click node_chatapi "https://github.com/manikanta2834/web-site-monitoring-system/blob/main/backend/src/main/java/com/wsms/controller/ChatController.java"
click node_aiservice "https://github.com/manikanta2834/web-site-monitoring-system/blob/main/backend/src/main/java/com/wsms/service/AiService.java"
click node_rag "https://github.com/manikanta2834/web-site-monitoring-system/blob/main/backend/src/main/java/com/wsms/service/RagService.java"

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_vue,node_dashboard,node_api,node_authui toneBlue
class node_authcontroller,node_authservice,node_captcha,node_identitydb,node_runbooks toneAmber
class node_websiteapi,node_websiteservice,node_scheduler,node_monitor,node_telemetrydb toneMint
class node_portalapi,node_portalservice,node_configurationdb toneRose
class node_chatui,node_chatapi,node_aiservice,node_rag,node_operator,node_target,node_ollama toneIndigo
```

## Components

### Operator interface

- [Vue application](https://github.com/manikanta2834/web-site-monitoring-system/blob/main/frontend/src/App.vue): `frontend/src/App.vue`
- [Dashboard](https://github.com/manikanta2834/web-site-monitoring-system/blob/main/frontend/src/views/Dashboard.vue): `frontend/src/views/Dashboard.vue`
- [API client](https://github.com/manikanta2834/web-site-monitoring-system/blob/main/frontend/src/api/client.js): `frontend/src/api/client.js`
- [Login view](https://github.com/manikanta2834/web-site-monitoring-system/blob/main/frontend/src/views/Login.vue): `frontend/src/views/Login.vue`

### Access control

- [Authentication API](https://github.com/manikanta2834/web-site-monitoring-system/blob/main/backend/src/main/java/com/wsms/controller/AuthenticationController.java): `backend/src/main/java/com/wsms/controller/AuthenticationController.java`
- [Authentication service](https://github.com/manikanta2834/web-site-monitoring-system/blob/main/backend/src/main/java/com/wsms/service/AuthenticationService.java): `backend/src/main/java/com/wsms/service/AuthenticationService.java`
- **Captcha providers**
- **Identity storage**

### Monitoring and analytics

- [Website API](https://github.com/manikanta2834/web-site-monitoring-system/blob/main/backend/src/main/java/com/wsms/controller/WebsiteController.java): `backend/src/main/java/com/wsms/controller/WebsiteController.java`
- [Website service](https://github.com/manikanta2834/web-site-monitoring-system/blob/main/backend/src/main/java/com/wsms/service/WebsiteService.java): `backend/src/main/java/com/wsms/service/WebsiteService.java`
- [Monitoring scheduler](https://github.com/manikanta2834/web-site-monitoring-system/blob/main/backend/src/main/java/com/wsms/scheduler/MonitoringScheduler.java): `backend/src/main/java/com/wsms/scheduler/MonitoringScheduler.java`
- [Probe engine](https://github.com/manikanta2834/web-site-monitoring-system/blob/main/backend/src/main/java/com/wsms/service/MonitoringService.java): `backend/src/main/java/com/wsms/service/MonitoringService.java`
- **Telemetry database**

### Platform configuration

- [Customization API](https://github.com/manikanta2834/web-site-monitoring-system/blob/main/backend/src/main/java/com/wsms/controller/PortalCustomizationController.java): `backend/src/main/java/com/wsms/controller/PortalCustomizationController.java`
- [Customization service](https://github.com/manikanta2834/web-site-monitoring-system/blob/main/backend/src/main/java/com/wsms/service/PortalCustomizationService.java): `backend/src/main/java/com/wsms/service/PortalCustomizationService.java`
- **Configuration storage**

### AI assistance

- [Chat assistant](https://github.com/manikanta2834/web-site-monitoring-system/blob/main/frontend/src/components/ChatAssistant.vue): `frontend/src/components/ChatAssistant.vue`
- [Chat API](https://github.com/manikanta2834/web-site-monitoring-system/blob/main/backend/src/main/java/com/wsms/controller/ChatController.java): `backend/src/main/java/com/wsms/controller/ChatController.java`
- [AI service](https://github.com/manikanta2834/web-site-monitoring-system/blob/main/backend/src/main/java/com/wsms/service/AiService.java): `backend/src/main/java/com/wsms/service/AiService.java`
- [RAG service](https://github.com/manikanta2834/web-site-monitoring-system/blob/main/backend/src/main/java/com/wsms/service/RagService.java): `backend/src/main/java/com/wsms/service/RagService.java`

### Other components

- **Operator**
- **Monitored websites**
- **Ollama model**
- **Runbook store**

## Connections

- Operator → Vue application: uses
- Vue application → Dashboard: routes to
- Vue application → Login view: routes to
- Dashboard → API client: requests data
- Login view → API client: sends credentials
- API client → Authentication API: HTTP requests
- API client → Website API: HTTP requests
- Authentication API → Authentication service: delegates
- Authentication service → Captcha providers: verifies token
- Authentication service → Identity storage: reads and writes
- Website API → Website service: delegates
- Website API → Probe engine: triggers probe
- Website service → Telemetry database: reads and writes
- Monitoring scheduler → Probe engine: schedules probes
- Probe engine → Monitored websites: HTTP and SSL checks
- Probe engine → Telemetry database: stores telemetry
- Customization API → Customization service: delegates
- Customization service → Configuration storage: reads and writes
- Operator → Chat assistant: asks questions
- Chat assistant → API client: sends chat request
- API client → Chat API: HTTP requests
- Chat API → AI service: delegates
- AI service → RAG service: retrieves context
- RAG service → Telemetry database: queries telemetry
- RAG service → Runbook store: searches runbooks
- AI service → Ollama model: prompts model
