Repositório Acadêmico CECAPE
Sistema de gestão acadêmica completo, da arquitetura ao deploy.

Project Overview
A Biblioteca CECAPE é o sistema central de gestão acadêmica da Faculdade CECAPE — responsável por publicações, simuladores ENEM, calculadoras e autenticação institucional. Nasceu como um CRUD simples e cresceu para um ecossistema completo com Domain-Driven Design, infraestrutura AWS e Full-Text Search nativo.
Goals
100/100 no Google PageSpeed Insights para garantir acesso a alunos com internet precária no interior do Ceará
Arquitetura para crescer de 3 para 10+ domains sem regressão entre contextos
Infraestrutura AWS segura sem ponto único de falha
Full-Text Search performático sem Elasticsearch
Side effects desacoplados da lógica principal via EventBus assíncrono
The Problem
Sistemas legados separados sem padrão arquitetural. O escopo cresceu de 3 para 6+ models antes da primeira entrega, expondo a fragilidade do MVC tradicional — qualquer mudança causava regressão em contextos não relacionados.
Research & Discovery
Estudei DDD de Eric Evans aplicado a sistemas educacionais. A principal descoberta: o maior problema era de linguagem — equipe pedagógica e técnica usavam os mesmos termos com significados diferentes. Bounded contexts resolveram isso com vocabulários explícitos por domínio.
Design Decisions
DDD com bounded contexts independentes: auth, publications, academic, metadata
EventBus tipado: PUBLICATION_CREATED dispara auditoria, indexação e estatísticas assincronamente
tsvector + índice GIN no PostgreSQL — Full-Text Search sem Elasticsearch
VPC com subnets privadas, RDS sem IP público, App Runner + IAM least privilege
Next.js Server Components — LCP de 0,8s em produção
Key Challenges
Escopo 3 → 6+ models: bounded contexts permitiram crescimento sem regressão
Queries tsvector customizadas com Prisma — o ORM não suporta isso nativamente, exigiu $queryRaw
Múltiplos subscribers assíncronos no EventBus sem race conditions
PageSpeed 100/100 com SSR, imagens otimizadas e code splitting agressivo
Outcomes & Reflection
100/100 PageSpeed com LCP 0,8s e TBT 30ms. EventBus reduziu tempo de resposta da API em ~40%. Decisão mais importante: definir bounded contexts antes de escrever código — evitou meses de refatoração.