Machine Coding - Restaurant Rating

Overview

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.

During this Micro-Experience, the developer:

  • 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.

Extended Overview

42bda357-029b-41fd-a4d2-dc9a23521746

Implement Restaurant Rating from Scratch

Scope of Work

  • 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.

Skills used

Object Oriented Design, Java, Python, Unit Testing, Design Patterns, SOLID Principles