End to end implementations!
1) Remember the big picture
Before you start... Take a look at the whole picture:

project overview
2) Make sure you take good care of your environment!
- Have your docker up and running (running the database container obviously!) - Open up postman! - Open DBeaver and get ready to do SQL queries! - Get IntelliJ ready to run your project!
3) Implement all the company endpoints and test them all the way from Postman!
- create (create a company in the database) - fetch (get company by id) - edit (change company fields and save it in the database) - search (find a good way to input parameters to search for a specific company (i.e. by name and vat)
4) Implement all the product endpoints and test them all the way from Postman!
- create (create a product in the database) - fetch (get product by id) - upload product photo (and save it in a project folder)
5) Implement all the purchase endpoints and test them!
- create (create a purchase in the database) - fetch (get product by id) - delete purchase by id hint: the path to the purchase should go through /companies/{company-id}/products/{product-id}/purchase
6) Exceptions introduction...
What would happen if you try to fetch a product of a company does not exist? Find out and try to implement code to deal with this scenario.