Skip to content

Site informativo sobre partidas e classificações de futebol, Back-end dockerizado consumido por um front-end já desenvolvido, com modelagem de dados através do Sequelize.

Notifications You must be signed in to change notification settings

georgia-rocha/TFC-Brazilian-Soccer-Rankings

Repository files navigation

Boas vindas ao repositório do projeto TFC 🚀

O que foi desenvolvido 👩‍🎓

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

Nesse projeto, foi construido um back-end dockerizado que é consumido por um front-end já desenvolvido. com a modelagem de dados através do Sequelize e respeitando as regras de negócio. Esse projeto tem 4 entidades que são importantes para sua estrutura, são elas:

  • Banco de Dados;
  • Back-End;
  • Front-End;
  • Docker;

Exemplo app front

Tecnologias utilizadas

Orientações

⚠️ 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

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

🔰 Iniciando o projeto
  1. Clone o repositório
  1. Entre na pasta do repositório que você acabou de clonar:
  • cd TFC-Brazilian-Soccer-Rankings
  1. Instale as dependências (Isso ja ira instalar tanto o front quanto o backend).
  • npm install
  1. Execute o docker compose.
  • npm run compose:up
  • Obs: São utilizas as portas 3306, 3001 e 3000 , certifique-se que elas estão disponíveis no momento de executar o comando.
  1. Para acessar.

Testes Integração Back-end

🛠 Execução de testes localmente

Para executar os testes localmente, basta executar o comando npm run test:coverage.

Você verá a lista de testes aprovados e a tabela de cobertura deles.

Requisitos Obrigatórios 100%

Fluxo 1

  • 1- Desenvolvi em /app/backend/src/database nas pastas correspondentes, uma migration e um model para a tabela de times;
  • 2- Desenvolvi o endpoint /teams no back-end de forma que ele retorna todos os times corretamente;
  • 3- Desenvolvi o endpoint /teams/:id no back-end de forma que ele retorna dados de um time específico;

Fluxo 2

  • 1- Desenvolvi em /app/backend/src/database nas pastas correspondentes, uma migration e um model para a tabela de pessoas usuárias;
  • 2- Desenvolvi o endpoint /login no back-end de maneira que ele permite o acesso com dados válidos no front-end;
  • 3- Desenvolvi o endpoint /login no back-end de maneira que ele não permite o acesso com um email não cadastrado ou senha incorreta no front-end;
  • 4- Desenvolvi um middleware de validação para o token, verificando se ele é válido, e desenvolvi o endpoint /login/role no back-end de maneira que ele retorna os dados corretamente no front-end;

Fluxo 3

  • 1- Desenvolvi em /app/backend/src/database nas pastas correspondentes, uma migration e um model para a tabela de partidas;
  • 2- Desenvolvi o endpoint /matches de forma que os dados aparecem corretamente na tela de partidas no front-end;
  • 3- Desenvolvi o endpoint /matches de forma que é possível filtrar somente as partidas em andamento, e também filtrar somente as partidas finalizadas, na tela de partidas do front-end;
  • 4- Desenvolvi o endpoint /matches/:id/finish de modo que é possível finalizar uma partida no banco de dados;
  • 5- Desenvolvi o endpoint /matches/:id de forma que é possível atualizar partidas em andamento;
  • 6- Desenvolvi o endpoint /matches de modo que é possível cadastrar uma nova partida em andamento no banco de dados;
  • 7- Desenvolvi o endpoint /matches de forma que não é possível inserir uma partida com times iguais nem com um time que não existe na tabela de times;

Fluxo 4

  • 1- Desenvolvi o endpoint /leaderboard/home de forma que retorna as informações do desempenho dos times da casa com as seguintes propriedades: name, totalPoints, totalGames, totalVictories, totalDraws, totalLosses, goalsFavor e goalsOwn;
  • 2- Desenvolvi o endpoint /leaderboard/home de forma que é possível filtrar as classificações dos times da casa na tela de classificação do front-end com os dados iniciais do banco de dados, incluindo as propriedades goalsBalance e efficiency, além das propriedades do requisito anterior;
  • 3- Desenvolvi o endpoint /leaderboard/home de forma que é possível filtrar as classificações dos times da casa na tela de classificação do front-end, e atualizar a tabela ao inserir a partida Corinthians 2 X 1 Internacional;
  • 4- Desenvolvi o endpoint /leaderboard/away de forma que retorna as informações do desempenho dos times visitantes com as seguintes propriedades: name, totalPoints, totalGames, totalVictories, totalDraws, totalLosses, goalsFavor e goalsOwn;
  • 5- Desenvolvi o endpoint /leaderboard/away, de forma que é possível filtrar as classificações dos times quando visitantes na tela de classificação do front-end, com os dados iniciais do banco de dados, incluindo as propriedades goalsBalance e efficiency, além das propriedades do requisito anterior;
  • 6- Desenvolvi o endpoint /leaderboard/away de forma que é possível filtrar as classificações dos times quando visitantes na tela de classificação do front-end e atualizar a tabela ao inserir a partida Corinthians 2 X 1 Internacional;

Desenvolvi testes que cobrem no mínimo 80 por cento dos arquivos em /app/backend/src e contém mais de 100 linhas cobertas.

About

Site informativo sobre partidas e classificações de futebol, Back-end dockerizado consumido por um front-end já desenvolvido, com modelagem de dados através do Sequelize.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published