Conversor de pares de moeda que faz uma consulta em uma API LAYER retorna o câmbio em tempo real e faz a conversão dos respectivos pares.
Essas instruções permitirão que você obtenha uma cópia do projeto em operação na sua máquina local para fins de desenvolvimento e teste.
Consulte Implantação para saber como implantar o projeto.
- Abra Git Bash.
- Altere o diretório de trabalho atual para o local em que deseja ter o diretório clonado.
- Digite git clone e cole a URL já copiada.
$ git clone https://github.com/rc-ventura/CurrencyConverter-App
- Pressione ENTER para criar seu clone local.
$ git clone https://github.com/rc-ventura/CurrencyConverter-App
> Cloning into `Spoon-Knife`...
> remote: Counting objects: 10, done.
> remote: Compressing objects: 100% (8/8), done.
> remove: Total 10 (delta 1), reused 10 (delta 1)
> Unpacking objects: 100% (10/10), done.
- Abra sua o Eclipse
- Selecione -> File -> Open Projects From File System -> Selecione o caminho da pasta onde fez o download.
- Pressione RUN no Eclipe para rodar a aplicação ou Ctrl + F11
- No github.com, navegue até a página principal do repositório.
- Acima da lista de arquivos, clique em Código ou Code.
- Selecione a opção Download .zip
- Salve em uma máquina local.
- Abra sua o Eclipse
- Selecione -> File -> Open Projects From File System -> Selecione o caminho da pasta onde fez o download.
- Pressione RUN no Eclipe para rodar a aplicação ou Ctrl + F11
- Clona ou faça download da aplicação.
- Abra o prompt de comando ou terminal.
- Selecione o caminho da pasta onde fez download.
- Execute o seguinte comando:
mvn spring-boot:run
- Conversor de câmbio entre um par de moedas.
Conversor.de.Moeda.Feito.com.o.Clipchamp.mp4
- Salvando transações de conversão no banco de dados.
Video.sem.titulo.Feito.com.o.Clipchamp.3.mp4
- Main Feature: Método para conversão de pares de moeda.
- Feature: Interface do usuário em Html/Css.
- Feature: Link entre backend e frontend com JQuery.
- Feature: Controlador de Exceptions
- Testes unitários com Junit e Mockito da Main Feature.
- Teste de integração da API com a biblioteca restAssured.
- Testes com cobertura de 80%.
- Ajustes na UI.
- Feature: Método para salvar toda transação de conversão no banco de ddaos.
- Teste para método salvar toda transação no banco de dados.
- Teste de integração de todas as features.
- Teste de carga em transações no banco de dados.
- Teste de UI com Selenium.
- Documentação da API com Swagger/OpenApi.
- Documentação com Testes com Allure Framework.
- Deploy da aplicação em ambiente de teste com K3d da Ranch.
- Automatização com script de incialização com Terraform para o servidor remoto na Digital Ocean.
- Deploy da aplicação em ambiente de desenvolvimento em um servidor remoto na Digital Ocean com Kubernetes.
- Pipeline CI/CD com Jenkins em ambiente de desenvolvimento.
- Pipeline CI/CD com Jenkins na Digital Ocean em produção.
- SRE: Observabilidade da aplicação: Métricas com Micrometer
- SRE: Observabilidade da aplicação: Monitoramento com o Prometheus
- SRE: Observabilidade da aplicação: Dashboards com o Grafana.
Swagger.UI.-.Brave.2023-04-10.11-45-06.mp4
- Overview dos testes feitos em Junit, Mockito, Rest Assured
- Simula uma consulta na API externa.
- Retorna com a taxa de conversão.
- Processa a conversão.
- Salva no banco de dados a transação.
- Simula todos os endpoints da aplicação ao manipular uma transação
- Controller->Service->Repository
- GET, UPDATE, GET/ID, DELETE/ID, SAVE
- Simula o controle de exceções
- Simula uma conversão.
- Chama a API Externa
- Faz uma conversão do par USD para BRL.
- Simula todas as manipulações de transações na camada de Serviços
- Service->Repository
- Utilizando o Terraform provisiona uma infra-estrutura básica na Digital Ocean.
- Criação de um cluster kubernetes com três serviços: backend, frontend e bancode dados
- Criação de 3 réplicas do backend e do frontend para escalonamento
- Criação de um load balancer aberto para internet que balanceia a carga para o frontend na porta 80 (http)
- Provisionamento de um máquina virtual (Droplet) para configurar a orquestração com o Jenkins.
- Criação do pipeline com o Jenkins CI utilizando o Docker e o DockerHub.
- Configuração d eum webhook no github para automatização do início do pipeline CI após um gitpush no repositório.
- Criação de observabilidade utlizando o Helm para configurar o cluster Kubernetes.
- Criação um load balancer aberto para requisições http na porta 80 e redirecionamento para a porta 9090 (prometheus)
- Criação um load balancer aberto para requisições http na porta 80 e redirecionamento para 3000 (grafana).
- Criação dos dashboards das métricas funcionais e não funcionais da aplicação.
- Promove alterações no código e ativa o trigger do pipeline.
- Manutenção e implementação dos testes unitários
- Promove a cobertura do código nos testes.
Por favor, leia o COLABORACAO.md para obter detalhes sobre o nosso código de conduta e o processo para nos enviar pedidos de solicitação.
Para as versões disponíveis, observe as tags neste repositório.
Mencione todos aqueles que ajudaram a levantar o projeto desde o seu início
- Rafael Ventura - Idealizador do projeto - Dev Ventura
Você também pode ver a lista de todos os colaboradores que participaram deste projeto.
Este projeto está sob a licença (sua licença) - veja o arquivo LICENSE.md para detalhes.
⌨️ com ❤️ por Rafael Ventura 😊