- Docker (If you don't have docker, you can install from here)
- Java 17 (if you want build and run it outside of docker)
./gradlew test
- to run all tests (unit + IT)./gradlew bootRun --args='--server.port=8080
- to run the app
- To build a docker image (with building the application itself)
docker build --tag bmt-mdfarm .
- To run the app inside with the help of the image
docker run -p 8080:8080 bmt-mdfarm
- To run the tests inside with the help of the image
docker run bmt-mdfarm test
The Swagger UI is available http://localhost:8080/swagger-ui/index.html (if 8080 is used as a communication port)
- I saved some time by taking some configuration files from existing project
- There is no authentication - so users provide their own names/logins/nicknames :)
Fonoapi
isn't available for a few years according to notes in its GitHub page https://github.com/shakee93/fonoapi, so I used another source for specifications- Specification synchronization is done as a background task (that run each 5 minutes)
Spock
+JUnit
as testing frameworksJOOQ
as SQL mapper instead ofJPA
(ORM mapper)Mapstruct
as a mapping frameworkFunctionaljava
as FP tool