🚀 Projeto desenvolvido em 08/2022 - Bloco 28/Trybe
Desenvolver uma API REST tornando-a capaz de ser consumida pelo front-end afim de informar ao usuário sobre as partidas e classificações dos times de futebol.
- Construir a modelagem do banco de dados de acordo com um Diagrama de Entidade-Relacionamento (DER)
- Utilizar o Node, Express e Typescript para o desenvolvimento da API
- Integrar as aplicações de front-end e back-end utilizando docker-compose
- Realizar operações de criar, ler e atualizar os dados no banco de dados com a benção do sequelize
- Tratar erros com o express-async-errors
- Validar os dados recebidos através do Joi
- Gerar e verificar token com o jwt
- Armazenar senhas de maneira segura no banco de dados com o auxílio do bcrypt
- Criar testes de integração utilizando Mocha, Chai e Sinon
- Node js
- MySQL
- Typescript
- Sequelize
- Express
- Docker-compose
- Joi
- Json Web Tokens
- BCrypt
- Mocha, Chai e Sinon
⚡ Todos os projetos da Trybe utilizam Linters, Git e Github
Há requisições prontas no arquivo "requests_project-tfc.har" localizado no diretório "backend", em que você somente precisará importar para a ferramenta desejada, seja insomnia ou postman
Rotas do Login | Descrição | Rotas dos Times | Descrição | |
---|---|---|---|---|
GET /login/validate |
Valida token do usuário | GET /teams |
Lista todos os times | |
POST /login |
Recebe token válido | GET /teams/:id |
Exibe o time específico | |
GET /teams/:id/matches |
Lista todos os times com suas respectivas partidas |
Rotas das Partidas | Descrição | Rotas dos Placares | Descrição | |
---|---|---|---|---|
GET /matches |
Lista todas as partidas | GET /leaderboard |
Lista o placar de todas as partidas dos times | |
GET /matches/?inProgress |
Lista as partidas com o status de progesso escolhido | GET /leaderboard/home |
Lista o placar das partidas do time em casa | |
POST /matches |
Cadastra uma nova partida | GET /leaderboard/away |
Lista o placar das partidas do time fora de casa | |
PATCH /matches/:id |
Atualiza saldo de gols da partida | |||
PATCH /matches/:id/finish |
Finaliza a partida |
- Clone o projeto e entre no diretório
git clone [email protected]:Jacqueline-Silva/trybe-futebol-clube.git && cd trybe-futebol-clube
- Instale as dependências
npm run install:dependecies
- No diretório de backend, renomeie arquivo ".env.example" retirando o ".example" e altere as variáveis de ambiente necessárias conforme docker-compose. Exemplo:
JWT_SECRET=jwt_secret
APP_PORT=3001
DB_USER=seu_user
DB_PASS=sua_senha
DB_HOST=localhost
DB_PORT=3302
- A partir da raiz do projeto, suba os containers docker da aplicação
npm run compose:up
- Abra as aplicações:
Front: Em um navegador, entre no seu localhost
http://localhost:3000/
Back: Para verificar os endpoints utilizados use a ferramenta de sua preferência, por exemplo o Insomnia (como no vídeo)
Há requisições prontas no arquivo "requests_project-tfc.har" localizado no diretório "backend", em que você somente precisará importar para a ferramenta desejada, seja insomnia ou postman
DB: Para visualizar o banco de dados faça a conexão do MySQL com a porta 3002
- Caminho até o diretório de testes (opcional)
./app/backend/src/tests
- Rodando os testes de integração
npm run test
- Verificando a cobertura dos testes
npm run test:coverage
Os arquivos docker-compose, db.example, dockerfile_denylist e apps_install, assim como a aplicação front-end foram disponibilizados pela Trybe para realização deste projeto.