To run the application, you'll need Docker. Both the database and backend are dockerized to simplify installations. You can use the following command:
docker compose up --build
You can import the collection into Postman. It includes most of the use cases.
All the specified requirements from the PDF have been implemented.
- Achieving good test coverage for unit or integration testing.
- Setting up staging in Docker to run tests first, followed by local deployment.
- Minimizing the size of Docker images.
- Removing user identifiers from DTOs and externalizing them (e.g., using Spring Security).
To run tests, you'll need to install Java (version 21) and Docker on your local machine. Then, you can execute the following command:
./mvnw test
This uses the embedded Maven. Note that in the tests, I've used TestContainer, which cannot be utilized within a Docker image due to the need for Docker in Docker (DinD).