Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/danilomeneghel/prova-vr

API REST - VR Benefícios
https://github.com/danilomeneghel/prova-vr

api-rest docker-compose java-17 junit5 lombok maven mockito mysql-8 sonarqube spring-boot spring-security swagger-ui

Last synced: about 2 months ago
JSON representation

API REST - VR Benefícios

Awesome Lists containing this project

README

        

# Prova VR

Avaliação técnica de uma API de Mini Autorizador, desenvolvido em Java com Spring-Boot.

## Características

- CRUD
- API RESTful
- Basic Auth
- Validation
- Enum
- Exception
- MockMVC

## Requisitos

- Java JDK 17
- Apache Maven >= 3.8.6
- MySql 8
- Docker (Opcional)

## Tecnologias

- Java
- JPA
- Maven
- Spring
- Lombok
- Swagger
- H2
- JUnit
- SonarQube
- Docker

## Instalação

```
$ git clone https://github.com/danilomeneghel/prova-vr.git

$ cd prova-vr
```

## Maven

Para rodar o projeto com Maven, é necessário ter a versão 3.8.6 instalada.

Além disso, é preciso ter o Java 17 e o MySql 8 instalado.

Tendo tudo instalado e rodando localmente, basta executar o seguinte comando:

```
$ cd miniautorizador
$ mvn clean install -U
$ mvn spring-boot:run -Dspring-boot.run.profiles=dev
```

Caso não tenha o Maven instalado ou tenha outra versão, pode usar o comando ./mvnw (no Linux) ou mvnw.cmd (no Windows).

## Docker (Opcional)

Para rodar o projeto via Docker-Compose, basta executar o comando:

```
$ cd docker
$ docker-compose up
```

Aguarde baixar as dependências e carregar todo o projeto, esse processo é demorado.

Caso conclua e não rode pela primeira vez, tente novamente executando o mesmo comando.

Para encerrar tudo digite:

```
$ docker-compose down
```

Aguarde carregar todo o serviço web.

Após concluído, digite um dos endereços abaixo em seu navegador.

Listar cartões cadastrados:

http://localhost:8080/cartoes

Listar transações cadastradas:

http://localhost:8080/transacoes

## Swagger

Documentação da API RESTful:

http://localhost:8080/swagger-ui.html

Login:
- Usuário: username
- Senha: password

## SonarQube

Para verificar a cobertura de testes, primeiro acesse o seguinte endereço:

http://localhost:9000

Depois efetue o login preenchendo "admin" no usuário e senha (login padrão).

Ao se logar crie um novo projeto e gere o token.

Execute o seguinte comando do sonar:

```
$ cd miniautorizador
$ mvn clean verify sonar:sonar \
-Dsonar.projectKey=NOME_PROJETO_GERADO \
-Dsonar.host.url=http://localhost:9000 \
-Dsonar.login=TOKEN_GERADO
```

Após executado, acesse o seguinte endereço:

http://localhost:9000/dashboard?id=prova-vr

## Testes

Para realizar os testes, execute o seguinte comando no terminal:

```
$ cd miniautorizador
$ mvn test
```

## Screenshots

Swagger-UI

![Screenshots](screenshots/screenshot01.png)

![Screenshots](screenshots/screenshot02.png)

Postman

![Screenshots](screenshots/screenshot03.png)

Modelagem ER

![Screenshots](screenshots/screenshot04.png)

Testes Unitários

![Screenshots](screenshots/screenshot05.png)

SonarQube

![Screenshots](screenshots/screenshot06.png)

![Screenshots](screenshots/screenshot07.png)

## Licença

Projeto licenciado sob The MIT License (MIT).

Desenvolvido por

Danilo Meneghel

[email protected]

http://danilomeneghel.github.io/