Este projeto foi desenvolvido durante o Módulo 3 - Back-End do curso de Desenvolvimento Web da Trybe.
Esta aplicação consiste em um site informativo sobre partidas e classificações de futebol. Foi desenvolvida uma API dockerizada e integrada ao front-end através do docker-compose, cuja modelagem de dados foi feita através do Sequelize, utilizando classes e interfaces em Typescript.
A API utiliza a arquitetura MSC (model-service-controller) e permite criar, atualizar e exibir partidas. Algumas rotas possuem validações de dados, incluindo criação e validação de Token através de login. O banco de dados utilizado foi o MySQL, tendo sido explorado o relacionamento entre as tabelas teams e matches.
Também foram desenvolvidos testes de integração utilizando Mocha e sinon-chai.
Arquivos desenvolvidos por mim:
- No diretório backend: todos do diretório src + Dockerfie.
- No diretório front-end: Dockerfile. Os demais foram desenvolvidos pelo time da Trybe.
Método HTTP | Endpoint | Descrição |
---|---|---|
GET | /teams | Lista todos os times cadastrados e suas respectivas ids |
GET | /teams/:id | Lista o time cuja id foi dada como parâmetro |
POST | /login | Realiza o login do usuário validando seu email e senha |
GET | /login/role | Retorna o tipo do usuário logado após validação do token |
GET | /matches | Lista todas partidas cadastradas.Permite filtrar por partidas em andamento ou finalizadas |
PATCH | /matches/:id/finish | Altera o status de uma partida em andamento para finalizada |
PATCH | /matches/:id | Altera o placar de uma partida em andamento |
POST | /matches | Cadastra uma nova partida em andamento |
GET | /leaderboard/home | Lista informações de desempenho de times de casa |
GET | /leaderboard/away | Lista informações de desempenho de times de fora |
Back-End: Docker, docker-compose, SQL, Node.js, Sequelize, JWT, Typescript, Mocha, sinon-chai.
- É necessário possuir o docker instalado em sua máquina
- Clone este repositório em su máquina, e em seguida suba o container:
npm run compose:up
- Serão inicializados três containers (db, app_backend e app_frontend)
- Para executar os scripts do back-end:
docker exec -it app_backend sh
- As credencias de acesso ao banco de dados estão definidas no arquivo docker-compose.yml.
- Agora instale as dependências dentro do container:
npm install