-
Notifications
You must be signed in to change notification settings - Fork 27
ChitChat Requirements & Specifications
We want to build an open-source social network using Python in order to collaborate, improve our coding skills, and hopefully showcase in our portfolios. This project will strengthen our knowledge of building web applications using Python, collaborating with each other, front end frameworks and deployment strategies.
What should be true after this project is implemented?
We will build a social network application similar to Twitter that allows users to find and follow other users, and send their followers text-based content posts or updates.
What is explicitly not in scope and why?
What changes are required to solve this problem and achieve the project goals?
What are the high-level architectural requirements?
Diagrams can be very helpful here. The web/mobile design should look something like the one here
-
Python backend
-
JavaScript Frontend
-
The project must be API-based
-
The project should have as much automation as possible in running tests, deployment and code integrations
- Authentication
- User Profiles
- Search (find users)
- Ability to follow other users
- Posts/Tweets to followers
- Likes/Comments
What should be true about the Authentication feature?
- Users should be able to register to the site
- Users should have ability to login and logout
- Users should have the ability to update information in their profile such as username, password
- The app should send users emails on account signup, password reset etc
- Allow users to login using social logins
- Information about each user that includes:
- full name
- username
- bio
- followers list
- follow list
- Each account should have a unique account identifier such as a UUID, username or email address
Users must be able to find other users by their handle/username or name and choose whether or not they want to follow them. In the first iteration of the app, users will have the ability to follow other users to see their posts and unfollow them to stop seeing their posts.
- Follow and unfollow other profiles
- Users see only the posts of user-profiles they follow The relationship between users and their followers is asymmetric .. i.e. a user can be followed by a user they don’t follow.
- Users can make posts that their followers can see
- In the first iteration, posts are text only but future versions of the app can include video, image and audio content.