Summary: Designing Facebook
Get an overview of designing Facebook case study, covering key requirements, important classes, and design highlights.
Now that you’ve completed the Facebook case study, let’s take a moment to reflect on and consolidate what we’ve learned. We’ll revisit the key system requirements, identify the core classes along with their responsibilities and relationships, and highlight the major design principles applied. We’ll also examine how objects interact within the system and walk through the overall workflow to understand how the components come together to achieve the desired functionality.
Key requirements
The following are the primary functional and non-functional requirements for the Facebook system:
Users can create, edit, and set privacy for their profile, including personal info, work, education, and places.
Users can search for other users, groups, pages, and posts.
Users can create posts, set privacy for each post, and add attachments.
Users can send, accept, reject, or block friend requests, and unfriend users.
Users can follow or unfollow other users without being friends.
Users can like, share, and comment on posts and comments.
The system notifies users about relevant events (messages, friend requests, comments, etc.).
Users can send and receive messages.
Users can create, join, leave, follow, or unfollow pages and groups, and set group/page privacy or delete them.
Page/Group admins can manage members, block/unblock users, and change privacy settings. ...