Requirements of Yelp’s Design
Learn about the requirements for a proximity service like Yelp.
Requirements
Let’s identify the requirements of our system.
Functional requirements
The functional requirements of our systems are below:
-
User accounts: Users will have accounts where they’re able to perform different functionalities like log in, log out, add, delete, and update places’ information.
Note: There can be two types of users: business owners who can add their places on the platform and other users who can search, view, and give a rating to a place.
-
Search: The users should be able to search for nearby places or places of interest based on their GPS location (longitude, latitude) and/or the name of a place.
-
Feedback: The users should be able to add a review about a place. The review can consist of images, text, and a rating.
Non-functional requirements
The non-functional requirements of our systems are:
-
High availability: The system should be highly available to the users.
-
Scalability: The system should be able to scale up and down, depending on the number of requests. The number of requests can vary depending on the time and number of days. For example, there are usually more searches made at lunchtime than at midnight. Similarly, during tourist season, our system will receive more requests as compared to in other months of the year.
-
Consistency: The system should be consistent for the users. All the users should have a consistent view of the data regarding places, reviews, and images.
-
Performance: Upon searching, the system should respond with suggestions with minimal latency.
Resource estimation
Let’s assume that we have:
- A total of 178 million unique users.
- 60 million
Level up your interview prep. Join Educative to access 70+ hands-on prep courses.