/bmt-mdfarm

bmt-mdfarm

Primary LanguageHTML

ci

BMT Test (Mobile Devices farm, mdfarm)

Requirements

  • Docker (If you don't have docker, you can install from here)
  • Java 17 (if you want build and run it outside of docker)

Useful commands (if you have Java installed)

  1. ./gradlew test - to run all tests (unit + IT)
  2. ./gradlew bootRun --args='--server.port=8080 - to run the app

Useful commands (if you DON'T have Java installed)

  1. To build a docker image (with building the application itself)
docker build --tag bmt-mdfarm .
  1. To run the app inside with the help of the image
docker run -p 8080:8080 bmt-mdfarm
  1. To run the tests inside with the help of the image
docker run bmt-mdfarm test

Swagger UI

The Swagger UI is available http://localhost:8080/swagger-ui/index.html (if 8080 is used as a communication port)

General Notes:

  • 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)

Implementation notes

  • Spock + JUnit as testing frameworks
  • JOOQ as SQL mapper instead of JPA (ORM mapper)
  • Mapstruct as a mapping framework
  • Functionaljava as FP tool