Skip to content

A partir de uma aplicação Front-End desenvolvida pela Trybe, foi desenvolvido um API para prover as informações necessárias para um site informativo sobre partidas e classificações de futebol!

Notifications You must be signed in to change notification settings

JoaoAlberto20/trybe-futebol-fc

Repository files navigation

Status: Concluído

SobreDiferencialInstruçõesDemostraçãoEnd PointsLicense


💻 Sobre:

A partir de uma aplicação Front-End desenvolvida pela Trybe, foi desenvolvido um API para prover as informações necessárias para um site informativo sobre partidas e classificações de futebol!

  • Construída com Node.js, Express, Typescript, MySQL, Sequelize e Docker
  • Utilizando os princípios SOLID e Programação Orientada a Objetos
  • Aplicando Arquitetura de Software, com as camadas de Modelo, Serviço e de Controladores
  • Testes de Integração criadas utilizando Mocha, Chai, ChaiHTTP e Sinon


Qual é o diferencial deste código Diferencial

Essa é a minha Obra Prima, me dediquei muito a construir o front-end, e ele foi feito com perfeição, usando um único handler de erro capaz de administrar erros de vários tipos, foi feito completamente em Typescript pensando em escalabilidade, todo código é extremamente legível e resumido, todas as funções são bem framentadas por necessidade, toda estrutura do Back-end feita em MSC é pensada para o código principal só rodar depois de todas as validações passarem, de fato, uma obra de arte.



🚀 Como executar o projeto.


Este projeto é divido em duas partes:

  1. Backend (API)
  2. Frontend

💡O Backend deve estar rodando em sua máquina para que o frontend seja renderizado


Pré-requisitos


Antes de começar, você vai precisar ter instalado em sua máquina as seguintes ferramentas: [Git](https://git-scm.com), [Node.js](https://nodejs.org/en/). Além disto é bom ter um editor para trabalhar com o código como [VSCode](https://code.visualstudio.com/)

🎲 Rodando o Back End (servidor)


# Clone este repositório

# Acesse o terminal do seu sistema operacional e escolha uma pasta de sua preferencia
# cole o comando abaixo no terminal
$ git clone git@github.com:JoaoAlberto20/trybe-futebol-fc.git


# Entre na pasta clonada com seguinte comando
$ cd trybe-futebol-fc

# Rodando a aplicação com DOCKER em modo de Desenvolvimento:
$ npm run compose:up:dev
$ npm run compose:down:dev # para parar completamente a aplicação

# Ronde a aplicação com DOCKER em Produção:
$ npm run compose:up
$ npm run compose:down  # para parar completamente a aplicação

# Rodando os teste:
$ cd app/backend
$ npm run test:

# O servidor inciará na porta:3001 - acesse <  http://localhost:3001 >

#### 🎲 Rodando a aplicação (Frontend)
# Para acessar o frontend basta acessar o seu localhost na url
# O servidor inciará na porta:3000 - acesse <  http://localhost:3000/ >


🎨 Demostração


Trybe Futebol Clube - Demostração


🎲 Endpoints do Back-End

Login

Método Funcionalidade URL
POST Realiza o login do usuário http://localhost:3001/login
GET Avalia se o usuário é o administrador http://localhost:3001/login/validate

Nessa requisição POST é necessário informar o seguinte JSON:

{
  "email": "Nome do Usuário",
  "password": "senha_secreta"
}

Times

Método Funcionalidade URL
GET Retorna todos os times cadastrados http://localhost:3001/teams
GET Retorna um time específico http://localhost:3001/teams/:id

Partidas

Método Funcionalidade URL
GET Retorna todos as partidas cadastradas http://localhost:3001/matches
GET Retorna todos as partidas cadastradas em progresso http://localhost:3001/matches?inProgress=true
GET Retorna todos as partidas cadastradas finalizadas http://localhost:3001/matches?inProgress=false
POST Criação de uma nova partida http://localhost:3001/matches
PATCH Atualiza a chave 'inProgress' para finalidado de uma partida específica http://localhost:3001/matches/:id/finish
PATCH Atualiza os gols de uma partida específica http://localhost:3001/matches/:id

Nessa requisição POST é necessário informar o seguinte JSON:

{
  "homeTeam": 16, // O valor deve ser o id do time
  "awayTeam": 8, // O valor deve ser o id do time
  "homeTeamGoals": 2,
  "awayTeamGoals": 2,
  "inProgress": true
}

e na requisição PATCH para atualizar os gols realizados é necessário informar o seguinte JSON:

{
  "homeTeamGoals": 3,
  "awayTeamGoals": 1
}

Placar

Método Funcionalidade URL
GET Retorna a classificação geral dos times http://localhost:3001/leaderboard
GET Retorna a classificação dos times mandantes http://localhost:3001/leaderboard/home
GET Retorna a classificação dos times visitantes http://localhost:3001/leaderboard/away

📝 License

This project is under the license MIT.

Made with ❤️ by João Alberto Get in Touch!


About

A partir de uma aplicação Front-End desenvolvida pela Trybe, foi desenvolvido um API para prover as informações necessárias para um site informativo sobre partidas e classificações de futebol!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages