Aplicação responsável por calcular o juros em cima de um produto, com base na taxa Selic.
Todo o desenvolvimento foi feito utilizando a IDE IntelliJ
A versão do Java é AdoptOpenJDK 11.0.11
-
Ubuntu / macOS
-
Ubuntu
- Docker
- Maven
$ sudo apt update $ sudo apt install maven
-
macOS
$ brew install maven
$ sdk install java 11.0.11.hs-adpt
$ sdk default java 11.0.11.hs-adpt
Instalação versão padrão do java
$ docker run --name postgres_cntr -p 5432:5432 -e POSTGRES_PASSWORD=admin -d postgres
$ docker start postgres_cntr
Criação de container para banco de dados
$ docker rm postger_cntr
Para remover o container criado, basta executar o seguinte comando
calcula-juros$ docker start postgres_cntr
calcula-juros$ docker cp ./create.sql postgres_cntr:/create.sql
calcula-juros$ docker exec -it postgres_cntr psql -U postgres -f /create.sql
calcula-juros$ ./mvnw clean install
calcula-juros$ ./mvnw spring-boot:run
Rode o comando para subir o container do banco de dados, caso não esteja a executar, coloca o arquivo
create.sql
com a criação do schema da database dentro do container, depois executa este script no container, instala as dependências do projeto e em seguida execute o comando para iniciar a aplicação
calcula-juros$ ./mvnw clean package -DskipTests
calcula-juros$ cp target/calcula-juros-0.0.1-SNAPSHOT.jar src/main/docker
Primeiro comando gera um novo jar da aplicação e o segundo coloca esse jar na pasta do docker.
calcula-juros$ cd src/main/docker
calcula-juros/src/main/docker$ docker-compose up
# ou para rodar o serviço de fundo no SO
calcula-juros/src/main/docker$ docker-compose up -d
Entra no diretório correto e executa o primeiro comando para gerar um novo container e executa um dos 2 últimos comandos para subir a aplicação
Caso ocorra esse erro descrito na execução via docker-compose, é necessário executar os seguintes comandos:
calcula-juros/src/main/docker$ chmod +r db/01-init.sh
calcula-juros/src/main/docker$ chmod +x db/01-init.sh
Dando permissão de execução e leitura para o arquivo
calcula-juros$ ./mvnw test -Dtest=TestingWebApplicationTest
Executa testes do endpoint /negociacao
Se encontra na raiz do projeto com nome Insomnia_Calcula_Juros.json
Para visualização de todos os endpoints disponíveis da aplicação, basta acessar em seu navegador (com a aplicação de pé):
http://localhost:8080/swagger-ui/index.html
Foi utilizado o Swagger 2
Bonus (Lazydocker)
Uma interface de terminal simples para docker e docker-compose, escrita em Go com a biblioteca gocui.
Você pode baixar manualmente uma versão binária da página de versão.
Instalação / atualização automática
$ curl https://raw.githubusercontent.com/jesseduffield/lazydocker/master/scripts/install_update_linux.sh | bash
O script instala o binário baixado no diretório /usr/local/bin
por padrão, mas pode ser alterado configurando a variável de ambiente DIR
.