Ethan's Blog


  • Home

  • Archives

  • Tags

  • Search

Designing Typeahead Suggestion

Posted on 2021-02-18

What is Typeahead Suggestion?

Typeahead suggestions enable users to search for known and frequently searched terms. As the user types into the search box, it tries to predict the query based on the characters the user has entered and gives a list of suggestions to complete the query. Typeahead suggestions help the user to articulate their search queries better. It’s not about speeding up the search process but rather about guiding the users and lending them a helping hand in constructing their search query.

Requirements and Goals of the System

  • Functional Requirements: As the user types in their query, our service should suggest top 10 terms starting with whatever the user has typed;
  • Non-Function Requirements: The suggestions should appear in real-time. The user should be able to see the suggestions within 200ms;
Read more »

Designing Youtube or Netflix

Posted on 2021-02-18

Why Youtube?

Youtube is one of the most popular video sharing websites in the world. Users of the service can upload, view, share, rate, and report videos as well as add comments on videos.

Requirements and Goals of the System

For the sake of this exercise, we plan to design a simpler version of Youtube with following requirements:
Functional Requirements:

  1. Users should be able to upload videos;
  2. Users should be able to share and view videos;
  3. Users should be able to perform searches based on video titles;
  4. Our services should be able to record stats of videos, e.g., likes/dislikes, total number of views, etc;
  5. Users should be able to add and view comments on videos;

Non-Functional Requirements:

  1. The system should be highly reliable, any video uploaded should not be lost;
  2. The system should be highly available. Consistency can take a hit (in the interest of availability); if a user doesn’t see a video for a while, it should be fine;
  3. Users should have a real-time experience while watching videos and should not feel any lag;

Not in Scope: Video recommendations, most popular videos, channels, subscriptions, watch later, favorites, etc.

Read more »

Designing Twitter

Posted on 2021-02-17

What is Twitter?

Twitter is an online social networking service where users post and read short 140-character messages called “tweets”. Registered users can post and read tweets, but those who are not registered can only read them. Users access Twitter through their website interface, SMS, or mobile app.

Requirements and Goals of the System

We will be designing a simpler version of Twitter with the following requirements:
Functional Requirements:

  1. Users should be able to post new tweets;
  2. A user should be able to follow other users;
  3. Users should be able to mark tweets as favorites;
  4. The service should be able to create and display a user’s timeline consisting of top tweets from all the people the user follows;
  5. Tweets can contain photos and videos;

Non-Functional Requirements:

  1. Our service needs to be highly available;
  2. Acceptable latency of the system is 200ms for timeline generation;
  3. Consistency can take a hit (in the interest of availability); if a user doesn’t see a tweet for a while, it should be fine;

Extended Requirements:

  1. Searching for tweets;
  2. Replying to a tweet;
  3. Trending topics – current hot topics/searches;
  4. Tagging other users;
  5. Tweet Notification;
  6. Who to follow? Suggestions?
  7. Moments;
Read more »

Designing Facebook Messenger

Posted on 2021-02-14

What is Facebook Messenger?

Facebook Messenger is a software application which provides text-based instant messaging services to its users. Messenger users can chat with their Facebook friends both from cell-phones and Facebook’s website.

Requirements and Goals of the System

Our Messenger should meet the following requirements:
Functional Requirements:

  1. Messenger should support one-on-one conversations between users;
  2. Messenger should keep track of the online/offline statuses of its users;
  3. Messenger should support the persistent storage of chat history;

Non-Functional Requirements:

  1. Users should have real-time chat experience with minimum latency;
  2. Our system should be highly consistent; users should be able to see the same chat history on all their devices;
  3. Messenger’s high availability is desirable; we can tolerate lower availability in the interest of consistency;

Extended Requirements:

  1. Group Chats: Messenger should support multiple people talking to each other in a group;
  2. Push notifications: Messenger should be able to notify users of new messages when they are offline;
Read more »

Designing Dropbox

Posted on 2021-02-14

Why Cloud Storage?

Cloud file storage services have become very popular recently as they simplify the storage and exchange of digital resources among multiple devices. The shift from using single personal computers to using multiple devices with different platforms and operating systems such as smartphones and tablets each with portable access from various geographical locations at any time, is believed to be accountable for the huge popularity of cloud storage services. Following are some of the top benefits of such services:

  • Availability: The motto of cloud storage services is to have data availability anywhere, anytime. Users can access their files/photos from any device whenever and wherever they like;
  • Reliability and Durability: Another benefit of cloud storage is that it offers 100% reliability and durability of data. Cloud storage ensures that users will never lose their data by keeping multiple copies of the data stored on different geographically located servers;
  • Scalability: Users will never have to worry about getting out of storage space. With cloud storage you have unlimited storage as long as you are ready to pay for it;

If you haven’t used dropbox.com before, we would highly recommend creating an account there and uploading/editing a file and also going through the different options their service offers. This will help you a lot in understanding this chapter.

Read more »
1…181920…55
necusjz

necusjz

274 posts
16 tags
© 2016 - 2025 necusjz
Powered by Hexo
Theme - NexT.Mist