Visão de Implementação
A visão de implementação descreve como o código do AnatoQuizUp está organizado nos repositórios. Ela apresenta a estrutura de pastas, os principais módulos e os padrões usados para manter frontend, backend e documentação organizados.
Repositórios
| Repositório |
Responsabilidade |
2026-1-AnatoQuizUp-Web |
Aplicação frontend web. |
2026-1-AnatoQuizUp-BFF |
Backend-For-Frontend: ponto de entrada público; valida JWT; injeta token interno; orquestra Backend e AI. |
2026-1-AnatoQuizUp-Backend |
Regras de negócio, autenticação e persistência (privado em produção). Anteriormente chamado -API. |
2026-1-AnatoQuizUp-AI |
Serviço de IA (reservado para semestres futuros; sem código nesta release). |
2026-1-AnatoQuizUp-Doc |
Documentação do projeto em MkDocs. |
Frontend
O frontend é organizado com base no Feature-Sliced Design. A estrutura separa inicialização da aplicação, páginas, widgets, features, entidades de domínio e recursos compartilhados.
2026-1-AnatoQuizUp-Web/
|-- public/
|-- src/
| |-- app/
| |-- pages/
| |-- widgets/
| |-- features/
| |-- entities/
| |-- shared/
| |-- main.tsx
| `-- setupTests.ts
|-- index.html
|-- vite.config.ts
|-- jest.config.cjs
|-- eslint.config.js
`-- package.json
| Pasta |
Papel na implementação |
src/app/ |
Configuração global, providers, rotas, layouts e estilos globais. |
src/pages/ |
Páginas acessadas por rota. |
src/widgets/ |
Blocos estruturais de interface, como header e layouts. |
src/features/ |
Funcionalidades orientadas ao usuário. |
src/entities/ |
Modelos e tipos centrais do domínio. |
src/shared/ |
Componentes genéricos, cliente HTTP, assets, configurações e utilitários. |
BFF
O BFF é um repositório separado que atua como ponto de entrada público da plataforma. É um proxy 100% orquestração: valida JWT, injeta o token interno e roteia por path para Backend ou AI.
2026-1-AnatoQuizUp-BFF/
|-- src/
| |-- config/
| | |-- app.ts
| | |-- cors.ts
| | |-- env.ts
| | `-- logger.ts
| |-- routes/
| | |-- admin.routes.ts
| | |-- auth.routes.ts
| | |-- exemplos.routes.ts
| | |-- ia.routes.ts
| | `-- index.ts
| |-- shared/
| | |-- clients/ (backend.client, ai.client)
| | |-- constants/
| | |-- errors/
| | |-- middlewares/ (autenticacao, proxy, tratamento-erros)
| | |-- types/
| | `-- utils/
| `-- server.ts
|-- tests/
|-- Dockerfile
|-- eslint.config.js
|-- jest.config.cjs
|-- tsconfig.json
`-- package.json
| Pasta |
Papel na implementação |
src/config/ |
Variáveis de ambiente (Zod), montagem do Express, CORS, logger. |
src/routes/ |
Roteadores por prefixo, com regras de auth pública/privada e despacho ao cliente HTTP correto. |
src/shared/clients/ |
Instâncias Axios para Backend e AI. |
src/shared/middlewares/ |
Validação de JWT, proxy genérico, tratamento de erros. |
Backend
O backend usa uma estrutura modular. Cada módulo de domínio deve agrupar rotas, validações, controllers, services, repositories, DTOs e testes.
2026-1-AnatoQuizUp-Backend/
|-- prisma/
| |-- migrations/
| |-- schema.prisma
| `-- seed.ts
|-- src/
| |-- config/
| |-- modules/
| |-- shared/
| `-- server.ts
|-- tests/
|-- docker-compose.yml
|-- Dockerfile
|-- eslint.config.js
|-- tsconfig.json
`-- package.json
| Pasta |
Papel na implementação |
prisma/ |
Schema, migrations e seed do banco de dados. |
src/config/ |
Configuração da aplicação, ambiente, banco, logger e montagem do Express. |
src/modules/ |
Módulos de domínio da API. |
src/shared/ |
Código compartilhado entre módulos, como erros, middlewares (incluindo token-interno.middleware.ts), tipos, constantes e utilitários. |
tests/ |
Testes de aplicação e testes e2e. |
Histórico de Versão
| Data |
Versão |
Descrição |
Autor(es) |
| 27/04/2026 |
1.0 |
Criação da visão de implementação com estrutura dos repositórios e padrões de módulos |
Breno Fernandes |
| 05/05/2026 |
1.1 |
Inclusão do repositório BFF e renomeação -API → -Backend (PRD: Migração para Arquitetura com BFF) |
Miguel Moreira |