/Projeto-TFC

O TFC é um site informativo sobre partidas e classificações de futebol. Foi desenvolvido uma API utilizando o método de TDD e integração através do docker-compose, as aplicações para que possa ser consumido um banco de dados.

Primary LanguageTypeScript

Bem vindos ao repositório Trybe-Futebol-Club

👨‍💻 O que foi desenvolvido

* Aqui você vai encontrar os detalhes de como foi estruturado este projeto e instruções para rodar.

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

* **Desenvolvido cumprindo todas as regras de negócio** estabelecidas e **essa API é capaz de ser consumida por um front-end já provido nesse projeto**.

* Essa API foi desenvolvida, utilizando o método `TDD` e também integrada *- através do docker-compose -*, as aplicações, para que elas funcionem consumindo um banco de dados. Foi desenvolvido **um back-end dockerizado utilizando modelagem de dados através do Sequelize**.

* Para adicionar uma partida é necessário ter um _token_, portanto a pessoa deverá estar logada para fazer as alterações. Teremos um relacionamento entre as tabelas `teams` e `matches` para fazer as atualizações das partidas.
Estrutura do projeto

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

1️⃣ Banco de dados: - Será 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.
- 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: - Deve rodar na porta 3001, pois o front-end faz requisições para ele nessa porta por padrão; - Garanta que o express é executado e a aplicação ouve a porta que vem das variáveis de ambiente;

3️⃣ Front-end: - O front já estava concluído. - O front se comunica com serviço de back-end pela url http://localhost:3001 através dos endpoints construidos.

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 ou npm run compose:up:dev; - Os Dockerfiles estão já estão configurados corretamente nas raízes do front-end e back-end, para conseguir inicializar a aplicação;

Orientações

🐋 Rodando no Docker vs Localmente

Com Docker

Rode o serviço node com o comando docker-compose up -d.

  • Esse serviço irá inicializar um container chamado trybers_and_dragons.
  • A partir daqui você pode rodar o container trybers_and_dragons via CLI ou abri-lo no VS Code.

Use o comando docker exec -it trybers_and_dragons bash.

  • Ele te dará acesso ao terminal interativo do container criado pelo compose, que está rodando em segundo plano.

Instale as dependências [Caso existam] com npm install

⚠ Atenção ⚠ Caso opte por utilizar o Docker, TODOS os comandos disponíveis no package.json (npm start, npm test, npm run dev, ...) devem ser executados DENTRO do container, ou seja, no terminal que aparece após a execução do comando docker exec citado acima.


Sem Docker

Instale as dependências [Caso existam] com npm install

Dica: Para rodar o projeto desta forma, obrigatoriamente você deve ter o node instalado em seu computador.


Como ter acesso ao projeto e instalar as dependências
1. Entre na pasta do repositório que você acabou de clonar ou fazer o download do arquivo zip:
* `cd pasta-do-repositório`

2. Instale as dependências através do terminal:
*`npm install`

3. Suba os imagens do servidor node e do banco de do docker-compose com o comando:
*`docker-compose up -d`

4. Dentro de app/frontend, suba a aplicação com o comando `npm start` através do terminal.

5. Dentro de app/backend, suba a api com o comando `npm start` através do terminal.