O app Trybe futebol clube, é uma aplicação que simula a classificação de times em um campeonato de acordo com o resultado das partidas. O desenvolvimento do projeto foi iniciado com o frontend já pronto, no frontend foi configurado apenas o dockerfile para que fosse possível dockerizar a aplicação. Ao iniciar o desenvolvimento, também tive que fazer alguns ajustes no arquivo docker-compose para que fosse possível a comunicação entre os containers do frontend, backend e database(Mysql). O intuito do projeto, era desenvolver uma API para prover(servir) o frontend da aplicação, de dados relacionado aos clubes, partidas e classificação dos clubes.
- Express
- Typescript
- Sequelize - MySql
- Nodejs
- Docker
- Conceitos de POO
- Testes de integração com:
- mocha
- chai
- sinon
Segue amostra da tela de classificação da aplicação:
Para executar a aplicação localmente, é necessario ter um ambiente node configurado na sua máquina, além do
docker
edocker-compose
instalados.
Caso não tenha o docker e docker-compose instalados e deseje fazer a instalação, siga os passos abaixo:
O tutorial de instalação foi criado executando os comandos na seguinte versão do Ubuntu:
Distributor ID | Description | Release | Codename |
---|---|---|---|
Ubuntu | Ubuntu 20.04.3 LTS | 20.04 | focal |
1 - Versões mais antigas do Docker eram chamadas de docker
, docker.io
, ou docker-engine
. Se estes estiverem instalados, desinstale-os:
sudo apt-get remove docker docker-engine docker.io containerd runc
Tudo bem se o apt-get relatar que nenhum desses pacotes está instalado.
Antes de instalar o Docker Engine pela primeira vez em uma nova máquina host, você precisa configurar o repositório do Docker. Depois, você pode instalar e atualizar o Docker a partir do repositório.
- Atualize o
apt
índice de pacotes executando o seguinte comando no seu terminal :
sudo apt-get update
- Instale pacotes para permitir que o
apt
faça uso do repositório por HTTPS:
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
- Adicione a chave GPG oficial do Docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Obs: Se tudo correr bem, você não deve receber nenhum retorno visual.
- Use o comando a seguir para configurar o repositório estável:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- Atualize o
apt
índice de pacotes e instale a versão mais recente do Docker Engine e do containerd:
sudo apt-get update
em seguida:
sudo apt-get install docker-ce docker-ce-cli containerd.io
ℹ️ Caso prefira, não precisa executar essa etapa, na hora de executar os comandos docker, você só precisa executar utilizando sudo
antecedento os comando docker.
⚠️ Atenção⚠️ : Esse procedimento concede privilégios equivalentes ao do usuário root (o superusuário no linux) na execução dos comandos Docker.
- Para criar o
docker
grupo e adicionar seu usuário:
sudo groupadd docker
Caso ocorra uma mensagem: groupadd: grupo 'docker' já existe , é só prosseguir.
- Adicione seu usuário ao
docker
grupo:
sudo usermod -aG docker $USER
- Saia e faça login novamente para que sua associação ao grupo seja reavaliada ou você também pode executar o seguinte comando para ativar as alterações nos grupos:
newgrp docker
- Verifique se você pode executar
docker
comandos semsudo
.
docker run hello-world
O terminal deve retornar uma mensagem com dicas, conforme a seguir:
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
ℹ️ Mais detalhes a respeito na Documentação
- Execute este comando para baixar a versão estável atual do Docker Compose:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
- Aplique permissões executáveis ao binário:
sudo chmod +x /usr/local/bin/docker-compose
- E se tudo ocorrer bem, para validar a instalação basta executar o seguinte comando:
docker-compose --version
Devem ser exibidos os detalhes da versão instalada em seu terminal.
- Para desinstalar o Docker Compose execute no seu terminal o seguinte comando:
sudo rm /usr/local/bin/docker-compose
- Desinstale os pacotes Docker Engine, CLI e Containerd:
sudo apt-get purge docker-ce docker-ce-cli containerd.io
- Imagens, contêineres, volumes ou arquivos de configuração personalizados em seu host não são removidos automaticamente. Para excluir todas as imagens, contêineres e volumes execute os comados:
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
ℹ️ Para mais detalhes sobre instalação e desinstalação do docker, consulte a documentação.
1. Clone o repositória para um diretório em seu computador:
- No seu terminal, dentro de um diretório (pasta) de sua escolha, execute o seguinte comando:
git clone git@github.com:Ivanielson/trybe-futebol-clube.git
2. Entre na pasta do repositório que você acabou de clonar:
- Execute no seu terminal o seguinte comando:
cd trybe-futebol-clube
3. Instale as dependências do projeto:
- Execute no seu terminal o seguinte comando:
npm install
1. Para executar a aplicação:
- Execute o seguinte comando no terminal e aguarde a execução de todo processo:
npm run compose:up
Se tudo der certo, você de receber uma mensagem no final da sua tela semelhante a essa:
Creating db ... done
Creating app_backend_1 ... done
Creating app_frontend_1 ... done
2. Após a conclução do comando anterior. Acesse a aplicação no seu navegador.
- Para acessar a aplicação, abra uma aba no seu navegador, cole a url a seguir e tecle em enter:
http://localhost:3000/leaderboard
Você verá algum parecido com isso:
Para adicionar ou editar partidas é necessário efetuar login na aplicação. Para efetuar o login, você pode usar essas credenciais:
email: admin@admin.com
epassword: secret_admin
.
Agora é só navegar por toda a aplicação.
- A partir da raiz do projeto
trybe-futebol-clube/
, execute o seguinte comando no seu terminal:
cd app/backend/
dessa forma, você entrará no diretório de backend do projeto, em seguida execute o comando para rodar os testes:
npm test
- Depois de navegar pela aplicação, caso queira parar a execução.
- Execute no seu terminal dentro do diretório (pasta) do projeto o seguinte comando:
npm run compose:down
Você deve receber uma mensagem no seu terminal semelhante a essa:
Stopping app_frontend_1 ... done
Stopping app_backend_1 ... done
Stopping db ... done
Removing app_frontend_1 ... done
Removing app_backend_1 ... done
Removing db ... done
Removing network app_default
Nodejs | Docker | Docker-compose | npm |
---|---|---|---|
v14.16.1 | 20.10.12 | 1.29.2 | 7.18.1 |