Git Product home page Git Product logo

jacqueline-silva / trybe-futebol-clube Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 14.81 MB

API REST completa capaz de ser consumida pelo front-end afim de informar ao usuário sobre as partidas e classificações dos times de futebol.

Shell 1.63% Dockerfile 0.24% JavaScript 43.71% TypeScript 41.09% HTML 1.40% CSS 11.94%
bcrypt docker express joi jwt mocha-chai mysql nodejs sequelize sinon typescript full-stack

trybe-futebol-clube's Introduction

Projeto Trybe Futebol Club (TFC)

🚀 Projeto desenvolvido em 08/2022 - Bloco 28/Trybe

App Screenshot

🎯 Objetivo

Desenvolver uma API REST tornando-a capaz de ser consumida pelo front-end afim de informar ao usuário sobre as partidas e classificações dos times de futebol.

🧠 Habilidades desenvolvidas

  • Construir a modelagem do banco de dados de acordo com um Diagrama de Entidade-Relacionamento (DER)
  • Utilizar o Node, Express e Typescript para o desenvolvimento da API
  • Integrar as aplicações de front-end e back-end utilizando docker-compose
  • Realizar operações de criar, ler e atualizar os dados no banco de dados com a benção do sequelize
  • Tratar erros com o express-async-errors
  • Validar os dados recebidos através do Joi
  • Gerar e verificar token com o jwt
  • Armazenar senhas de maneira segura no banco de dados com o auxílio do bcrypt
  • Criar testes de integração utilizando Mocha, Chai e Sinon

🛠️ Ferramentas utilizadas

Todos os projetos da Trybe utilizam Linters, Git e Github

📌 Endpoints da API

Há requisições prontas no arquivo "requests_project-tfc.har" localizado no diretório "backend", em que você somente precisará importar para a ferramenta desejada, seja insomnia ou postman

Rotas do Login Descrição Rotas dos Times Descrição
GET /login/validate Valida token do usuário GET /teams Lista todos os times
POST /login Recebe token válido GET /teams/:id Exibe o time específico
GET /teams/:id/matches Lista todos os times com suas respectivas partidas
Rotas das Partidas Descrição Rotas dos Placares Descrição
GET /matches Lista todas as partidas GET /leaderboard Lista o placar de todas as partidas dos times
GET /matches/?inProgress Lista as partidas com o status de progesso escolhido GET /leaderboard/home Lista o placar das partidas do time em casa
POST /matches Cadastra uma nova partida GET /leaderboard/away Lista o placar das partidas do time fora de casa
PATCH /matches/:id Atualiza saldo de gols da partida
PATCH /matches/:id/finish Finaliza a partida

💻 Rodando localmente

  1. Clone o projeto e entre no diretório
  git clone [email protected]:Jacqueline-Silva/trybe-futebol-clube.git && cd trybe-futebol-clube
  1. Instale as dependências
  npm run install:dependecies
  1. No diretório de backend, renomeie arquivo ".env.example" retirando o ".example" e altere as variáveis de ambiente necessárias conforme docker-compose. Exemplo:
JWT_SECRET=jwt_secret
APP_PORT=3001
DB_USER=seu_user
DB_PASS=sua_senha
DB_HOST=localhost
DB_PORT=3302
  1. A partir da raiz do projeto, suba os containers docker da aplicação
  npm run compose:up
  1. Abra as aplicações:

Front: Em um navegador, entre no seu localhost

  http://localhost:3000/

Back: Para verificar os endpoints utilizados use a ferramenta de sua preferência, por exemplo o Insomnia (como no vídeo)

Há requisições prontas no arquivo "requests_project-tfc.har" localizado no diretório "backend", em que você somente precisará importar para a ferramenta desejada, seja insomnia ou postman

DB: Para visualizar o banco de dados faça a conexão do MySQL com a porta 3002

💻 Testando o backend da aplicação

  1. Caminho até o diretório de testes (opcional)
  ./app/backend/src/tests
  1. Rodando os testes de integração
  npm run test
  1. Verificando a cobertura dos testes
  npm run test:coverage

🔍 Observações

Os arquivos docker-compose, db.example, dockerfile_denylist e apps_install, assim como a aplicação front-end foram disponibilizados pela Trybe para realização deste projeto.

📫 Contatos

Linkedin Portfolio GitHub WhatsApp Microsoft

trybe-futebol-clube's People

Contributors

jacqueline-silva avatar trybe-tech-ops avatar

Stargazers

 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.