Esse repositório contém um projeto prático desenvolvido durante o curso de Desenvolvimento de Software da Trybe. O objetivo do projeto é desenvolver um sistema para gerenciamento de um time de futebol, utilizando conceitos de Programação Orientada a Objetos (POO) e SOLID.
O Trybe Futebol Clube é um sistema para gerenciamento de um time de futebol, onde é possível cadastrar jogadores, criar partidas, definir escalações, gerar relatórios e estatísticas, entre outras funcionalidades.
O projeto foi desenvolvido com o objetivo de aplicar os conceitos de Programação Orientada a Objetos (POO) e SOLID, visando uma arquitetura bem estruturada e fácil de manter.
O Trybe Futebol Clube possui as seguintes funcionalidades:
- Cadastrar jogadores e suas informações
- Criar partidas e definir escalações
- Gerar relatórios e estatísticas do time e dos jogadores
- Visualizar o histórico de partidas e resultados
- Calcular a pontuação do time em um campeonato
Estrutura do projeto
O projeto é composto de 4 entidades importantes para sua estrutura:
1️⃣ Banco de dados:
- Tem o papel de fornecer dados para o serviço de backend.
- Durante a execução dos testes sempre vai ser acessado pelo
sequelize
e via porta3002
dolocalhost
; - Você também pode conectar a um Cliente MySQL (Workbench, Beekeeper, DBeaver e etc), colocando as credenciais configuradas no docker-compose no serviço
db
.
2️⃣ Back-end:
- Deve rodar na porta
3001
, pois o front-end faz requisições para ele nessa porta por padrão; - Sua aplicação deve ser inicializada a partir do arquivo
app/backend/src/server.ts
; - Garanta que o
express
é executado e a aplicação ouve a porta que vem das variáveis de ambiente; - Todas as dependências extras (tal como
joi
,boom
,express-async-errors
...) devem ser listadas emapp/backend/packages.npm
.
3️⃣ Front-end:
- O front se comunica com serviço de back-end pela url
http://localhost:3001
através dos endpoints que você deve construir nos requisitos.
4️⃣ Docker:
- O
docker-compose
tem a responsabilidade de unir todos os serviços conteinerizados (backend, frontend e db) e subir o projeto completo com o comandonpm run compose:up
;