Teste prático da Equipe Blue
- Regras de negócio e validações
- Utilização de annotation de validation nos modelos @NotBlank
- Validação de login com criptografia utilizando BCrypt e senha em hash com salt
- Relacionamento de possesão da informação
- Tenancy de visualização baseado no token JWT
- Utilização de padrões de projeto (repositórios, services, controllers, interfaces, injeção de dependência, etc.) dentro do contexto da aplicação
- RESTful API stateless
- Utilização do Spring Boot, Spring Security e Hibernate/JPA
- Utilização de libs e frameworks acessórios
-
- Resteasy Client
- Resteasy Jackson
- Hibernate, JPA e Panache
- Smallrye JWT
- Liquibase
- Micrometer
- JUnit 5
- Lombook
-
- Quinoa
- OpenAPI Generator para injeção no Angular
- NGX Toaster
- JWT Decode
- Moment
-
- Organização e limpeza do código
- Cobertura de testes no front (gap do projeto)
- Cobertura de testes de backend (gap do projeto)
- Utilização forte de componentes no frontend (gap do projeto)
- Modelo de casos de uso
- Modelo do banco de dados
- Utilizado liquibase para definição e/ou população dos modelos
- Utilização e configuração do swagger
- Dockerfile ou docker-compose da aplicação
- Quarkus
- Instalar o Java 17
- Instalar o Node 18
- Instalar o Maven 3
-
npm install
-
mvn clean package
-
mvn quarkus:dev
- Abrir no navegador a interface de Dev do Quarkus em http://localhost:8080/q/dev
- Abrir no navegador do frontend http://localhost:8080/
-
docker compose up -d
- Abrir no navegador a interface de Dev do Quarkus em http://localhost:8080/q/dev
- Abrir no navegador do frontend http://localhost:8080/
RESTEASY CLASSIC - https://quarkus.io/guides/resteasy
GENERATING JAKARTA REST RESOURCES WITH PANACHE - https://quarkus.io/guides/rest-data-panache
SIMPLIFIED HIBERNATE ORM WITH PANACHE - https://quarkus.io/guides/hibernate-orm-panache
CONFIGURE DATA SOURCES IN QUARKUS - https://quarkus.io/guides/datasource
VALIDATION WITH HIBERNATE VALIDATOR - https://quarkus.io/guides/validation
USING JWT RBAC - https://quarkus.io/guides/security-jwt
SCHEDULING PERIODIC TASKS WITH QUARTZ - https://quarkus.io/guides/quartz
MICROMETER METRICS - https://quarkus.io/guides/telemetry-micrometer
LOMBOOK - https://projectlombok.org/setup/maven
UTILIZAR OPENAPI E SWAGGER UI - https://pt.quarkus.io/guides/openapi-swaggerui
USING LIQUIBASE - https://pt.quarkus.io/guides/liquibase
BCrypt - https://github.com/jeremyh/jBCrypt/blob/master/src/main/java/org/mindrot/BCrypt.java
Quinoa - https://docs.quarkiverse.io/quarkus-quinoa/dev/index.html
OpenAPI Generator - https://pguso.medium.com/using-openapi-generator-in-angular-projects-4c2813f55a91
npm install @openapitools/openapi-generator-cli -g
npx openapi-generator-cli generate -i docs/openapi.yaml -g typescript-angular -o src/app/core/openapi --additional-properties=ngVersion=16.2.12,npmName=restClient,supportsES6=true,npmVersion=10.2.3,withInterfaces=true --generate-alias-as-model