Skip to content

kadu3611/Trybe-Futebol-Clube

Repository files navigation

⚽ Trybe Futebol Clube

O TFC é um site informativo sobre partidas e classificações de futebol!

tfc

📋 Execute o projeto em sua máquina

Clone o repositório:

git clone [email protected]:jpoliveiramateus/trybe-futebol-clube.git
cd trybe-futebol-clube
npm install
⚠️ Configurações mínimas para execução do projeto

Na sua máquina você deve ter:

  • Sistema Operacional Distribuição Unix
  • Node versão 16
  • Docker
  • Docker-compose versão >=1.29.2

➡️ O node deve ter versão igual ou superior à 16.14.0 LTS:

  • Para instalar o nvm, acesse esse link;
  • Rode os comandos abaixo para instalar a versão correta de node e usá-la:
    • nvm install 16.14 --lts
    • nvm use 16.14
    • nvm alias default 16.14

➡️ Odocker-compose deve ter versão igual ou superior àˆ1.29.2:

🐋 Rodando no Docker

ℹ️ Rode os serviços com o comando docker-compose up -d --build.

🔎 Documentação da API

Login

  POST /login 
Parâmetro Tipo Descrição
email string Obrigatório. Seu email.
password string Obrigatório. Sua senha.

Validação de Login

  GET /login/validate
Parâmetro Tipo Descrição
Authorization string Obrigatório. Token do login deve ser passado no header.

Times

  GET /teams
  GET /teams/:id
Parâmetro Tipo Descrição
id string Obrigatório. Id do time deve ser passado pelo parâmetro da URL.

Partidas

  GET /matches
  GET /matches?inProgress=true
  GET /matches?inProgress=false
  POST /matches
Parâmetro Tipo Descrição
homeTeam number Obrigatório. Id do time da casa.
awayTeam number Obrigatório. Id do time visitante.
homeTeamGoals number Obrigatório. Número de gols do time da casa.
awayTeamGoals number Obrigatório. Número de gols do time visitante.
Authorization string Obrigatório. Token do login deve ser passado no header.
  PATCH /matches/:id/finish
Parâmetro Tipo Descrição
id string Obrigatório. Id da partida deve ser passada pelo parâmetro da URL.
  PATCH /matches/:id/
Parâmetro Tipo Descrição
id string Obrigatório. Id da partida deve ser passada pelo parâmetro da URL.
homeTeamGoals number Obrigatório. Número de gols do time da casa.
awayTeamGoals number Obrigatório. Número de gols do time visitante.

Tabela de Classificação

  GET /leaderboard/home
  GET /leaderboard/away
  GET /leaderboard

👨🏻‍💻 Habilidades

  • Realização da dockerização dos apps, network, volume e compose;
  • Modelagem de dados com MySQL através do Sequelize;
  • Criação e associação de tabelas usando models do sequelize;
  • Construção de uma API REST com endpoints para consumir os models criados;
  • Construção de um CRUD com TypeScript, utilizando ORM;
  • Validar dados das requisições com a biblioteca Joi.
  • Implementar testes de integração com Mocha, Chai e Sinon.

🧪 Executando os testes

Entre na pasta do backend cd app/backend

npm run test

npm run test:coverage

🛠️ Ferramentas & Metodologias Utilizadas