

O Trybe Futebol Clube é um site informativo que fornece informações sobre partidas e classificações de futebol. Durante o desenvolvimento, foi criada uma API que se comunica com o front-end, permitindo adicionar uma partida após a validação de um token.
Trybe Futebol Clube é um projeto que fornece informações sobre um campeonato de futebol. Ele inclui um front-end pré-disponibilizado que permite realizar login e gerar um token.
A API é capaz de acessar o banco de dados e retornar informações sobre todos os times, ou somente um time específico por meio do seu ID. Além disso, ela retorna informações sobre todas as partidas ou apenas as partidas em andamento ou finalizadas. A API possui endpoints para criar partidas em andamento, atualizar o placar e o status de progresso, e filtrar a classificação geral do campeonato, bem como a classificação dos times jogando em casa ou como visitantes.
Para criar a aplicação, foi utilizado o docker para criar três containers, sendo dois para o ambiente preparado para o node.js (um para o front-end e outro para o back-end) e um terceiro para o banco de dados postgreSQL. A aplicação foi escrita com o typescript e o express.js para gerenciar rotas, tratar requisições HTTP e definir middlewares. O JWT foi usado para autenticar o token durante as requisições, e a biblioteca sequelize foi utilizada como ORM para abstrair operações do postgreSQL.
Para a implementação de testes de integração, foram utilizadas as bibliotecas mocha, chai e sinon, com uma cobertura de testes de aproximadamente 90% da aplicação back-end.
- Docker
- Node.js
- Typescript
- Express.js
- JWT
- PostgreSQL
- Sequelize
- Mocha
- Chai
- Sinon
git clone git@github.com:h3zord/trybe-futebol-clube.git
cd trybe-futebol-clube/app
docker compose up -d --build
O container app_frontend vai executar o node na porta 3000, o container app_backend na porta 3001 e o banco de dados na porta 5432.
➜ http://localhost:3000/
➜ http://localhost:3001/
- /login ➜ Realiza o login com email e senha e em seguida gera um token.
- /login/validate ➜ Verifica qual é o tipo de usuário.
- /teams ➜ Lista todos os times.
- /teams/:id ➜ Busca uma time pelo seu ID.
- /matches ➜ Cadastrar uma nova partida.
- /matches ➜ Lista todas as partidas, apenas as finalizadas ou que estão em andamento.
- /matches/:id/finish ➜ Atualiza o status de uma partida em andamento para finalizada.
- /matches/:id ➜ Atualiza o placar da partida.
- /leaderboard ➜ Lista a classificação geral do campeonato.
- /leaderboard/home ➜ Lista a classificação dos times como mandante no campeonato.
- /leaderboard/away ➜ Lista a classificação dos times como visitante no campeonato.
docker exec -it app_backend sh
npm run test:coverage

Leave a Reply