Git Product home page Git Product logo

leo02452 / trybe-futebol-clube Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 682 KB

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

Dockerfile 0.21% JavaScript 36.09% TypeScript 51.44% Shell 1.26% HTML 1.15% CSS 9.84%
api api-rest express expressjs jwt jwt-authentication jwt-tokens mocha-chai mocha-tests mysql mysql-database sequelize testing typescript

trybe-futebol-clube's Introduction

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 [email protected]: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: [email protected]

Github: https://github.com/Leo02452

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


trybe-futebol-clube's People

Contributors

leo02452 avatar trybe-tech-ops avatar

Stargazers

GABRIEL KUCEK PESCH avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.