Skip to content

API para campeonatos de futebol desenvolvida com NODE.js e Typescript, utilizando Express, JWT, Sequelize, MySQL, Mocha, Chai e Sinon

Notifications You must be signed in to change notification settings

Leo02452/trybe-futebol-clube

Repository files navigation

Trybe Futebol Clube

Índice

📄 Descrição

Esse projeto foi desenvolvido durante o módulo de backend na Trybe. A aplicação é um site informativo sobre partidas e classificações de futebol. Com o frontend já pronto e disponibilizado pela Trybe, o desafio foi construir um backend dockerizado utilizando NODE.js e Typescript que respeitasse as regras de negócio providas no projeto.

Além disso, o desafio foi criar essa API com POO e com os princípios de SOLID.

O projeto original foi entregue, mas entendendo que há espaço para melhorias, coloquei na seção de próximos passos tarefas extras que quero implementar.

🚧 Próximos passos

Ver mais
  • Criar uma documentação Swagger para a API.
  • Refatorar o backend utilizando o padrão de repository (que já foi usado na rota de login)
  • Terminar os testes para cobrir 100% da aplicação (cobertura atualmente em 80%)

💡 Habilidades desenvolvidas

Ver mais
  • Criar um dockerfile para o frontend

  • Criar um dockerfile para o backend

  • Utilizar POO

  • Utilizar SOLID

  • Fazer testes de integração

  • Estabelecer comunicação entre backend e frontend

  • Autenticar rotas com JWT

✨ Funcionalidades

Ver mais

✔️ Fazer login

✔️ Validar login

✔️ Listar todos os times

✔️ Listar apenas um time

✔️ Criar uma partida

✔️ Finalizar uma partida

✔️ Filtrar partidas finalizadas

✔️ Listar classificação dos times mandantes

✔️ Listar classificação dos times visitantes

✔️ Listar classificação geral

🛠️ Ferramentas

Ver mais
  • NODE.js
  • Typescript
  • Express para criar a API
  • Express-async-errors para capturar erros
  • Eslint para padronizar o código e evitar code-smells
  • Nodemon para monitorar a aplicação em tempo real durante o desenvolvimento
  • JWT para autenticação de rotas
  • Bcrypt para criptografar e validar senha de usuários
  • Joi para validar dados vindos de requisições
  • Dotenv para usar variáveis de ambiente
  • Mocha, Chai e Sinon para testar a aplicação
  • Istanbul para medir a cobertura de testes da aplicação
  • Sequelize para mapear o banco de dados
  • MySQL para banco de dados

💻 Como usar a aplicação

Pré-requisitos

Antes de começar, você vai precisar ter instalado em sua máquina as seguintes ferramentas:

Instale as dependências 1 - Clone esse repositório para sua máquina com o seguinte comando:
 git clone git@github.com:Leo02452/trybe-futebol-clube.git

2 - Entre na pasta criada:

 cd trybe-futebol-clube

3 - Instale as dependências:

 npm install
Rodando a aplicação localmente 4 - Entre na pasta do backend e inicie a aplicação:
 cd app/backend && npm start

5 - Em um novo terminal, entre na pasta do frontend e inicie a aplicação:

 cd app/frontend && npm start
Rodando a aplicação via docker

Antes de começar, você vai precisar ter instalado em sua máquina, além de NODE e Git, as seguintes ferramentas:

4 - Inicie a aplicação no terminal:

 npm run compose:up:dev

Se não abrir uma página no navegador automáticamente, acesse o endereço localhost:3000/

Outros scripts da aplicação (backend)
  • npm run build para buildar a aplicação
  • npm run db:reset para deletar, re-criar, fazer a migração e alimentação do banco de dados
  • npm run dev para rodar a aplicação com Nodemon e atualizá-la automaticamente após alteração de qualquer arquivo dentro da pasta src;
  • npm run test para rodar todos os testes;
  • npm run test:coverage para rodar todos os testes e gerar o relatório de cobertura na tela do terminal;
  • npm run test:coverage:json para rodar todos os testes e gerar o relatório de cobertura em json, acessível na pasta /coverage;
  • npm run lint para rodar o ESLint;

📝 Autor

Desenvolvido por Leonardo Araujo

Email: leonardo_02452@hotmail.com

Github: https://github.com/Leo02452

LinkedIn: https://www.linkedin.com/in/leo02452/