/trybe-futebol-club

Website que provê ao usuário o serviço de leitura, e se caso autenticado, possibilidade de criar, atualizar e remover times e partidas de futebol. De acordo com o desempenho dos times, uma tabela de classificação é gerada através de critérios previamente estabelecidos

Primary LanguageTypeScript

Trybe Futebol Club

A aplicação consiste em um website completo que provê ao usuário o serviço de leitura, e se caso autenticado, possibilidade de criar, atualizar e remover times e partidas de futebol. De acordo com o desempenho dos times, uma tabela de classificação é gerada através de critérios previamente estabelecidos.

O desenvolvimento do back-end teve como objetivo consolidar meus conhecimentos sobre TypeScript, Programação Orientada a Objetos (POO), e princípios SOLID, sendo utilizado Express seguindo os princípios REST e arquitetura MSC (Model, Service, Controller).

O front-end foi desenvolvido pela Trybe com intuito de apenas exibir as informações processadas pelo back-end, assim como os arquivos de orquestração do docker, exceto os Dockerfile, que foram de minha autoria.

⚠️ É recomendado utilização do Docker para rodar a aplicação.

⚠️ Usa localStorage do browser para autenticação de usuário.

Quick start

Using Docker

⚠️ É possível alterar as variáveis de ambiente relacionadas aos containers no diretório /trybe-futebol-club/app/docker-compose.yml

⚠️ npm run compose:up deve ser executado na raíz projeto!

Clone o repositório, mude para a pasta raíz do projeto e suba os containers:

git clone git@github.com:pennaor/trybe-futebol-club.git
cd trybe-futebol-club
npm run compose:up

Without Docker

⚠️ MySQL deve estar sendo executado para o funcionamento da aplicação

⚠️ A versão do Node usada deve ser 16 LTS

⚠️ É possível alterar as variáveis de ambiente em um arquivo .env que deve ser criado nos diretórios dos respectivos segmentos da aplicação de acordo com .env.example do segmento:

  • /trybe-futebol-club/app/frontend/.env
  • /trybe-futebol-club/app/backend/.env
  1. Clone o repositório, mude para a pasta raíz do projeto e instale as depedências do front-end e back-end:
git clone git@github.com:pennaor/trybe-futebol-club.git
cd trybe-futebol-club
npm run postinstall
  1. Mude para o diretório app/backend/ e execute npm start
cd app/backend
npm start
  1. Em outro terminal, mude para o diretório app/frontend e execute npm start
cd app/frontend
npm start
Features
  • Buscar clubes cadastrados
  • Buscar partidas em andamento e partidas finalizadas
  • Autenticar usuários cadastrados através do login
  • Cadastrar partidas em andamento e atualizar o placar conforme necessidade
  • Finalizar partida em andamento
  • Criar tabela de classificação dos times ordenada de acordo com desempenho calculado por critérios avaliativos previamente estabelecidos nas modalidades: home, away, all.
Tests

O back-end foi coberto por testes de integração desenvolvidos sob o princípio Test Driven Development (TDD) com as bibliotecas: Mocha, Chai, Sinon.

Os testes podem ser executados com o comando npm test configurado no diretório do back-end.

⚠️ Utilizando Docker, é necessário que o comando seja executado no container do back-end!

Tools
Trybe
  • São de total autoria da Trybe:
    • Front-end
    • Docker-compose
    • Regras de Lint
    • npm scripts