Um portfólio técnico fullstack construído intencionalmente para demonstrar arquitetura moderna, integração com AWS, e domínio de Node.js/React em escala.
┌─────────────────────────────────────────────────────────┐
│ CLIENTE (Browser) │
│ Next.js 16 · App Router · SSR/SSG · CSS Modules │
└──────────────────────┬──────────────────────────────────┘
│ HTTPS
┌──────────────────────▼──────────────────────────────────┐
│ AWS CloudFront (CDN) │
└──────────────────────┬──────────────────────────────────┘
│
┌──────────────────────▼──────────────────────────────────┐
│ NestJS API (apps/api) │
│ Auth · Teams · Players · Articles · Standings │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ MySQL │ │ MongoDB │ │DynamoDB │ │
│ │ (users) │ │(articles)│ │(scores) │ │
│ └──────────┘ └──────────┘ └──────────┘ │
└──────────┬────────────────────────┬────────────────────-┘
│ publica eventos │
┌──────────▼──────────┐ ┌─────────▼─────────────────────┐
│ AWS SQS │ │ AWS SNS │
│ game-events-queue │ │ notificações para usuários │
└──────────┬──────────┘ └────────────────────────────────┘
│ consome
┌──────────▼──────────────────────────────────────────────┐
│ AWS Lambda Workers │
│ score-sync · news-ingestion · notification-dispatch │
│ ↕ ESPN API / RSS Feeds │
└─────────────────────────────────────────────────────────┘
Jogos ao vivo com integração à API da ESPN. Um Lambda worker consome o feed da API a cada 30s, publica via SQS e atualiza o DynamoDB. O frontend faz polling inteligente com cache de edge (CDN) para minimizar latência.
NestJS com arquitetura modular (Module/Service/Repository). Artigos vêm de múltiplas fontes (RSS, API, CMS) e são normalizados e persistidos no MongoDB. Suporta publicação interna por editores.
Camada de educação para fãs iniciantes. Termos explicados em português, com busca full-text e filtros por dificuldade. Uma das diferenciações do produto e argumento de negócio para retenção de usuários.
Usuários se inscrevem em times favoritos. Um Lambda consome eventos de jogo do SQS e publica notificações via SNS para os assinantes, com suporte a WebPush e e-mail.
Autenticação stateless com JWT de curta duração e refresh tokens rotativos armazenados de forma segura. Roles de usuário (fan, editor, admin) controlam acesso à API com Guards do NestJS.
Demonstra a migração gradual de um monolito NestJS para uma arquitetura de microserviços/serverless na AWS. Primeiro os workers independentes migram para Lambda, preservando a API core estável.