Everyone uses zomato or swiggy, but have you ever seen how restaurant rating systems work? Design a restaurant rating platform with the features given below.
-
Users should be able to register to give ratings ( 1 to 5 ) for restaurants.
-
Users can add optional dish name(s) and rating descriptions along with a rating. Basically, It is a review.
-
Fetch reviews for a restaurant based on filter and order conditions mentioned below:
-
Filter reviews based on a range of ratings ( e.g., Filter reviews that have a rating between 2 and 5 )
-
Display ratings in ascending or descending order The default order is to display ratings in descending order List restaurants based on descending order of (average) rating.
-
During this Micro-Experience, the developer:
-
Set up a new Project with the required classes.
-
Understand the application requirements and implement the problem statement from scratch.
-
Tested the implementation with test cases to ensure correctness.
-
Clearly understand the Problem Statement Requirements.
-
Identify the system's Primary Use Cases / Behaviour.
-
Identify the Key Objects / Entities from the listed use cases.
-
Implement entities with the identified attributes and their behavior.
-
Implement the relationship between the entities.
-
Write good quality tests for entities that cover all the appropriate behavior.
-
Implement services & repositories layer of QContest adhering to the SOLID principles.
-
Follow Test Driven Development to ensure correctness and better code coverage.