Home assignment
Please, read all sections within this document carefully.
Extra Credits are entirely up to you. They will give you the chance to shine within the selection process
but they are not required.
With the "Guidelines" section in mind, you should complete at least the following required features.
Desired features
● Develop a simple build system for your application
● Develop CRUD REST APIs to manage a ToDo List.
● Authenticate APIs. Choose the method you want to use, it could be also with a basic authentication with
a static API key in the header.
Technology stack
● PostgreSQL
● Java (eg. Quarkus or Spring Boot or what you prefer )
Guidelines
Use the technologies requested and, if you prefer, feel free to use a boilerplate.
All code produced should have modularity, reusability and performance in mind, while being well
documented.
At completion, you should have a build task to output a production-ready folder (e.g.: dist) with all your
work as well as the source code that generated it. This folder must not be committed and instructions to
produce it must be provided in order to let us run the application in production mode.
For what is not specified in this doc, it’s up to you to decide what’s best 💪
Extra credit
● Docker - docker-compose
● Use of linting tools
● Unit testing
● Performant code
● Consider adding a computed property, not stored on the DB, to your entity/entities.
Delivery
Create a private Git repository with the following format:
crispy_be_challenge_<first-name>-<last-name>
Github allows private repositories for free, you only need to grant us access to it afterwards.
Accounts that must have access to the project:
https://github.com/DamianoBuscemi
https://github.com/opensrcerer/
https://github.com/matteofurlancrispy
Commit your work as you progress, we look at the commit history as well.
Key Requirements for Project Success
To ensure a smooth and successful project experience, it is important to adhere to the following
guidelines:
● Deliver the project exclusively through a private GitHub repository.
● Ensure all required features are fully implemented and functional.
● Include a build task that generates a production-ready folder e.g.: target) as output.
● Provide clear instructions on how to run the project.
● Include detailed instructions on how to test the APIs.