Project that simulates a digital bank. This digital bank performs registration and transfer between customers
🚀 Projeto que simula a criação de uma conta digital e transferência entre as contas criadas.
É necessário instalar alguns itens:
Após instalar o Docker, abra o terminal no diretório raiz do projeto, que já vai configurado um docker-compose. Esse arquivo serve subir um container de Redis, banco utilizado para armazenar os dados. O comando para que precisa ser executado no terminal é o seguinte: docker-compose up -d
Para ter um controle transacional na camada de transferências, foi feita a utilização de um Message Broker, o RabbitMQ. para a utilização do Rabbit, é preciso rodar mais um comando. Abra o terminal e rode o seguinte comando:
docker run —rm -it —hostname localhost -p 15672:15672 -p 5672:5672 rabbitmq:3-management
Após subir a aplicação, utilize as collections do Postman disponibilizada para realizar as requisições. https://www.postman.com/collections/91fb55fa953240feab88
Está sendo disponibilizado um dockerfile para a execução da aplicação em ambiente de container. Utilizando um plugin disponibilizado pela Spotify, onde uma vez inserido o plugin e o seu arquivo dockerfile, via maven você executa o comando mvn package ,esse comando irá gerar sua imagem.
Após a execução do mvn package , o próximo comando que será executado é o docker images que irá listar as suas imagens docker.
Agora precisara rodar o comando docker run -p 8000:8000 lucasnscr/spring-docker-spotify:1.0.0-SNAPSHOT feito isso a aplicação já está rodando no ambiente com o docker.
Obs: É preciso executar os compandos para exposição do Redis e do RabbitMQ, se não a aplicação não irá conseguir conectar.
Obs: Caso não consiga conectar via docker, voce poderá executar o serviço da seguinte forma. Com o terminal, entra na pasta raiz do projeto e execute o comando mvn clean install -U após esse comando, entra no diretório target do projeto, nessa pasta está o .jar do serviço, execute o seguinte comando java -jar bank-count-service.jar
Para a realização do projeto foram utilizada as seguintes tecnologias: