# trungtq-ai-transform/checkcle architecture

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

- Interactive diagram: https://gitdiagram.com/trungtq-ai-transform/checkcle
- Repository: https://github.com/trungtq-ai-transform/checkcle

## Overview

CheckCle is a full-stack monitoring platform. Users manage monitored services and infrastructure in the web console; the platform collects monitoring results, presents health and history, and supports incident response and public status reporting. The frontend also exposes SSL, regional monitoring, maintenance, and administrative settings. The README documents notification channels and analytics as capabilities, but the sampled files do not establish their full runtime wiring. Backend worker detail is likewise limited to startup orchestration and selected services.

Main entry points: [`application/src/App.tsx`](https://github.com/trungtq-ai-transform/checkcle/blob/develop/application/src/App.tsx) (Web app routes), [`server/core_backend-server/core/app.go`](https://github.com/trungtq-ai-transform/checkcle/blob/develop/server/core_backend-server/core/app.go) (PocketBase), [`server/service-operation/main.go`](https://github.com/trungtq-ai-transform/checkcle/blob/develop/server/service-operation/main.go) (Monitoring workers), [`application/src/components/services`](https://github.com/trungtq-ai-transform/checkcle/tree/develop/application/src/components/services) (Service views)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web console"]
  node_app["Web app routes<br/>[App.tsx]"]
  node_auth["Authentication<br/>[authService.ts]"]
  node_dashboard["Dashboard"]
  node_serviceui["Service views"]
  node_serviceactions["Service actions"]
  node_servicedata["Service detail data<br/>[useServiceData.tsx]"]
  node_settings["Administration"]
end

subgraph group_monitoring["Monitoring domains"]
  node_uptime["Uptime history"]
  node_regional["Regional monitoring"]
  node_servers["Server monitoring"]
  node_containers["Container monitoring"]
  node_ssl["SSL monitoring"]
end

subgraph group_response["Status and response"]
  node_incidents["Incident management"]
  node_operational["Operational pages"]
  node_publicstatus["Public status"]
end

subgraph group_operations["Backend operations"]
  node_worker["Monitoring workers<br/>[main.go]"]
  node_retention["Data retention<br/>[service.go]"]
  node_notifications["Alert delivery"]
end

subgraph group_platform["Persistence"]
  node_pbclient["PocketBase client<br/>[pocketbase.ts]"]
  node_pocketbase[("PocketBase<br/>[app.go]")]
end

node_operator(("Operator"))
node_monitored{{"Monitored systems"}}
node_channels{{"Notification channels"}}

node_operator -->|"uses"| node_app
node_app -->|"routes login"| node_auth
node_app -->|"routes dashboard"| node_dashboard
node_app -->|"routes services"| node_serviceui
node_app -->|"routes regional"| node_regional
node_app -->|"routes servers"| node_servers
node_app -->|"routes containers"| node_containers
node_app -->|"routes SSL"| node_ssl
node_app -->|"routes incidents"| node_incidents
node_app -->|"routes pages"| node_operational
node_app -->|"routes public"| node_publicstatus
node_app -->|"routes settings"| node_settings
node_auth -->|"authenticates via"| node_pbclient
node_serviceui -->|"uses actions"| node_serviceactions
node_serviceui -->|"loads detail"| node_servicedata
node_servicedata -->|"fetches history"| node_uptime
node_serviceactions -->|"deletes records"| node_pbclient
node_worker -->|"checks systems"| node_monitored
node_worker -->|"starts scheduler"| node_retention
node_worker -->|"initializes client"| node_pocketbase
node_retention -->|"reads and deletes"| node_pocketbase
node_notifications -->|"sends alerts"| node_channels
node_notifications -->|"loads configuration"| node_pocketbase
node_pbclient -->|"accesses backend"| node_pocketbase

click node_app "https://github.com/trungtq-ai-transform/checkcle/blob/develop/application/src/App.tsx"
click node_auth "https://github.com/trungtq-ai-transform/checkcle/blob/develop/application/src/services/authService.ts"
click node_dashboard "https://github.com/trungtq-ai-transform/checkcle/tree/develop/application/src/components/dashboard"
click node_serviceui "https://github.com/trungtq-ai-transform/checkcle/tree/develop/application/src/components/services"
click node_serviceactions "https://github.com/trungtq-ai-transform/checkcle/blob/develop/application/src/components/services/hooks/useServiceActions.ts"
click node_servicedata "https://github.com/trungtq-ai-transform/checkcle/blob/develop/application/src/components/services/ServiceDetailContainer/hooks/useServiceData.tsx"
click node_uptime "https://github.com/trungtq-ai-transform/checkcle/tree/develop/application/src/services"
click node_regional "https://github.com/trungtq-ai-transform/checkcle/tree/develop/application/src/components/regional-monitoring"
click node_servers "https://github.com/trungtq-ai-transform/checkcle/tree/develop/application/src/components/servers"
click node_containers "https://github.com/trungtq-ai-transform/checkcle/tree/develop/application/src/components/docker"
click node_ssl "https://github.com/trungtq-ai-transform/checkcle/tree/develop/application/src/components/ssl-domain"
click node_incidents "https://github.com/trungtq-ai-transform/checkcle/tree/develop/application/src/components/schedule-incident"
click node_operational "https://github.com/trungtq-ai-transform/checkcle/tree/develop/application/src/components/operational-page"
click node_publicstatus "https://github.com/trungtq-ai-transform/checkcle/tree/develop/application/src/components/public"
click node_settings "https://github.com/trungtq-ai-transform/checkcle/tree/develop/application/src/components/settings"
click node_worker "https://github.com/trungtq-ai-transform/checkcle/blob/develop/server/service-operation/main.go"
click node_retention "https://github.com/trungtq-ai-transform/checkcle/blob/develop/server/service-operation/data-retention/service.go"
click node_notifications "https://github.com/trungtq-ai-transform/checkcle/tree/develop/server/service-operation/notification"
click node_pbclient "https://github.com/trungtq-ai-transform/checkcle/blob/develop/application/src/lib/pocketbase.ts"
click node_pocketbase "https://github.com/trungtq-ai-transform/checkcle/blob/develop/server/core_backend-server/core/app.go"

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_auth,node_dashboard,node_serviceui,node_serviceactions,node_servicedata,node_settings toneBlue
class node_uptime,node_regional,node_servers,node_containers,node_ssl toneAmber
class node_incidents,node_operational,node_publicstatus toneMint
class node_worker,node_retention,node_notifications toneRose
class node_pbclient,node_pocketbase,node_operator,node_monitored,node_channels toneIndigo
```

## Components

### Web console

- [Web app routes](https://github.com/trungtq-ai-transform/checkcle/blob/develop/application/src/App.tsx): `application/src/App.tsx`
- [Authentication](https://github.com/trungtq-ai-transform/checkcle/blob/develop/application/src/services/authService.ts): `application/src/services/authService.ts`
- [Dashboard](https://github.com/trungtq-ai-transform/checkcle/tree/develop/application/src/components/dashboard): `application/src/components/dashboard`
- [Service views](https://github.com/trungtq-ai-transform/checkcle/tree/develop/application/src/components/services): `application/src/components/services`
- [Service actions](https://github.com/trungtq-ai-transform/checkcle/blob/develop/application/src/components/services/hooks/useServiceActions.ts): `application/src/components/services/hooks/useServiceActions.ts`
- [Service detail data](https://github.com/trungtq-ai-transform/checkcle/blob/develop/application/src/components/services/ServiceDetailContainer/hooks/useServiceData.tsx): `application/src/components/services/ServiceDetailContainer/hooks/useServiceData.tsx`
- [Administration](https://github.com/trungtq-ai-transform/checkcle/tree/develop/application/src/components/settings): `application/src/components/settings`

### Monitoring domains

- [Uptime history](https://github.com/trungtq-ai-transform/checkcle/tree/develop/application/src/services): `application/src/services`
- [Regional monitoring](https://github.com/trungtq-ai-transform/checkcle/tree/develop/application/src/components/regional-monitoring): `application/src/components/regional-monitoring`
- [Server monitoring](https://github.com/trungtq-ai-transform/checkcle/tree/develop/application/src/components/servers): `application/src/components/servers`
- [Container monitoring](https://github.com/trungtq-ai-transform/checkcle/tree/develop/application/src/components/docker): `application/src/components/docker`
- [SSL monitoring](https://github.com/trungtq-ai-transform/checkcle/tree/develop/application/src/components/ssl-domain): `application/src/components/ssl-domain`

### Status and response

- [Incident management](https://github.com/trungtq-ai-transform/checkcle/tree/develop/application/src/components/schedule-incident): `application/src/components/schedule-incident`
- [Operational pages](https://github.com/trungtq-ai-transform/checkcle/tree/develop/application/src/components/operational-page): `application/src/components/operational-page`
- [Public status](https://github.com/trungtq-ai-transform/checkcle/tree/develop/application/src/components/public): `application/src/components/public`

### Backend operations

- [Monitoring workers](https://github.com/trungtq-ai-transform/checkcle/blob/develop/server/service-operation/main.go): `server/service-operation/main.go`
- [Data retention](https://github.com/trungtq-ai-transform/checkcle/blob/develop/server/service-operation/data-retention/service.go): `server/service-operation/data-retention/service.go`
- [Alert delivery](https://github.com/trungtq-ai-transform/checkcle/tree/develop/server/service-operation/notification): `server/service-operation/notification`

### Persistence

- [PocketBase client](https://github.com/trungtq-ai-transform/checkcle/blob/develop/application/src/lib/pocketbase.ts): `application/src/lib/pocketbase.ts`
- [PocketBase](https://github.com/trungtq-ai-transform/checkcle/blob/develop/server/core_backend-server/core/app.go): `server/core_backend-server/core/app.go`

### Other components

- **Operator**
- **Monitored systems**
- **Notification channels**

## Connections

- Operator → Web app routes: uses
- Web app routes → Authentication: routes login
- Web app routes → Dashboard: routes dashboard
- Web app routes → Service views: routes services
- Web app routes → Regional monitoring: routes regional
- Web app routes → Server monitoring: routes servers
- Web app routes → Container monitoring: routes containers
- Web app routes → SSL monitoring: routes SSL
- Web app routes → Incident management: routes incidents
- Web app routes → Operational pages: routes pages
- Web app routes → Public status: routes public
- Web app routes → Administration: routes settings
- Authentication → PocketBase client: authenticates via
- Service views → Service actions: uses actions
- Service views → Service detail data: loads detail
- Service detail data → Uptime history: fetches history
- Service actions → PocketBase client: deletes records
- Monitoring workers → Monitored systems: checks systems
- Monitoring workers → Data retention: starts scheduler
- Monitoring workers → PocketBase: initializes client
- Data retention → PocketBase: reads and deletes
- Alert delivery → Notification channels: sends alerts
- Alert delivery → PocketBase: loads configuration
- PocketBase client → PocketBase: accesses backend
