O TFC é um site informativo sobre partidas e classificações de futebol!
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
:
- Use esse link de referência para realizar a instalação corretamente no ubuntu;
- Acesse o link da documentação oficial com passos para desinstalar caso necessário.
🐋 Rodando no Docker
ℹ️ Rode os serviços com o comando
docker-compose up -d --build
.
POST /login
Parâmetro | Tipo | Descrição |
---|---|---|
email |
string |
Obrigatório. Seu email. |
password |
string |
Obrigatório. Sua senha. |
GET /login/validate
Parâmetro | Tipo | Descrição |
---|---|---|
Authorization |
string |
Obrigatório. Token do login deve ser passado no header. |
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. |
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. |
GET /leaderboard/home
GET /leaderboard/away
GET /leaderboard
- 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.
Entre na pasta do backend cd app/backend
npm run test
Testes de cobertura:
npm run test:coverage
- Node.js;
- Express.js;
- MySQL;
- mysql2;
- Sequelize(ORM);
- JWT(Autenticação);
- bcrypt.js;
- Joi;
- Docker;
- TypeScript;
- Mocha;
- Chai;
- Sinon.js;
⌨️ desenvolvido por João Pedro Oliveira 😄