01 · SaaS educacional · Full StackConcluídoVersão demonstrativa

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.

Papel
Full Stack Engineering · Arquitetura NestJS + DDD · RBAC matricial e segurança
Período
Operação contínua
Código
Privado
Tipo
Case profissional
Stack
React 18TypeScript 5NestJS 9Node.js 18PostgreSQLPrisma ORMSocket.IOTanStack Query 5CASL Ability (RBAC)JWT · PassportTailwind CSSRadix UI · shadcn/uiReact Hook Form · ZodNestJS Schedule · Event EmitterAzure Cognitive · GCS

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.