docs(okf): entidades e relacionamentos OKF do DashDescomplicar

This commit is contained in:
2026-10-28 16:01:20 +00:00
parent f063a2ec8c
commit 61ae4697f9
48 changed files with 2610 additions and 0 deletions
+75
View File
@@ -0,0 +1,75 @@
---
type: Entity
layer: wiki
tags: [stack, dashdescomplicar, engine, frontend, core]
title: "Dashboard-Engine"
---
# Dashboard-Engine
Motor central da aplicação DashDescomplicar. Orquestra layout, navegação, autenticação e ciclo de dados entre API e painéis.
## Responsabilidades
- **Layout**: Sidebar (9 itens) + Main Content area com glass-morphism design
- **Roteamento**: React Router DOM 7 — `/` (Dashboard), `/monitor`, `/financial`, `/mcps`, `/n8n`, `/paperclip`, `/ai`, `/operations`, `/sessions`
- **Autenticação**: OIDC opcional (`react-oidc-context`) + rate-limit (100 req/15min)
- **Data Fetching**: `useEffect` + `useCallback` com reconnection logic
- **Componentes Compartilhados**: `HeroStat`, `GlassCard`, `Sparkline`, `StatusPill`, `ProgressRing`, `ListItem`, `SummaryWidget`
- **Animações**: Framer Motion (`containerVariants`, `itemVariants` com stagger)
- **Dashboard Principal**: 16 queries paralelas ao Desk CRM (tarefas, tickets, leads, projectos, calendário, pipeline, timesheet, billing 360)
## Stack
- **React 19** + TypeScript 5.9
- **Vite 7** (build, proxy `/api` → `localhost:3001`)
- **Tailwind CSS 4** (glass-card, dark theme)
- **Framer Motion 12** (stagger animations, spring physics)
- **Lucide React** (ícones — 25+ importados)
- **Recharts 3** (gráficos: Bar, Pie, Line, Sparkline)
- **React Router DOM 7** (BrowserRouter, Routes, Link)
## Localizações
- **Código**: `Dev/DashDescomplicar/src/App.tsx` (894 linhas)
- **Layout**: `src/components/Layout.tsx` (sidebar, navegação)
- **Deploy**: `dash.descomplicar.pt` (EasyPanel Swarm)
- **Repo**: `git.descomplicar.pt/ealmeida/DashDescomplicar`
- **Proxy Dev**: Vite proxy `/api` → `http://localhost:3001`
## Arquitectura de Componentes
```
App.tsx
├── Layout.tsx (sidebar + Outlet)
│ ├── Logo + Nome
│ ├── NavItem ×9 (Dashboard, Monitor, Financial, MCPs, n8n, Paperclip, AI, Operations, Sessions)
│ └── Footer (versão, status)
├── Páginas (lazy-loaded via React Router)
│ ├── Dashboard (/) — App.tsx interno
│ ├── Monitor (/monitor)
│ ├── Financial (/financial)
│ ├── McpMonitor (/mcps)
│ ├── N8nMonitor (/n8n)
│ ├── Paperclip (/paperclip)
│ ├── AiOverview (/ai)
│ ├── Operations (/operations)
│ ├── Sessions (/sessions)
│ └── SessionDetail (/sessions/:id)
└── Componentes compartilhados
├── GlassCard, HeroStat, Sparkline
├── StatusPill, ProgressRing
└── SummaryWidget, ListItem
```
## Dependências
- **Express-API**: 15 endpoints REST para dados
- **CSR-Integration**: Camada de fetch, cache, reconnection
- **Metrics**: Telemetria de renderização e interacção
- **Todos os 9 painéis**: Renderizados via React Router
## Fornece a
- **Todos os painéis**: Layout, navegação, autenticação
- **Utilizador**: Interface unificada `dash.descomplicar.pt`