Skip to content
This repository has been archived by the owner on Oct 18, 2022. It is now read-only.

jmurowaniecki/sicredi-librum-ex-dracones

Repository files navigation

Librum ex Dracones trata-se de um teste de conhecimentos, a demonstração pode ser acessada aqui.

DockerHub CircleCI Maintainability

Primeiros passos

Você pode realizar o deploy instantâneo no Heroku sem precisar instalar nada no seu ambiente de trabalho bastando utilizar o botão abaixo:

Deploy to Heroku

Executando o frontend

É possível executar apenas o frontend, para isso acesse a pasta web na raiz do projeto e execute os comandos yarn install para instalação das dependências e yarn start para inicializar a aplicação - que estará disponível em http://localhost:4200.

Instalação

Após clonar o projeto execute o comando make no intuito de validar os requisitos do sistema e criar as variáveis de ambiente e, logo a seguir make install para montar os containers e make launch inicializar a aplicação.

Obtenha mais informações sobre os comandos disponíveis executando make help em seu console.

Configuração do ambiente

Após executar o comando make install seu ambiente deve estar parecido com os exemplos comentados abaixo:

PROJECT_NAME="Librum ex Dracones"
# Nome deste projeto.

ENVIRONMENT=dev
# Ambiente no qual estará sendo executado.

DB_DATABASE=admin
DB_USERNAME=admin
DB_PASSWORD=YW1lbm8gZG9yaW1l
DB_HOSTNAME=database
# Acesso ao banco de dad☉s

APP_URL=http://localhost
API_URL=http://api.localhost
# Endereços para direcionamento das requisições.

Docker // CI/CD // QA

Os containers são atualizados sempre que houver alteração nos ramos principais do repositório e estarão disponíveis publicamente no Docker Hub de forma automatizada via CircleCI.

Veja alguns screenshots

Página interna

Sobre

linkedin Twitter  github

Desenvolvedor apaixonado, tem fixação por quebra-cabeças e em busca constante de desafios.

Veja mais...

Fascinado por astronomia, física quântica, energia (e matéria) escura, inflação e destino entrópico do multiverso, alquimista e claro: coach de biohacking quântico, neuroprogramação, pseudocientista, astrólogo mentor de η+1 desavisados.

O author também é RPGista, guitarrista, artista marcial e atirador. Carrega a culpa de quebrar constantemente a 4ª parede com extensos monólogos.

instagram

Considerações

Sobre o ambiente de desenvolvimento

Optei por utilizar o docker-compose devido a facilidade e rapidez em subir um ambiente com múltiplos builds com pouca necessidade de configuração/setup inicial.

As imagens base estão disponíveis no respectivo Docker Hub.

As ferramentas e rotinas de montagem e automação local - do ambiente de desenvolvimento - foram escritas em Bash/ShellScript/Dash e centralizadas no Makefile.

Sobre o processo de Integração/Entrega

Utilizei o CircleCI devido a facilidade de uso e baixo custo operacional - outra opção seria o AWS CodeBuild.

Existem somente três serviços:

  • quality, que realiza apenas o lint da aplicação e, estando fora do padrão bloqueia o processo;
  • build etapa em que são construídos e enviados para o Docker Hub os containers;
  • deploy integrado com Heroku;

Ainda sobre o CircleCI, optei por salvar os containers de conveniência com as dependências devido ao custo temporal ser significativamente menor com processamento do que com transferência.

Em suma: é mais rápido jogar todos os módulos para dentro de uma tag inflada/inchada e consumir ela do que processar as dependências sempre que necessário.

Processo de criação

Iniciei o desenvolvimento pelo frontend utilizando Angular 9 e SCSS partindo logo a seguir para os fluxos de entrega. A seguir desenvolverei a integração com o backend e a API solicitada.

Demonstração

Acesse o endereço da aplicação, digite seu nome e utilize - em qualquer ordem - as seguintes runas para acessar o índice:

346

Atenção: Caso venha a utilizar ferramentas de automatização de testes, para todos os efeitos, o valor da senha será sempre 346.

// Hic svnt dracones

Este exemplo utiliza as bibliotecas pizzicato de alemangui para as músicas de fundo e demais efeitos sonoros. Músicas e efeitos sonoros obtidos através de FreeSound.org licenciados em sua maioria como Creative Commons ou uso particular.

As imagens foram extraídas de PNG find em sua maioria como licença Creative Commons ou uso particular, e foram em parte reconstituídas e modificadas artisticamente para se adequar ao design preservando a arte original.

Icon list made by Freepik from www.flaticon.com.

Inspiração no trabalho artístico de Diablo - UI e OST -, Rhapsody of Fire e D&D / d⚂20.

Nenhum plugin foi utilizado para os efeitos de paralax nos dragões - nenhum dragão foi ferido fora dos tabuleiros.

Labor improbus omnia vincit - Publius Vergilius Maro.