- Readme contains instructions for building and running application
- OpenAPI and SwaggerUI are used for documenting web API
- Endpoints of web services REST naming
- Javadoc is used for interfaces (public API)
- Maven checkstyle plugin with checkstyle report generation
- No sonarlint issues
- Lombok usage
- BigDecimal usage
- Do not store secrets
- SOLID
- Setup db indexes
- Use logging
- Maven swagger plugin
- Liquibase in docker
- CSV parser library should be used
- Not exist redundant method in interfaces
- Interface to separate controller and service layer
- Layers organization (controllers, services, repositories)
- Separate entity/dto for controller and service layer
- Custom runtime exception
- Controller advice
- Mockito unit tests
- Test coverage
- Integration tests
- Testcontainers
- Given Then approach
- Requirements fulfilled
- Cannot load additional cryptos at runtime
- Redis
- Postgres
- Dockerfile
- Docker-compose
- Bucket4j
- Github CI