Skip to content

O TFC é um site informativo sobre partidas e classificações de futebol! Projeto com foco em back-end

Notifications You must be signed in to change notification settings

brunotomaz-dev/TFC-Trybe-Futebol-Clube

Repository files navigation

Projeto Trybe Futebol Clube

Desenvolvido uma tabela de clubes, com seus jogos e classificação. O foco do projeto foi no back-end, e integração com front-end.

O TFC é um site informativo sobre partidas e classificações de futebol! ⚽️

No desenvolvimento do TFC, o objetivo era desenvolver uma API (utilizando o método TDD) e também integrar - através do docker-compose - as aplicações para que elas funcionem consumindo um banco de dados.

Nesse projeto, foi construído um back-end dockerizado utilizando modelagem de dados através do Sequelize. Seu desenvolvimento respeitou as regras de negócio providas no projeto e sua API foi capaz de ser consumida por um front-end já provido nesse projeto.

Para adicionar uma partida é necessário ter um token, portanto a pessoa deverá estar logada para fazer as alterações. Temos um relacionamento entre as tabelas teams e matches para fazer as atualizações das partidas.

O back-end implementa regras de negócio para popular adequadamente a tabela disponível no front-end que será exibida para a pessoa usuária do sistema


Habilidades


Neste projeto, fui capaz de:

  • Criar CRUD usando banco de dados MySQL com Sequelize

  • Usar a metodologia de TDD

  • Aplicar conhecimento de Typescript

  • Integrar back-end e front-end

  • Preparar projeto para rodar utilizando docker/docker-compose

  • Usar a ferramenta JWT para autenticação usando um token.

  • Utilizar a ferramente bcrypt para criptografar a senha a ser guardada no banco de dados.


Entendendo a estrutura do Projeto

Estrutura do projeto

O projeto é composto de 4 entidades importantes para sua estrutura:

1️⃣ Banco de dados:

  • Um container docker MySQL já configurado no docker-compose através de um serviço definido como db.
  • Tem o papel de fornecer dados para o serviço de backend.
  • Durante a execução vai ser acessado pelo sequelize e via porta 3002 do localhost;
  • Você também pode conectar a um Cliente MySQL (Workbench, Beekeeper, DBeaver e etc), colocando as credenciais configuradas no docker-compose no serviço db.

2️⃣ Back-end:

  • Roda na porta 3001, pois o front-end faz requisições para ele nessa porta por padrão;

3️⃣ Front-end:

  • Acesso através de http://localhost:3000/;
  • O front se comunica com serviço de back-end pela url http://localhost:3001

4️⃣ Docker:

  • O docker-compose tem a responsabilidade de unir todos os serviços conteinerizados (backend, frontend e db) e subir o projeto completo com o comando npm run compose:up

Se desejar rodar o repositório localmente

⚠️ Configurações mínimas para execução do projeto

Na sua máquina você deve ter:

  • Sistema Operacional Distribuição Unix
  • Node versão 16
  • Docker
  • Docker-compose versão >=1.29.2

➡️ O node deve ter versão igual ou superior à 16.14.0 LTS:

  • Para instalar o nvm, acesse esse link;
  • Rode os comandos abaixo para instalar a versão correta de node e usá-la:
    • nvm install 16.14 --lts
    • nvm use 16.14
    • nvm alias default 16.14

➡️ Odocker-compose deve ter versão igual ou superior àˆ1.29.2:


Para rodar o projeto

  1. Clone o repositório
  • Use o comando: git clone [email protected]:brunotomaz-dev/TFC-Trybe-Futebol-Clube.git.
  • Entre na pasta do repositório que você acabou de clonar:
    • cd TFC-Trybe-Futebol-Clube
  1. Instale as dependências na app
  • npm install.
  1. Rode o docker-compose - na pasta app
  • npm run compose:up.
  1. O servidor back-end deve ser inicializado no comando anterior. A página da aplicação deve abrir automaticamente. Para acessar manualmente a página da aplicação entre em http://localhost:3000/ no seu navegador.

  2. Na página de login acesse como

About

O TFC é um site informativo sobre partidas e classificações de futebol! Projeto com foco em back-end

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published