Page:
Arquitetura
1
Arquitetura
Rafael Alves Lopes edited this page 2026-05-27 15:23:17 -03:00
Table of Contents
Arquitetura Geral
Componentes
flowchart LR
Usuario[Usuario Web] --> Frontend[Frontend React/Vite]
Frontend --> Backend[Backend NestJS API]
Frontend <--> Socket[Socket.IO]
Socket <--> Backend
Backend --> Postgres[(PostgreSQL externo)]
Backend --> LDAP[LDAP / Active Directory]
Backend --> Microsoft[Microsoft Entra ID]
Backend --> WhatsApp[WhatsApp Web / whatsapp-web.js]
Backend --> Puppeteer[Puppeteer / Chromium]
WhatsApp --> Cliente[Cliente WhatsApp]
Repositorio
omnichannel/
├── backend/ # API NestJS
├── frontend/ # SPA React/Vite
├── database/migrations/ # SQL de schema e dados iniciais
├── docs/ # Wiki operacional
└── docker-compose.yml # Orquestracao local/deploy simples
Backend
Responsabilidades:
- autenticar usuarios;
- sincronizar usuario/perfil/especialidade;
- conectar WhatsApp Web;
- controlar fila e atribuicao;
- expor API admin/supervisor/agente;
- emitir eventos realtime via Socket.IO.
Principais modulos:
authadminwhatsapp
Frontend
Responsabilidades:
- login;
- home por perfil;
- chat em tempo real;
- administracao;
- supervisor/operacao;
- abertura ativa;
- contatos;
- conteudos da IA e fluxo do bot.
Banco
PostgreSQL externo armazena:
- usuarios e provedores;
- perfis e areas;
- atribuicoes WhatsApp;
- templates;
- agenda;
- presenca;
- bot flow;
- conteudos da IA;
- auditoria.
O banco nao e criado pelo Docker Compose deste repositorio. A aplicacao apenas consome uma instancia PostgreSQL ja provisionada.
Comunicacao em tempo real
O backend recebe eventos do WhatsApp e repassa ao frontend via Socket.IO. O frontend tambem faz polling/chamadas HTTP para dados estruturados.
Pontos criticos
- WhatsApp Web depende de sessao e Chromium.
- Migrations ainda precisam de runner formal.
- JWT ainda precisa virar guard real no backend.
- Algumas metricas ainda usam dados de apoio/simulados.