Plataforma de Analytics e BI Executivo
Plataforma empresarial de Business Intelligence e analytics para centralizar indicadores estratégicos, operacionais e acadêmicos. Integra múltiplas bases transacionais via pipelines automatizados serverless, entregando visualizações interativas para diferentes perfis de usuários com permissões granulares.
Contexto
Plataforma empresarial de Business Intelligence e analytics 100% SERVERLESS em produção — centraliza KPIs estratégicos, operacionais e acadêmicos de múltiplas fontes transacionais em uma fonte única de verdade analítica.
- ~80 componentes React reutilizáveis (UI + Dashboard + Admin)
- 42+ migrations versionadas (Supabase/PostgreSQL · +30 tabelas)
- 12 cron jobs automatizados de ingestão/sincronização via Vercel Crons
- 5 módulos analíticos especializados (Visão Geral · Expedição · Retenção · Documentação · Performance)
- 5 níveis hierarquia RBAC + 13 view keys permissão granular por feature
- 100% serverless em produção (Vercel Functions + rewrites)
Problema
6 desafios técnicos que eu resolvi no projeto:
- Ingestão de milhões de registros em bases MySQL LEGADO dentro do timeout 10s das Vercel Functions
- Verificação 13 permissões × múltiplos componentes em cada render → re-renders excessivos
- Dashboard Denso com 50+ métricas + 15 gráficos SVG → First Contentful Paint ruim e jank no scroll
- Autenticação Firebase OAuth em preview deploys com URLs dinâmicas + popup bloqueado anti-tracker
- 8 tipos de visualização × setores com métricas de naturezas diferentes → informação mal apresentada
- Formatação consistente de valores monetários, percentuais e inteiros com semáforo e arredondamento
Usuários
5 perfis distintos compartilhando o mesmo produto com contexto por setor/departamento.
- Admin Master — visão nacional, usuários, roles, setores, SLA integrações, system health
- Admin — backoffice CRUD: usuários, indicadores, setores, trilha de auditoria, ajuda
- Manager/Editor — lançamento de valores em lote, entrada manual por setor, histórico por mês
- Viewer por setor — dashboard setorial, exports PDF/Excel, relatórios de permissão
- Analistas operacionais — busca, filtros, drill-down, tabelas de outliers, alertas por email
Papel
Full Stack Engineer — arquitetura end-to-end, design de dados, pipeline ETL, implementação frontend/backend e governança de qualidade.
Backend Serverless + Shared Services
- Modelei banco PostgreSQL Supabase com 42+ migrations, RLS habilitado, índices compostos, soft-delete `deleted_at` + trigger
- Implementei HANDLER MESTRE de 12 cron jobs idempotentes (ETL, sync, cleanup, report) com janelas deslizantes drift + ON CONFLICT UPDATE
- Desenvolvi Service + Repository UserViewPermissions com teste Vitest ≥ 80% em 4 dimensões (lines/statements/functions/branches)
- Criei audit log com Zod schema + hash SHA-256 por entrada + monitor atividade suspeita com webhook alertas
- Integrei email multi-provedor (Resend · Brevo) com fallback automático
- Estabeleci SSO Google OAuth Firebase (Client + Admin SDK) + `auth_time` sessão máx 5 dias + status pendente padrão
Frontend React 19 + Vite 7 + Analytics
- Arquitetei ~80 components: Design System Radix Tailwind shadcn-style · Shared Dashboard · Admin Components
- Implementei AuthContext com cache permissões ETag (95% das req → 304 Not Modified 0 bytes) + validação sessão
- Construí GenericSectorDashboard + heurística sector-intelligence (businessCategory · dataShape · recommendedVisual · sortWeight)
- Desenvolvi algoritmo Auto-fit MetricCard via ResizeObserver + binary search font-size (sem overflow horizontal)
- Montei 8 tipos visualização Recharts 3: bar · area · line · bar-limits · line-limits · radial · pie · radar
- Entreguei ProtectedRoute 3 níveis (auth → role → viewPermission) · tema claro/escuro next-themes · Vite manualChunks vendor split
Arquitetura
Arquitetura HEXAGONAL simplificada 3 camadas, cada endpoint em `app/api/*` vira Vercel Function isolada com autoscaling.
Server Shared Services (server/_services/)
- auth.ts — Firebase Admin SDK verifyToken + fallback Identity Toolkit REST
- db.ts — CRUD usuários · audit logs · Zod validation · saveAuditLog SHA-256
- supabase.ts / adminSupabase.ts — singleton clients anon vs service role key
- email.ts — Resend · Brevo fallback automático
- monitor.ts — detecção atividade suspeita · webhook alerta
- userViewPermissions.ts — Service + Repository pattern + ETag header compose
Client Layer + Analytics Engine
- Pages Routes code-splitting · Vite 7 manualChunks (react-vendor · firebase-vendor · ui-vendor · charts-vendor)
- Contexts Auth · Year · Hooks useDashboardData · useIndicadores · useCompanyStats
- Client Services HTTP + SWR cache dedupe 60s · focusThrottle · refreshInterval programático
- CASL-like Protections: ProtectedRoute + navItems dinâmico + PermissionDialog useDeferredValue busca 300+ itens
- Dashboard Engine: ExecutiveSummary · GenericSectorDashboard · MetricCard autofit · sector-intelligence heurística
- UI: Tailwind 4 @theme tokens · Radix headless · Framer Motion micro-interações · Sheet menu mobile responsive 2400px
Resultado
Resultados técnicos mensuráveis após estabilização em produção.
Métricas de engenharia
- INGESTÃO: 6 bases MySQL → 1 fonte verdade analítica Supabase; processamento diário ~45min manual → <2min automático
- PERFORMANCE: FCP dashboard <1,8s após cache; <4s primeira carga sem cache; SWR dedup 60s
- SEGURANÇA: 0 incidentes acesso não autorizado; status pending padrão novos usuários; trilha 100% escrita com SHA-256
- PERMISSÕES: ETag cache 90%+ 304 Not Modified; admin libera/retrai view key individual em <30s
- QUALIDADE: Coverage permissões ≥80% Linhas/Statements/Funções/Branches; ~50 suites Vitest UI/hooks/lógica
- ACESSIBILIDADE: Radix ARIA · WCAG AA contraste temas claro/escuro · breakpoint 320 até desktop 2400px
- ESCALA: 5 módulos analíticos especializados · 8 tipos visualização · lançamento em lote Excel import inline
- SERVERLESS: zero-op production · autoscaling Vercel Functions · cron expressão UTC nativa vercel.json
* Interface, arquitetura e detalhes técnicos apresentados para demonstrar raciocínio de engenharia. Regras de negócio, dados comerciais, identidade de clientes, nomes de instituições, valores financeiros e integrações específicas de parceiros são confidenciais e foram removidos ou anonimizados.