👨💻 O que foi desenvolvido
O PFC
é um site informativo sobre partidas e classificações de futebol! 🚀
No time de desenvolvimento do PFC
, onde eu Arthur Barbosa com meu squad ficou responsável por 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.
Neste projeto, eu construir um back-end dockerizado utilizando modelagem de dados através do Sequelize. Onde o desenvolvimento deve respeitar regras de negócio providas no projeto minha API deve ser capaz de ser consumida por um front-end já provido nesse projeto.
Para adicionar uma partida requer 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.
Meu 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.
⚙️ 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
.
- Você também pode conectar a um Cliente MySQL (Workbench, Beekeeper, DBeaver e etc), colocando as credenciais configuradas no docker-compose no serviço
2️⃣ Back-end:
- Deve rodar na porta
3001
, pois o front-end faz requisições para ele nessa porta por padrão; - Sua aplicação deve ser inicializada a partir do arquivo
app/backend/src/server.ts
; - 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á está concluído,
- O front se comunica com serviço de back-end pela url
http://localhost:3001
através dos endpoints que você deve construir nos requisitos.
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 comandonpm run compose:up
ounpm run compose:up:dev
;
🔰 Iniciando o projeto
- Clone o repositório
Usar link SSH
-
Entre na pasta do repositório que você acabou de clonar:
cd pasta-do-repositório
-
Instale as dependências [Caso existam] *
npm install
-
Crie uma branch a partir da branch
main
-
Verifique se você está na branch
main
- Exemplo:
git branch
-
Se não estiver, mude para a branch
main
- Exemplo:
git checkout main
- Exemplo:
-
Agora crie uma branch à qual você vai submeter os
commits
do seu projeto -
Você deve criar uma branch no seguinte formato:
nome-de-usuario-nome-do-projeto
- Exemplo:
git checkout -b maria-sd-023-a-trybe-futebol-clube
- Adicione as mudanças ao stage do Git e faça um
commit
- Exemplo:
-
Verifique que as mudanças ainda não estão no stage
- Exemplo:
git status
(deve aparecer listada a pasta maria em vermelho)
- Exemplo:
-
Adicione o novo arquivo ao stage do Git * Exemplo: *
git add .
(adicionando todas as mudanças - que estavam em vermelho - ao stage do Git) *git status
(deve aparecer listado o arquivo maria/README.md em verde) -
Faça o
commit
inicial- Exemplo:
*
git commit -m 'iniciando o projeto x'
(fazendo o primeiro commit) *git status
(deve aparecer uma mensagem tipo nothing to commit )
- Adicione a sua branch com o novo
commit
ao repositório remoto
- Exemplo:
*
-
Usando o exemplo anterior:
git push -u origin meu-clube-futebol
⚠️ 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
:
- Use esse link de referência para realizar a instalação corretamente no ubuntu;
- Acesse o link da documentação oficial com passos para desinstalar caso necessário.