# cybroodoo/cybroaddons architecture

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

- Interactive diagram: https://gitdiagram.com/cybroodoo/cybroaddons
- Repository: https://github.com/cybroodoo/cybroaddons

## Overview

This repository is a collection of Odoo addons rather than one application. The sampled runtime shows three distinct product areas: a multi-platform AI bot gateway, document-management kanban interactions, and a map view. In the bot workflow, an incoming platform webhook is normalized by its adapter, handled by the gateway and service, then formatted for a reply. The graph preserves the sampled component boundaries; links marked dashed are unverified. Other addon capabilities are omitted because the README is empty and their runtime relationships were not sampled.

Main entry points: [`odoo_mcp_manager/controllers/bot_gateway_controller.py`](https://github.com/cybroodoo/cybroaddons/blob/19.0/odoo_mcp_manager/controllers/bot_gateway_controller.py) (Webhook gateway), [`odoo_mcp_manager/controllers/base_adapter.py`](https://github.com/cybroodoo/cybroaddons/blob/19.0/odoo_mcp_manager/controllers/base_adapter.py) (Adapter base), [`odoo_mcp_manager/controllers/telegram_adapter.py`](https://github.com/cybroodoo/cybroaddons/blob/19.0/odoo_mcp_manager/controllers/telegram_adapter.py) (Telegram adapter), [`odoo_mcp_manager/controllers/whatsapp_adapter.py`](https://github.com/cybroodoo/cybroaddons/blob/19.0/odoo_mcp_manager/controllers/whatsapp_adapter.py) (WhatsApp adapter)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_bots["Bot gateway"]
  node_gateway["Webhook gateway"]
  node_auth["Bot authentication<br/>[bot_auth.py]"]
  node_telegram["Telegram adapter"]
  node_whatsapp["WhatsApp adapter"]
  node_discord["Discord adapter<br/>[discord_adapter.py]"]
  node_webadapter["Web chat adapter<br/>[web_adapter.py]"]
  node_adapterbase["Adapter base<br/>[base_adapter.py]"]
  node_botservice["Message processing"]
end

subgraph group_documents["Document management"]
  node_doccontroller["Document kanban controller"]
  node_docrenderer["Document kanban renderer<br/>[kanban_renderer.js]"]
  node_docrecord["Document kanban record<br/>[kanban_record.js]"]
end

subgraph group_mapping["Map view"]
  node_mapcontroller["Map controller<br/>[map_controller.js]"]
  node_maprenderer["Map renderer<br/>[map_renderer.js]"]
end

node_platforms(("Chat platforms"))
node_aiendpoint["AI backend"]
node_staff(("Document users"))
node_mapuser(("Map users"))

node_platforms -.->|"send webhook"| node_gateway
node_gateway -->|"checks credentials"| node_auth
node_gateway -->|"normalizes messages"| node_telegram
node_gateway -->|"normalizes messages"| node_whatsapp
node_gateway -->|"normalizes messages"| node_discord
node_gateway -->|"normalizes messages"| node_webadapter
node_telegram -->|"extends"| node_adapterbase
node_whatsapp -->|"extends"| node_adapterbase
node_discord -->|"extends"| node_adapterbase
node_webadapter -->|"extends"| node_adapterbase
node_gateway -->|"dispatches messages"| node_botservice
node_botservice -->|"sends requests"| node_aiendpoint
node_staff -.->|"uses kanban"| node_doccontroller
node_doccontroller -->|"uses renderer"| node_docrenderer
node_docrenderer -->|"renders records"| node_docrecord
node_mapuser -.->|"opens map view"| node_mapcontroller
node_mapcontroller -->|"renders map"| node_maprenderer

click node_gateway "https://github.com/cybroodoo/cybroaddons/blob/19.0/odoo_mcp_manager/controllers/bot_gateway_controller.py"
click node_auth "https://github.com/cybroodoo/cybroaddons/blob/19.0/odoo_mcp_manager/utils/bot_auth.py"
click node_telegram "https://github.com/cybroodoo/cybroaddons/blob/19.0/odoo_mcp_manager/controllers/telegram_adapter.py"
click node_whatsapp "https://github.com/cybroodoo/cybroaddons/blob/19.0/odoo_mcp_manager/controllers/whatsapp_adapter.py"
click node_discord "https://github.com/cybroodoo/cybroaddons/blob/19.0/odoo_mcp_manager/controllers/discord_adapter.py"
click node_webadapter "https://github.com/cybroodoo/cybroaddons/blob/19.0/odoo_mcp_manager/controllers/web_adapter.py"
click node_adapterbase "https://github.com/cybroodoo/cybroaddons/blob/19.0/odoo_mcp_manager/controllers/base_adapter.py"
click node_botservice "https://github.com/cybroodoo/cybroaddons/blob/19.0/odoo_mcp_manager/services/bot_gateway_service.py"
click node_doccontroller "https://github.com/cybroodoo/cybroaddons/blob/19.0/enhanced_document_management/static/src/views/kanban/kanban_controller.js"
click node_docrenderer "https://github.com/cybroodoo/cybroaddons/blob/19.0/enhanced_document_management/static/src/views/kanban/kanban_renderer.js"
click node_docrecord "https://github.com/cybroodoo/cybroaddons/blob/19.0/enhanced_document_management/static/src/views/kanban/kanban_record.js"
click node_mapcontroller "https://github.com/cybroodoo/cybroaddons/blob/19.0/odoo_web_map/static/src/js/map_controller.js"
click node_maprenderer "https://github.com/cybroodoo/cybroaddons/blob/19.0/odoo_web_map/static/src/js/map_renderer.js"

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_gateway,node_auth,node_telegram,node_whatsapp,node_discord,node_webadapter,node_adapterbase,node_botservice,node_staff,node_mapuser toneBlue
class node_doccontroller,node_docrenderer,node_docrecord toneAmber
class node_mapcontroller,node_maprenderer toneMint
class node_platforms,node_aiendpoint toneIndigo
```

## Components

### Bot gateway

- [Webhook gateway](https://github.com/cybroodoo/cybroaddons/blob/19.0/odoo_mcp_manager/controllers/bot_gateway_controller.py): `odoo_mcp_manager/controllers/bot_gateway_controller.py`
- [Bot authentication](https://github.com/cybroodoo/cybroaddons/blob/19.0/odoo_mcp_manager/utils/bot_auth.py): `odoo_mcp_manager/utils/bot_auth.py`
- [Telegram adapter](https://github.com/cybroodoo/cybroaddons/blob/19.0/odoo_mcp_manager/controllers/telegram_adapter.py): `odoo_mcp_manager/controllers/telegram_adapter.py`
- [WhatsApp adapter](https://github.com/cybroodoo/cybroaddons/blob/19.0/odoo_mcp_manager/controllers/whatsapp_adapter.py): `odoo_mcp_manager/controllers/whatsapp_adapter.py`
- [Discord adapter](https://github.com/cybroodoo/cybroaddons/blob/19.0/odoo_mcp_manager/controllers/discord_adapter.py): `odoo_mcp_manager/controllers/discord_adapter.py`
- [Web chat adapter](https://github.com/cybroodoo/cybroaddons/blob/19.0/odoo_mcp_manager/controllers/web_adapter.py): `odoo_mcp_manager/controllers/web_adapter.py`
- [Adapter base](https://github.com/cybroodoo/cybroaddons/blob/19.0/odoo_mcp_manager/controllers/base_adapter.py): `odoo_mcp_manager/controllers/base_adapter.py`
- [Message processing](https://github.com/cybroodoo/cybroaddons/blob/19.0/odoo_mcp_manager/services/bot_gateway_service.py): `odoo_mcp_manager/services/bot_gateway_service.py`

### Document management

- [Document kanban controller](https://github.com/cybroodoo/cybroaddons/blob/19.0/enhanced_document_management/static/src/views/kanban/kanban_controller.js): `enhanced_document_management/static/src/views/kanban/kanban_controller.js`
- [Document kanban renderer](https://github.com/cybroodoo/cybroaddons/blob/19.0/enhanced_document_management/static/src/views/kanban/kanban_renderer.js): `enhanced_document_management/static/src/views/kanban/kanban_renderer.js`
- [Document kanban record](https://github.com/cybroodoo/cybroaddons/blob/19.0/enhanced_document_management/static/src/views/kanban/kanban_record.js): `enhanced_document_management/static/src/views/kanban/kanban_record.js`

### Map view

- [Map controller](https://github.com/cybroodoo/cybroaddons/blob/19.0/odoo_web_map/static/src/js/map_controller.js): `odoo_web_map/static/src/js/map_controller.js`
- [Map renderer](https://github.com/cybroodoo/cybroaddons/blob/19.0/odoo_web_map/static/src/js/map_renderer.js): `odoo_web_map/static/src/js/map_renderer.js`

### Other components

- **Chat platforms**
- **AI backend**
- **Document users**
- **Map users**

## Connections

- Chat platforms → Webhook gateway: send webhook
- Webhook gateway → Bot authentication: checks credentials (evidence: `odoo_mcp_manager/controllers/bot_gateway_controller.py`)
- Webhook gateway → Telegram adapter: normalizes messages (evidence: `odoo_mcp_manager/controllers/bot_gateway_controller.py`)
- Webhook gateway → WhatsApp adapter: normalizes messages (evidence: `odoo_mcp_manager/controllers/bot_gateway_controller.py`)
- Webhook gateway → Discord adapter: normalizes messages (evidence: `odoo_mcp_manager/controllers/bot_gateway_controller.py`)
- Webhook gateway → Web chat adapter: normalizes messages (evidence: `odoo_mcp_manager/controllers/bot_gateway_controller.py`)
- Telegram adapter → Adapter base: extends (evidence: `odoo_mcp_manager/controllers/telegram_adapter.py`)
- WhatsApp adapter → Adapter base: extends (evidence: `odoo_mcp_manager/controllers/whatsapp_adapter.py`)
- Discord adapter → Adapter base: extends (evidence: `odoo_mcp_manager/controllers/discord_adapter.py`)
- Web chat adapter → Adapter base: extends (evidence: `odoo_mcp_manager/controllers/web_adapter.py`)
- Webhook gateway → Message processing: dispatches messages (evidence: `odoo_mcp_manager/controllers/bot_gateway_controller.py`)
- Message processing → AI backend: sends requests (evidence: `odoo_mcp_manager/services/bot_gateway_service.py`)
- Document users → Document kanban controller: uses kanban
- Document kanban controller → Document kanban renderer: uses renderer (evidence: `enhanced_document_management/static/src/views/kanban/kanban_controller.js`)
- Document kanban renderer → Document kanban record: renders records (evidence: `enhanced_document_management/static/src/views/kanban/kanban_renderer.js`)
- Map users → Map controller: opens map view
- Map controller → Map renderer: renders map (evidence: `odoo_web_map/static/src/js/map_controller.js`)
