# oliverso-pixel/kdl-versioncontrol architecture

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

- Interactive diagram: https://gitdiagram.com/oliverso-pixel/kdl-versioncontrol
- Repository: https://github.com/oliverso-pixel/kdl-versioncontrol

## Overview

Version Control Center is an administrative web application and API for managing Android applications, release branches and APK versions, monitoring devices, and configuring the system. Administrators sign in, select a management view, and use the frontend API client to read or change backend data; published APKs are available for download, while client-facing version-check and device-management endpoints support the update workflow. The frontend also exposes V2 store, device, and user-management views. README content and most route/component implementations were not provided, so links are limited to visible calls and router registration or documented by the tree.

Main entry points: [`backend/app/main.py`](https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/backend/app/main.py) (FastAPI application), [`frontend/src/App.js`](https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/frontend/src/App.js) (Frontend app), [`frontend/src/services/api.js`](https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/frontend/src/services/api.js) (API client), [`frontend/src/components/v2/StoreManagement.jsx`](https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/frontend/src/components/v2/StoreManagement.jsx) (V2 store)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_admin_ui["Admin interface"]
  node_app["Frontend app<br/>[App.js]"]
  node_login["Login<br/>[Login.jsx]"]
  node_dashboard["Dashboard<br/>[Dashboard.jsx]"]
  node_settings_ui["System settings UI<br/>[SystemSettings.jsx]"]
  node_notifications["Notifications UI"]
  node_user_ui["V2 user management<br/>[UserManagement.jsx]"]
end

subgraph group_release["Release management"]
  node_app_management["Application management"]
  node_branch_management["Branch management"]
  node_version_management["Version management"]
  node_store_ui["V2 store"]
end

subgraph group_device["Devices and updates"]
  node_device_ui["Device monitoring"]
  node_device_v2_ui["V2 device monitoring"]
  node_logs_ui["Update logs<br/>[UpdateLogs.jsx]"]
end

subgraph group_backend["Backend services"]
  node_api_client["API client<br/>[api.js]"]
  node_websocket_client["WebSocket client<br/>[websocket.js]"]
  node_backend_app["FastAPI application<br/>[main.py]"]
  node_auth_routes["Authentication routes<br/>[auth.py]"]
  node_v2_auth["V2 authentication<br/>[auth.py]"]
  node_admin_routes["Admin routes<br/>[admin.py]"]
  node_settings_routes["Settings routes<br/>[settings.py]"]
  node_statistics_routes["Statistics routes<br/>[statistics.py]"]
  node_database_routes["Database management<br/>[database_mgmt.py]"]
  node_version_routes["V1 version check<br/>[version_check.py]"]
  node_v2_mdm["V2 MDM routes<br/>[mdm.py]"]
  node_v2_version["V2 version check<br/>[version_check.py]"]
  node_websocket_routes["WebSocket routes<br/>[websocket.py]"]
  node_v2_websocket["V2 WebSocket routes<br/>[websocket.py]"]
  node_v2_users["V2 user routes<br/>[users.py]"]
end

subgraph group_state["Persistent state"]
  node_models["Domain models"]
  node_database[("Database session<br/>[database.py]")]
  node_apk_storage[("APK files")]
end

node_administrator(("Administrator"))

node_administrator -->|"uses"| node_app
node_app -->|"shows"| node_login
node_app -->|"renders"| node_dashboard
node_app -->|"renders"| node_app_management
node_app -->|"renders"| node_branch_management
node_app -->|"renders"| node_version_management
node_app -->|"renders"| node_device_ui
node_app -->|"renders"| node_store_ui
node_app -->|"renders"| node_device_v2_ui
node_app -->|"renders"| node_user_ui
node_app -->|"renders"| node_settings_ui
node_app -->|"renders"| node_notifications
node_app -->|"renders"| node_logs_ui
node_login -->|"authenticates via"| node_api_client
node_app_management -->|"requests data"| node_api_client
node_branch_management -->|"requests data"| node_api_client
node_version_management -->|"requests data"| node_api_client
node_store_ui -->|"requests data"| node_api_client
node_device_ui -->|"requests data"| node_api_client
node_device_v2_ui -->|"requests data"| node_api_client
node_user_ui -->|"requests data"| node_api_client
node_settings_ui -->|"requests data"| node_api_client
node_dashboard -->|"requests data"| node_api_client
node_logs_ui -->|"requests data"| node_api_client
node_notifications -.->|"receives events"| node_websocket_client
node_api_client -->|"sends HTTP requests"| node_backend_app
node_websocket_client -.->|"connects"| node_backend_app
node_backend_app -->|"registers"| node_auth_routes
node_backend_app -->|"registers"| node_version_routes
node_backend_app -->|"registers"| node_admin_routes
node_backend_app -->|"registers"| node_settings_routes
node_backend_app -->|"registers"| node_statistics_routes
node_backend_app -->|"registers"| node_database_routes
node_backend_app -->|"registers"| node_v2_auth
node_backend_app -->|"registers"| node_v2_mdm
node_backend_app -->|"registers"| node_v2_version
node_backend_app -->|"registers"| node_v2_users
node_backend_app -->|"registers"| node_websocket_routes
node_backend_app -->|"registers"| node_v2_websocket
node_store_ui -->|"loads branches"| node_branch_management
node_store_ui -->|"uploads APK"| node_api_client
node_backend_app -->|"serves downloads"| node_apk_storage
node_auth_routes -->|"gets session"| node_database
node_v2_auth -->|"gets session"| node_database
node_database_routes -->|"queries"| node_database
node_database -->|"maps entities"| node_models

