Projeto de backend desenvolvido durante o curso da Trybe para alimentar uma aplicação de gerenciamento da tabela de classificação de um campeonato de futebol. Consiste numa API restful com CRUD no MySql, integrados via Docker compose, e desenvolvida sob as diretivas de SOLID.
- NodeJs
- Typescript
- Express
- Sequelize
- Mocha - Chai - Sinon
- Docker
- SQL (MySql)
- JWT
- Criar a rota para cadastro de usuários
- Criar a rota para gerenciamento dos times participantes.
- Atingir 100% de cobertura nos testes.
-
Clone o repositório e entre na pasta do projeto
-
Execute o script de desenvolvimento:
npm run compose:up:dev
- Entre no bash do container:
docker exec -it app_backend sh
- Instale as dependências, caso existam:
npm install
- Executa o Docker Compose em modo dev (nodemon integrado):
npm run compose:up:dev
- Limpa os containers:
npm run compose:down:dev
[POST] /login
-
Efetua o login e recebe o token do usuário.
- Dados devem estar no corpo da requisição, no formato Json:
{ "email": "user@user.com", "password": "secret_user" }
[GET] /teams
- Listar os times cadastrados
[GET] /matches
- Listar as partidas cadastradas
[POST] /matches
-
Criar uma nova partida
- Dados devem estar no corpo da requisição, no formato Json:
{ "homeTeam": 16, // O valor deve ser o id do time "awayTeam": 8, // O valor deve ser o id do time "homeTeamGoals": 2, "awayTeamGoals": 2, "inProgress": true }
[PATCH] /matches/:id
-
Atualizar uma partida pelo seu id
-
Dados devem estar no corpo da requisição, no formato Json:
{ "homeTeamGoals": 3, "awayTeamGoals": 1 }
[PATCH] /matches/:id/finish
- Finaliza uma partida a partir de seu id.
[GET] /leaderboard
- Listar a classificação dos times. Os critérios são baseados nos pontos, número de vitórias, saldo de gols e gols a favor.