Implement REST API client with filter functions -- 2

Job ID: 37075191

Budget: $10 – $60 USD

your job is to implement a rest api client in Java to query and to provide filtering functions like this code:
https://github.com/danielskowronski/hetzner-auction-hunter/blob/master/hah.py#L142
It is even the same API!

todos:
- implement models via jsonschema2pojo
=> 1st generated version is provided to you
=> you need to tidy up based on logical features (disk, ram, cpu, network, ...) into custom classes
- implement spring boot environment
- implement filtering on top of java objects, filters are required
- CPUs
- disk size, type, count
- RAM total, modules-count, ecc
- networking
see also here: https://github.com/danielskowronski/hetzner-auction-hunter/blob/master/hah.py#L142

milestones:

ms1:
implement filters by given params above
this is already provided to you: spring-boot project is created, API access is implemented, basic mapping with default jsonschema2pojo is also implemented

ms2:
define Entities
map DTOs to Entities
persist into database via spring-repositories
track servers via a scheduled job (each hour) and persist changes as a revision per server

ms3:
provide rest endpoint to accept searchDTO and the result is a list of servers matching to it
provide rest endpoing to get history of a specific server


Deliveries?
- in our on premise git (access will be granted to you)
- full sources
- docker compose for openldap + keycloak
- maven
- JDK 17

Requirements:
- clean code
- code checked with checkstyle, pmd, spotbugs

Payment?
- you estimate in a WBS after getting the task
- we discuss about clearances and effort
- we mutually agree to effort
- we assign you the task after agree
- you implement & delivery
- we pay
(basically the rules of freelancer)

Closed book vs open book?
We work only on open book.
Closed book means you are unwilling to define a WBS for the work and you add only a price tag to the task. We are sorry we will not hire you in such a case!

budget?
we do not disclose the budget, but we know how much time such a task requires.
Be aware that the person interviewing you in the chat has developer background and thus requires clear technical answers.