This is a submission to the neusta code challenge 2017 Git Tag v2017-MARCH. The following technologies have been used for the implementation: maven, java, spring boot, swagger and optional docker.
Three endpoints are available after starting the application:
- POST /api/import consumes multipart/form-data
- GET /api/room/{roomNumber} produces JSON
- GET /api/room produces JSON
If the possibility to search for user details is a required feature, two additional endpoints should be implemented:
- GET /api/persons/{ldapUser}
- GET /api/persons?firstName=...&lastName=...&ldapUserName=...
The returning JSON should contain a link to the corresponding rooms (see HATEOAS).
Due to time constrains no ARC42 documentation is created.
Decision | Reason |
---|---|
Java |
|
Spring |
|
Spring Boot |
|
Hexagonal (or onion) architecture |
|
- Java 17
- Maven >= 3.6.x
- Docker optional
mvn clean package
java -jar target/ncc-kotlin.jar
To build docker image a docker service must run on host system.
mvn clean package docker:build
docker run -d -p 8080:8080 ncc/ncc
After starting the application, please open swagger ui access the rest endpoints documentation.
mvn clean cobertura:cobertura
and open target/site/cobertura/index.html
in your browser.