Skip to content

Site informativo sobre partidas e classificações de futebol.

Notifications You must be signed in to change notification settings

layanenu/trybe-futebol-clube

Repository files navigation

Trybe Futebol Clube ⚽

〰️ Sobre

O Trybe Futebol Clube (TFC) é um site informativo sobre partidas e classificações de futebol. Foi um dos projetos avaliativos do módulo de back-end da Trybe.

O Frontent já veio pronto e o objetivo foi desenvolver uma API (utilizando o método TDD) e também integrar - através do docker-compose - as aplicações para que elas funcionem consumindo um banco de dados. A modelagem do banco de dados foi feita através do Sequelize.

No time de desenvolvimento do TFC, seu squad ficou responsável por desenvolver uma API (utilizando o método TDD) e também integrar - através do docker-compose - as aplicações para que elas funcionem consumindo um banco de dados.

Nesse projeto, você vai construir um back-end dockerizado utilizando modelagem de dados através do Sequelize. Seu desenvolvimento deve respeitar regras de negócio providas no projeto e sua API deve ser capaz de ser consumida por um front-end já provido nesse projeto.

Para adicionar uma partida é necessário ter um token, portanto a pessoa deverá estar logada para fazer as alterações. Teremos um relacionamento entre as tabelas teams e matches para fazer as atualizações das partidas.

O seu back-end deverá implementar regras de negócio para popular adequadamente a tabela disponível no front-end que será exibida para a pessoa usuária do sistema.

〰️ Layout

Screen.Recording.2023-03-15.at.07.52.48.mov

Legenda
  • Classificação: posição na classificação;
  • Time: nome do time;
  • P: total de pontos;
  • J: total de jogos;
  • V: total de vitórias;
  • E: total de empates;
  • D: total de derrotas;
  • GP: gols marcados a favor;
  • GC: gols sofridos;
  • SG: saldo total de gols;
  • %: aproveitamento do time.
Stacks
  • Node JS
  • Typescript
  • Express
  • Sequelize
  • MySQL
  • Docker
  • Mocha + Chai + Sinon
Bibliotecas
  • Joi: validação do corpo das requisições
  • JWT: autenticação dos usuários logados
  • bcrypt: hashing e verificação das senhas armazenadas no banco de dados.
🐳 Rodando com o Docker

Obs: O seu docker-compose precisa estar na versão 1.29 ou superior.

Clone o repositório:

git clone git@github.com:layanenu/trybe-futebol-clube.git

Entre no diretório do projeto:

cd trybe-futebol-clube

Entre no diretório app:

cd app

Suba a orquestração de containers:

docker-compose up --build -d

A aplicação poderá ser acessada através de:

Front-end:

localhost:3000

Back-end:

localhost:3001

Credenciais para o login:

Login:

admin@admin.com

Senha:

secret_admin

REQUISITOS

Fluxo 1: Teams (Times) 1 - Desenvolva em /app/backend/src/database nas pastas correspondentes, uma migration e um model para a tabela de times 2 - (TDD) Desenvolva testes que cubram no mínimo 5 por cento dos arquivos em /app/backend/src, com um mínimo de 7 linhas cobertas 3 - Desenvolva o endpoint /teams no back-end de forma que ele possa retornar todos os times corretamente 4 - (TDD) Desenvolva testes que cubram no mínimo 10 por cento dos arquivos em /app/backend/src, com um mínimo de 19 linhas cobertas 5 - Desenvolva o endpoint /teams/:id no back-end de forma que ele possa retornar dados de um time específico

Fluxo 2: Users e Login (Pessoas Usuárias e Credenciais de acesso) 6 - Desenvolva em /app/backend/src/database nas pastas correspondentes, uma migration e um model para a tabela de pessoas usuárias 7 - (TDD) Desenvolva testes que cubram no mínimo 15 por cento dos arquivos em /app/backend/src, com um mínimo de 25 linhas cobertas 8 - Desenvolva o endpoint /login no back-end de maneira que ele permita o acesso com dados válidos no front-end 9 - (TDD) Desenvolva testes que cubram no mínimo 20 por cento dos arquivos em /app/backend/src, com um mínimo de 35 linhas cobertas 10 - Desenvolva o endpoint /login no back-end de maneira que ele não permita o acesso com um email não cadastrado ou senha incorreta no front-end 11 - (TDD) Desenvolva testes que cubram no mínimo 30 por cento dos arquivos em /app/backend/src, com um mínimo de 45 linhas cobertas 12 - Desenvolva um middleware de validação para o token, verificando se ele é válido, e desenvolva o endpoint /login/role no back-end de maneira que ele retorne os dados corretamente no front-end

Fluxo 3: Matches (Partidas) 13 - Desenvolva em /app/backend/src/database nas pastas correspondentes, uma migration e um model para a tabela de partidas 14 - (TDD) Desenvolva testes que cubram no mínimo 45 por cento dos arquivos em /app/backend/src, com um mínimo de 70 linhas cobertas 15 - Desenvolva o endpoint /matches de forma que os dados apareçam corretamente na tela de partidas no front-end 16 - Desenvolva o endpoint /matches de forma que seja possível filtrar somente as partidas em andamento, e também filtrar somente as partidas finalizadas, na tela de partidas do front-end 17 - Desenvolva o endpoint /matches/:id/finish de modo que seja possível finalizar uma partida no banco de dados 18 - Desenvolva o endpoint /matches/:id de forma que seja possível atualizar partidas em andamento 19 - (TDD) Desenvolva testes que cubram no mínimo 60 por cento dos arquivos em /app/backend/src, com um mínimo de 80 linhas cobertas 20 - Desenvolva o endpoint /matches de modo que seja possível cadastrar uma nova partida em andamento no banco de dados 21 - Desenvolva o endpoint /matches de forma que não seja possível inserir uma partida com times iguais nem com um time que não existe na tabela de times

Fluxo 4: Leaderboards (Placares)

About

Site informativo sobre partidas e classificações de futebol.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •