Design Social Media App
Design and implement a low-level design for a social media application similar to Instagram and other popular social media platforms, such as Facebook and Twitter, that allows users to share images, videos, and updates with their followers. The application should provide features such as user registration, login, post creation, viewing a feed, commenting, liking, following/unfollowing, and search capabilities. The goal is to create a user-friendly platform for users to share and discover content, connect with others, and stay up to date with their friends and family.
Requirements:
- User Registration: A user should be able to register and create an account with the application.
- User Login: A user should be able to log in to their account using their username and password.
- Post Creation: A user should be able to upload images and videos to their account, add captions and hashtags to the posts. [While coding, exclude the feature of uploading images and videos but include it in the diagram]
- View Feed: A user should be able to view the posts from their followers in their feed.
- Commenting: A user should be able to comment on posts in their feed.
- Liking: A user should be able to like posts in their feed.
- Follow/Unfollow: A user should be able to follow and unfollow other users.
- Search: A user should be able to search for other users and view their profiles.
Sample Input/Output: