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.
Quick start
Using Docker
/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
.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
- 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
- Mude para o diretório
app/backend/
e executenpm start
cd app/backend
npm start
- Em outro terminal, mude para o diretório
app/frontend
e executenpm 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.
Tools
Trybe
- São de total autoria da Trybe:
- Front-end
- Docker-compose
- Regras de Lint
- npm scripts