#### Initial Setup & Access ##### Download the project and initiate it using docker. Try accessing the web pages and the API endpoints using a web browser and tools like Postman. ###### Does the application run seamlessly, and are you able to interact with its functionalities? #### User & Product CRUD Operations ##### Examine the CRUD operations for Users (both client and seller) and Products. ###### Are CRUD operations for Users and Products correctly implemented, and does each user role have the appropriate access levels? #### Authentication & Role Validation ##### Sign up as a client and a seller. Afterwards, test functionalities specific to each role. ###### Does the authentication system work, and do the operations respect the user roles (seller vs client)? #### Media Upload & Product Association ##### As a seller, attempt to upload media for a product and ensure it adheres to the given size and type constraints. ###### Can media be uploaded effectively, and are the constraints enforced? Are products correctly associated with these media? #### Frontend Interaction ##### Explore the sign-in/up pages, seller product management page, product listing, and media upload page for products. ###### Are all the frontend pages functioning as expected, and is the user experience intuitive? #### Security ##### Analyze for the specified security measures like hashed passwords, input validation, protection of sensitive data, and HTTPS usage. ###### Are the mentioned security practices appropriately enforced? #### Code Quality and Standards ##### Evaluate the backend code for appropriate usage of Spring and other related annotations. ###### Are the Spring Boot, MongoDB, and other relevant annotations used correctly throughout the application? #### Frontend Implementation ##### Investigate the frontend codebase, especially the Angular components, services, and modules. ###### Is the Angular code structured efficiently, and are components, services, and modules effectively utilized? #### Error Handling & Edge Cases ##### Attempt actions that might cause errors, such as registering with an existing email, uploading invalid media formats, or exceeding the media size limit. ###### Does the application gracefully handle these errors, providing useful feedback to the user?