How viniciuslima30/teammanager works
Basketball Team API é uma API REST para cadastro e autenticação de usuários e gestão de times e escalações. O fluxo principal parte de uma requisição HTTP, passa pelas rotas e controladores, aplica regras de negócio nos serviços e persiste dados pelos repositórios com Prisma. Os estágios de escalação incluem criar, editar, mover e remover jogadores, além de substituir titular por reserva atomicamente. O README documenta também rotação de refresh tokens, autenticação JWT e limites de elenco; serviços e repositórios não amostrados foram incluídos com base nessa arquitetura documentada.
Main entry points: team.routes.js Rotas de times · prisma.js Cliente Prisma · app.js Aplicação Express · auth.routes.js Rotas de autenticação
Components 22
HTTP e segurança
- Aplicação Express
src/app.js - Autenticação JWT
src/middlewares/authenticate.js - Validação de entrada
src/middlewares/validate.js - Tratamento de erros
src/middlewares/errorHandler.js
Identidade
- Rotas de autenticação
src/modules/auth/auth.routes.js - Controlador de autenticação
src/modules/auth/auth.controller.js - Serviço de autenticação
src/modules/auth/auth.service.js
Times e escalação
- Rotas de times
src/modules/teams/team.routes.js - Controlador de times
src/modules/teams/team.controller.js - Serviço de times
src/modules/teams/team.service.js - Rotas de jogadores
src/modules/players/player.routes.js - Controlador de jogadores
src/modules/players/player.controller.js - Serviço de escalação
src/modules/players/player.service.js - Montagem da escalação
src/utils/lineup.js
Persistência
- Repositório de usuários
src/modules/auth/user.repository.js - Repositório de tokens
src/modules/auth/refreshToken.repository.js - Repositório de times
src/modules/teams/team.repository.js - Repositório de jogadores
src/modules/players/player.repository.js - Cliente Prisma
src/config/prisma.js - Modelo de dados
prisma/schema.prisma - PostgreSQL
Other components
- Cliente API
Connections 28
- Cliente API → Aplicação Express: envia requisições
- Aplicação Express → Rotas de autenticação: monta rotas
- Aplicação Express → Rotas de times: monta rotas
- Aplicação Express → Cliente Prisma: consulta saúde
- Aplicação Express → Tratamento de erros: encaminha erros
- Rotas de autenticação → Validação de entrada: valida entrada
- Rotas de autenticação → Autenticação JWT: protege perfil
- Rotas de autenticação → Controlador de autenticação: despacha
- Controlador de autenticação → Serviço de autenticação: executa operações
- Serviço de autenticação → Repositório de usuários: consulta usuários
- Serviço de autenticação → Repositório de tokens: rotaciona tokens
- Rotas de times → Autenticação JWT: protege rotas
- Rotas de times → Validação de entrada: valida entrada
- Rotas de times → Controlador de times: despacha
- Controlador de times → Serviço de times: executa operações
- Serviço de times → Repositório de times: acessa times
- Rotas de times → Rotas de jogadores: monta rotas
- Rotas de times → Controlador de jogadores: despacha substituição
- Rotas de jogadores → Validação de entrada: valida entrada
- Rotas de jogadores → Controlador de jogadores: despacha
- Controlador de jogadores → Serviço de escalação: executa operações
- Serviço de escalação → Repositório de jogadores: acessa jogadores
- Serviço de escalação → Montagem da escalação: monta resultado
- Repositório de usuários → Cliente Prisma: consulta e grava
- Repositório de tokens → Cliente Prisma: consulta e grava
- Repositório de times → Cliente Prisma: consulta e grava
- Repositório de jogadores → Cliente Prisma: consulta e grava
- Cliente Prisma → PostgreSQL: lê e grava