##### Download the project and start it according to the instructions provided by the student. Try accessing the API endpoints with Postman or similar API testing tool.
###### Does the application run and respond to API requests?
##### Check the implementation of CRUD operations for Users and Products.
###### Are all CRUD operations correctly implemented for Users and Products?
##### Try authenticating with a user. Then, try performing operations on Users and Products.
###### Does the authentication work correctly? Do operations respect the user roles?
##### Check the handling of exceptions. Try to create scenarios where the application could throw exceptions (like trying to update non-existing user).
###### Does the application handle the exceptions and return appropriate HTTP response codes and messages?
##### Check if the "GET Products" API is accessible without authentication.
###### Can you access the "GET Products" API without being authenticated?
#### Security
##### Check the implementation of the mentioned security measures (hashed passwords, input validation, protection of sensitive information, HTTPS).
###### Are all the mentioned security measures implemented?
#### Code Quality and Standards
##### Check the use of appropriate annotations in the data classes.
###### Are the annotations @Document, @Id, and @Field used correctly in the data classes?
##### Check the use of appropriate annotations in the controller classes.
###### Are the annotations @RestController, @RequestMapping, @GetMapping, @PostMapping, @PutMapping, and @DeleteMapping used correctly in the controller classes?
##### Check the use of the @Autowired annotation for dependency injection.
###### Is the @Autowired annotation used correctly for dependency injection?
##### Check the use of appropriate annotations for authentication and role-based access control.