The forensics-api is an application that the forensics team exposes to the detective squad to assist with the case of the witch who
is kidnapping cats in the local area. The application provides them with two services.
- Provides data of the previous movements of the witch
- Validates a guess of the final location of the witch, where the detective squad are only allowed five guesses.
Each request must include an email address to prove that the individual making the request is authorized.
A list of authorized email address is stored in the
The api has two endpoints:
GET directions– returns a json payload of recent movements of the witch with a starting point.
GET location– allows the detective squad to guess the end location of the Witch and will validate if the guess is correct.
The detective squad will only be able to have 5 guesses of the witches final location.
When running, we are ignoring running the tests in the graldew build due to technical issues when running unit tests on my IDE.
Run the script
./run-local.sh to build a jar of the application and start running it locally. The application will be exposes on
- Call directions endpoint
- Call location endpoint
Rumors that the witch is recruiting additional witches to expand her operation of cat kidnapping. The forensics team would
like to allow more detective units from across the country to access the application. They have decided it would be best
to package the application into a container where the image can accessed through the Docker Hub.
To build docker image, run script
./docker-build.sh. This will build a docker image of the application locally and then
display all local docker images. Then apply the following commands to push to a remote repository for others to access:
docker tag <image-id> <docker-username>/forensics-api
docker push <docker-username>/forensics-api