Skip to content

Projeto pessoal fullstack para gerenciar times de futsal. Este é o repositório de backend

Notifications You must be signed in to change notification settings

Leo02452/futsal-manager-backend

Repository files navigation

Futsal Manager

Índice

📄 Descrição

Esse é um projeto pessoal que ainda está em desenvolvimento e utiliza NODE.js e Typescript para o backend. Mais informações sobre tecnologias podem ser vistas na parte de Ferramentas.

Ao criar uma conta na aplicação, o usuário poderá registrar seu time e seus jogadores. Com isso feito, poderá registrar suas partidas, os eventos que acontecem nela, como gol e falta e quem foram os responsáveis por cada evento e os jogadores presentes em cada uma dessas partidas.

Esse projeto surgiu de uma vontade de modernizar as pranchetas e os cadernos usados em partidas de futsal e futebol amador. Digitalizar essas informações significa não só praticidade, mas também a possibilidade de uma análise mais completa sobre o desempenho do seu time e seus jogadores.

🚧 Próximos passos

O projeto segue o modelo MVP (produto viável mínimo) com auxílio da metodologia ágil Scrum e aqui está o que falta para a primeira entrega:

Ver mais
  • Endpoint para criar usuário
  • Endpoint para login
  • Endpoint para listar todos os eventos
  • Endpoint para criar time
  • Endpoint para criar jogadores
  • Endpoint para listar jogadores
  • Endpoint para criar uma partida
  • Endpoint para listar uma partida
  • Endpoint para criar jogadores da partida
  • Endpoint para listar jogadores da partida
  • Endpoint para criar os eventos na partida
  • Endpoint para editar os eventos na partida
  • Endpoint para listar os eventos na partida
  • Endpoint para excluir os eventos na partida
  • Endpoint para finalizar uma partida
  • Testes unitários para cada serviço
  • Testes de integração para cada endpoint

💡 Habilidades desenvolvidas

Ver mais
  • Criar um backend do zero e ter autonomia e responsabilidade para escolher a arquitetura e padrões de projeto da API.

  • Aprender a usar Prisma ORM

✨ Funcionalidades

Ver mais

✔️ Criar um manager

✔️ Login

✔️ Registrar time

✔️ Registrar jogadores

✔️ Registrar partidas e seus eventos

✔️ Modificar os eventos de uma partida

✔️ Finalizar uma partida

✔️ Ver todas as partidas do seu time

🛠️ 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
  • UUID para gerar IDs antes de salvar no banco de dados
  • JWT para autenticar e validar um usuário
  • Nodemon para monitorar a aplicação em tempo real durante o desenvolvimento
  • Zod para validar dados vindos de requisições e criar interfaces
  • 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
  • Prisma para mapear o banco de dados
  • MySQL para banco de dados
  • Docker para utilizar uma imagem de MySQL

💻 Como usar a aplicação

Pré-requisitos

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

Rodando a aplicação localmente 1 - Clone esse repositório para sua máquina com o seguinte comando:
 git clone git@github.com:Leo02452/futsal-manager-backend.git

2 - Entre na pasta criada:

 cd futsal-manager-backend

3 - Instale as dependências:

 npm install

4 - Inicie a aplicação em modo de desenvolvimento:

 npm run dev
Outros scripts da API
  • npm run lint para rodar o ESLint;
  • npm run test para rodar todos os testes com Mocha;
  • npm run test:coverage para rodar todos os testes e gerar o relatório de cobertura na tela do terminal;
  • npm run db:reset para resetar o banco de desenvolvimento;

📝 Autor

Desenvolvido por Leonardo Araujo

Email: leonardo_02452@hotmail.com

Github: https://github.com/Leo02452

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


About

Projeto pessoal fullstack para gerenciar times de futsal. Este é o repositório de backend

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published