Plataforma de Aula Remota
Plataforma SaaS B2B/B2C multi-tenant para operação de aulas síncronas remotas, com sala de videoconferência integrada, biometria facial em múltiplos pontos do fluxo, gestão administrativa, financeira, simulados e biblioteca digital. Arquitetura com NestJS + DDD/Clean Architecture no backend, React 18 + CASL RBAC matricial no frontend, 150+ endpoints REST e integrações com 6+ serviços externos.
Contexto
SaaS B2B/B2C MULTI-TENANT em produção — plataforma de aulas síncronas remotas cobrindo jornada ponta-a-ponta do usuário.
- 50+ entidades de domínio · 41 migrations PRISMA · PostgreSQL 15
- 150+ endpoints REST NESTJS organizados em módulos por domínio
- 6 integrações multi-protocolo: REST · SOAP · HMAC · OAuth S2S · pre-signed URL · webhooks idempotentes
- 40 telas REACT 18 · 70+ componentes SHADCN-UI · 200+ interfaces TS compartilhadas
- CASL Ability RBAC matricial com 50+ permissões por perfil + unidade
Problema
6 desafios técnicos que eu resolvi no projeto:
- Isolamento multi-tenant estrito — garantia de zero data leak entre clientes na mesma infra
- Integrações com 6+ parceiros usando PROTOCOLOS DIFERENTES + idempotência por chave
- SDK terceiro de VÍDEO incompatível com Cross-Origin Isolation + React StrictMode
- Autorização 4D simultânea (nível × domínio × feature × contexto por unidade)
- Sincronia em tempo real sobre conexões 3G/4G instáveis
- Biometria facial anti-fraude em múltiplos pontos do fluxo
Usuários
5 perfis distintos compartilhando o mesmo produto sem contaminação de contexto.
- Admin produto — visão nacional, tenants, planos, SLA integrações
- Gestor operacional unidade — backoffice, participantes, ciclo financeiro
- Coordenação acadêmica — planejamento, turmas, grade, disponibilidade
- Facilitadores em sala ao vivo — interação chat, liberação atividades, presença
- Participantes finais — onboarding, biometria, acesso sala, certificados
- Troca de CONTEXTO por unidade SEM RELOGIN (JWT stateless + lista de unidades)
Papel
Full Stack Engineer — atuação end-to-end na arquitetura, implementação e evolução da plataforma, cobrindo domínio, APIs, integrações e frontend.
Backend NestJS + Clean Architecture
- Modelei 50+ entidades de domínio e 41 migrations versionadas em Prisma ORM + PostgreSQL, aplicando Dependency Inversion (1 use case por arquivo, 100+ casos organizados por domínio)
- Implementei 150+ endpoints REST organizados em módulos Nest, com validação DTO class-validator, serialização class-transformer e guard global JWT Passport + decorator `@Public()` custom para rotas públicas
- Desenvolvi autenticação JWT stateless com múltiplos métodos de login e troca de contexto por unidade SEM necessidade de novo login
- Criei WebSocket Gateway via Socket.IO para status bidirecional de aula, cron jobs com `@nestjs/schedule` (sincronia periódica, faturamento recorrente, limpeza objetos expirados) e pub/sub interno via `@nestjs/event-emitter`
- Integrei 6+ parceiros externos usando múltiplos protocolos (REST HMAC, SOAP, OAuth S2S, pre-signed URLs, webhooks idempotentes) com Facade própria abstrata por interface
- Estabeleci ambiente Docker Compose local com PostgreSQL + backup automático, ESLint zero warnings em produção, Jest + Supertest para rotas críticas e deploy cloud com infra-as-code em render.yaml
Frontend React 18 + Vite 5 + TypeScript
- Arquitetei SPA com 40 telas e 70+ componentes, aplicando Provider Composition Pattern com 16 Context Providers separados por domínio (Auth, Live, Aulas, Unidades, Financeiro, Simulados, etc)
- Adotei TanStack Query v5 para server state com cache stale-while-revalidate, dedupe automática e invalidação programática após eventos push; Context APENAS para client state de UI
- Implementei autorização matricial 4D com CASL Ability Builder, usando guard JSX `<Can>` e utilitário imperativo `can()` para condicionais
- Construí Design System com Tailwind 3.4 tema custom, Radix UI primitives headless, shadcn/ui e Headless UI totalizando 45+ componentes WAI-ARIA acessíveis
- Desenvolvi formulários complexos com React Hook Form 7 + Zod schemas + máscaras nativas, e busca global via Comando Palette (⌘K)
- Isolei SDK de videoconferência em iframe dinâmico com `react-frame-component` + Service Worker COI registrado programaticamente, contornando incompatibilidade com React StrictMode
- Entreguei tabelas complexas (React-Table), dashboards (Recharts), exports Excel (exceljs), toasts (Sonner) e deploy SPA Vercel com rewrites para rotas profundas — bundle principal <180KB gzip e HMR Vite <100ms
Arquitetura
Arquitetura LAYERED estrita com contratos TypeScript compartilhados (200+ interfaces).
Backend CLEAN ARCH + DDD
- CAMADA APP (pura sem frameworks): entities · value-objects · 100+ use cases · repository interfaces · eventos domínio
- CAMADA INFRA (drivers externos): Prisma impl repositórios · Nest Controllers · Socket.IO Gateway · schedule cron · event emitter · PartnerSyncFacade multi-protocolo
- Padrão fluxo 201: HTTP → Controller → DTO validação → UseCase → Interface Repository → Prisma → PostgreSQL → Mapper ViewModel → JSON
- 41 migrations + índices compostos + soft-delete padrão deletedAt + índice parcial
- Docker Compose + ESLint zero warnings + Jest/Supertest + IaC render.yaml
Frontend SPA COMPOSITION CACHE HÍBRIDO
- Vite Router pages · code-splitting por rota · bundle <180KB gzip
- 16 Providers domínio · TanStack stale-while-revalidate dedup queries
- CASL Ability guard em rota + componente + função imperativa
- IFRAME `react-frame-component` + postMessage bridge app ↔ SDK vídeo
- Socket.IO client push + SWR invalidação programática após eventos
- TAILWIND + RADIX + SHADCN eject zero-lock-in · Vercel rewrites · build HMR <100ms
Resultado
Resultados técnicos mensuráveis após estabilização em produção.
Métricas de engenharia
- AUTH: JWT stateless — 0 round-trips ao banco em 100% endpoints autenticados
- BANCO: índices compostos em queries relatório — melhoria 40% tempo médio
- FRONTEND: bundle <180KB gzip · code-split rota · Vite HMR <100ms
- CACHE: TanStack dedup + SWR — 60% menos requisições repetidas usuários ativos
- INTEGRAÇÕES: retry backoff + idempotência — resiliência 99%+ em produção
- SALA AO VIVO: iframe + COI register/deregister — taxa sucesso entrada > 98%
- ESCALA: 40 telas · 70+ components · 200+ types TS compartilhados
- QUALIDADE: ESLint zero warnings prod · coverage monitorado auth/biometria/financeiro
* Interface, arquitetura e detalhes técnicos apresentados para demonstrar raciocínio de engenharia. Regras de negócio, dados comerciais, identidade de clientes e integrações específicas de parceiros são confidenciais e foram removidos ou anonimizados.