click node_app "https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/frontend/src/App.js"
click node_login "https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/frontend/src/components/Auth/Login.jsx"
click node_dashboard "https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/frontend/src/components/Dashboard/Dashboard.jsx"
click node_settings_ui "https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/frontend/src/components/Settings/SystemSettings.jsx"
click node_notifications "https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/frontend/src/components/Notifications/NotificationCenter.jsx"
click node_api_client "https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/frontend/src/services/api.js"
click node_websocket_client "https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/frontend/src/services/websocket.js"
click node_app_management "https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/frontend/src/components/Applications/ApplicationManagement.jsx"
click node_branch_management "https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/frontend/src/components/Branches/BranchManagement.jsx"
click node_version_management "https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/frontend/src/components/Versions/VersionManagement.jsx"
click node_store_ui "https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/frontend/src/components/v2/StoreManagement.jsx"
click node_device_ui "https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/frontend/src/components/Devices/DeviceMonitoring.jsx"
click node_device_v2_ui "https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/frontend/src/components/v2/DeviceMonitoringV2.jsx"
click node_user_ui "https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/frontend/src/components/v2/UserManagement.jsx"
click node_logs_ui "https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/frontend/src/components/Logs/UpdateLogs.jsx"
click node_backend_app "https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/backend/app/main.py"
click node_auth_routes "https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/backend/app/api/auth.py"
click node_v2_auth "https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/backend/app/api/v2/auth.py"
click node_admin_routes "https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/backend/app/api/admin.py"
click node_settings_routes "https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/backend/app/api/settings.py"
click node_statistics_routes "https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/backend/app/api/statistics.py"
click node_database_routes "https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/backend/app/api/database_mgmt.py"
click node_version_routes "https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/backend/app/api/version_check.py"
click node_v2_mdm "https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/backend/app/api/v2/mdm.py"
click node_v2_version "https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/backend/app/api/v2/version_check.py"
click node_websocket_routes "https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/backend/app/api/websocket.py"
click node_v2_websocket "https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/backend/app/api/v2/websocket.py"
click node_v2_users "https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/backend/app/api/v2/users.py"
click node_models "https://github.com/oliverso-pixel/kdl-versioncontrol/tree/main/backend/app/models"
click node_database "https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/backend/app/database.py"

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_login,node_dashboard,node_settings_ui,node_notifications,node_user_ui toneBlue
class node_app_management,node_branch_management,node_version_management,node_store_ui toneAmber
class node_device_ui,node_device_v2_ui,node_logs_ui toneMint
class node_api_client,node_websocket_client,node_backend_app,node_auth_routes,node_v2_auth,node_admin_routes,node_settings_routes,node_statistics_routes,node_database_routes,node_version_routes,node_v2_mdm,node_v2_version,node_websocket_routes,node_v2_websocket,node_v2_users toneRose
class node_models,node_database,node_apk_storage,node_administrator toneIndigo
```

## Components

### Admin interface

- [Frontend app](https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/frontend/src/App.js): `frontend/src/App.js`
- [Login](https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/frontend/src/components/Auth/Login.jsx): `frontend/src/components/Auth/Login.jsx`
- [Dashboard](https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/frontend/src/components/Dashboard/Dashboard.jsx): `frontend/src/components/Dashboard/Dashboard.jsx`
- [System settings UI](https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/frontend/src/components/Settings/SystemSettings.jsx): `frontend/src/components/Settings/SystemSettings.jsx`
- [Notifications UI](https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/frontend/src/components/Notifications/NotificationCenter.jsx): `frontend/src/components/Notifications/NotificationCenter.jsx`
- [V2 user management](https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/frontend/src/components/v2/UserManagement.jsx): `frontend/src/components/v2/UserManagement.jsx`

### Release management

- [Application management](https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/frontend/src/components/Applications/ApplicationManagement.jsx): `frontend/src/components/Applications/ApplicationManagement.jsx`
- [Branch management](https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/frontend/src/components/Branches/BranchManagement.jsx): `frontend/src/components/Branches/BranchManagement.jsx`
- [Version management](https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/frontend/src/components/Versions/VersionManagement.jsx): `frontend/src/components/Versions/VersionManagement.jsx`
- [V2 store](https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/frontend/src/components/v2/StoreManagement.jsx): `frontend/src/components/v2/StoreManagement.jsx`

### Devices and updates

- [Device monitoring](https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/frontend/src/components/Devices/DeviceMonitoring.jsx): `frontend/src/components/Devices/DeviceMonitoring.jsx`
- [V2 device monitoring](https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/frontend/src/components/v2/DeviceMonitoringV2.jsx): `frontend/src/components/v2/DeviceMonitoringV2.jsx`
- [Update logs](https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/frontend/src/components/Logs/UpdateLogs.jsx): `frontend/src/components/Logs/UpdateLogs.jsx`

### Backend services

- [API client](https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/frontend/src/services/api.js): `frontend/src/services/api.js`
- [WebSocket client](https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/frontend/src/services/websocket.js): `frontend/src/services/websocket.js`
- [FastAPI application](https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/backend/app/main.py): `backend/app/main.py`
- [Authentication routes](https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/backend/app/api/auth.py): `backend/app/api/auth.py`
- [V2 authentication](https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/backend/app/api/v2/auth.py): `backend/app/api/v2/auth.py`
- [Admin routes](https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/backend/app/api/admin.py): `backend/app/api/admin.py`
- [Settings routes](https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/backend/app/api/settings.py): `backend/app/api/settings.py`
- [Statistics routes](https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/backend/app/api/statistics.py): `backend/app/api/statistics.py`
- [Database management](https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/backend/app/api/database_mgmt.py): `backend/app/api/database_mgmt.py`
- [V1 version check](https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/backend/app/api/version_check.py): `backend/app/api/version_check.py`
- [V2 MDM routes](https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/backend/app/api/v2/mdm.py): `backend/app/api/v2/mdm.py`
- [V2 version check](https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/backend/app/api/v2/version_check.py): `backend/app/api/v2/version_check.py`
- [WebSocket routes](https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/backend/app/api/websocket.py): `backend/app/api/websocket.py`
- [V2 WebSocket routes](https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/backend/app/api/v2/websocket.py): `backend/app/api/v2/websocket.py`
- [V2 user routes](https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/backend/app/api/v2/users.py): `backend/app/api/v2/users.py`

### Persistent state

- [Domain models](https://github.com/oliverso-pixel/kdl-versioncontrol/tree/main/backend/app/models): `backend/app/models`
- [Database session](https://github.com/oliverso-pixel/kdl-versioncontrol/blob/main/backend/app/database.py): `backend/app/database.py`
- **APK files**

### Other components

- **Administrator**

## Connections

- Administrator → Frontend app: uses
- Frontend app → Login: shows
- Frontend app → Dashboard: renders
- Frontend app → Application management: renders
- Frontend app → Branch management: renders
- Frontend app → Version management: renders
- Frontend app → Device monitoring: renders
- Frontend app → V2 store: renders
- Frontend app → V2 device monitoring: renders
- Frontend app → V2 user management: renders
- Frontend app → System settings UI: renders
- Frontend app → Notifications UI: renders
- Frontend app → Update logs: renders
- Login → API client: authenticates via
- Application management → API client: requests data
- Branch management → API client: requests data
- Version management → API client: requests data
- V2 store → API client: requests data
- Device monitoring → API client: requests data
- V2 device monitoring → API client: requests data
- V2 user management → API client: requests data
- System settings UI → API client: requests data
- Dashboard → API client: requests data
- Update logs → API client: requests data
- Notifications UI → WebSocket client: receives events
- API client → FastAPI application: sends HTTP requests
- WebSocket client → FastAPI application: connects
- FastAPI application → Authentication routes: registers
- FastAPI application → V1 version check: registers
- FastAPI application → Admin routes: registers
- FastAPI application → Settings routes: registers
- FastAPI application → Statistics routes: registers
- FastAPI application → Database management: registers
- FastAPI application → V2 authentication: registers
- FastAPI application → V2 MDM routes: registers
- FastAPI application → V2 version check: registers
- FastAPI application → V2 user routes: registers
- FastAPI application → WebSocket routes: registers
- FastAPI application → V2 WebSocket routes: registers
- V2 store → Branch management: loads branches
- V2 store → API client: uploads APK
- FastAPI application → APK files: serves downloads
- Authentication routes → Database session: gets session
- V2 authentication → Database session: gets session
- Database management → Database session: queries
- Database session → Domain models: maps entities
