Requirements Milestone 1 Version - bounswe/bounswe2024group11 GitHub Wiki
- User: A person who uses the application or website. Can be registered or unregistered.
- Guest user: A user who uses the application or website without logging in to the system.
- Registered user: A user who is registered and uses the application or website as logged in.
- Username: A unique string that identifies the registered user.
- Password: A string that is used by the user to authenticate the system.
- Account: An instance associated with the user when a user registers to the system.
- Post: An instance that has a title, a text, an image (optionally), a publication and an edit date, an author, a comment section, like counter, a list of people that liked the post.
- Author: A registered user and the creator of a post.
- Profile: The page where a registered user's username, biography, profile picture, registration date, following list, and follower list are presented.
- Mute: When a registered user mutes another registered user, he will no longer see posts of the muted user.
- Block: When a registered user blocks another registered user, the blocked user will no longer see posts of the blocker.
- Feed: A list of posts presented to a user.
- Metadata Information: Information about a topic, a character, etc. that is available on Wikidata.
1.1.1 Account Requirements
-
1.1.1.1 Users shall be able to register the system by providing a username, email, and password.
-
1.1.1.2 Registered users shall be able to log in to the system by providing username and password.
-
1.1.1.3 Registered users shall be able to reset their passwords.
- 1.1.1.3.1 Registered users shall receive email when they reset their passwords.
-
1.1.1.4 Registered users shall be able to delete their accounts.
- 1.1.1.4.1 Registered users shall receive email when they delete their accounts.
-
1.1.1.5 Registered users shall be able to log out from the system.
-
1.1.1.6 Registered users should have a profile page.
- 1.1.1.6.1 Registered users should be able to edit their profile.
- 1.1.1.6.2 Registered users should be able to put up a profile picture.
- 1.1.1.6.3 Registered users should be able to put up a biography.
1.1.2 Post Requirements
-
1.1.2.1 Registered users shall be able to create posts.
- 1.1.2.1.1 The post author shall provide a title and text to create the post.
- 1.1.2.1.2 The post author should be able to provide an image for the post.
- 1.1.2.1.3 Users shall be able to see the author of the post.
-
1.1.2.2 Registered users shall be able to like/unlike a post.
- 1.1.2.2.1 Users shall be able to see how many people have liked/unliked the post.
- 1.1.2.2.2 Users shall be able to see who liked/unliked the post.
-
1.1.2.3 Registered users should be able to comment on a post.
- 1.1.2.3.1 Users should be able to see the comments on the post.
- 1.1.2.3.2 Users should be able to see how many comments are there on the post.
- 1.1.2.3.3 Registered users should be able to reply to the comment.
-
1.1.2.4 Registered users shall be able to bookmark/unbookmark a post.
- 1.1.2.4.1 Users should be able to see how many people have bookmarked/unbookmarked the post.
-
1.1.2.5 Registered users should be able to edit their own posts.
- 1.1.2.5.1 Users should be able to see that the post is edited.
-
1.1.2.6 Registered users should be able to delete their posts.
- 1.1.2.6.1 Users should not be able to see a deleted post.
-
1.1.2.7 Registered users should be able to disassociate themselves from their posts.
- 1.1.2.7.1 Users should not be able to see the post's author.
1.1.3 User Interaction Requirements
-
1.1.3.1 User-to-User Interactions
-
1.1.3.1.1 Registered users shall be able to follow other registered users.
- 1.1.3.1.1.1 Users shall be able to see the followers of a registered user.
- 1.1.3.1.1.2 Users shall be able to see how many people follow a registered user.
- 1.1.3.1.1.3 Users shall be able to see the people whom a registered user follows.
- 1.1.3.1.1.4 Users shall be able to see how many people a registered user follows.
-
1.1.3.1.2 Registered users should be able to mute other registered users.
- 1.1.3.1.2.1 Registered users should not be able to see muted users' posts in search results.
-
1.1.3.1.3 Registered users should be able to block other registered users.
- 1.1.3.1.3.1 Registered users who have been blocked by another user should not be able to see the posts whose author is the blocker.
-
1.1.3.1.4 Registered users shall be able to unfollow a followed registered user.
-
-
1.1.3.2 User-to-System Interactions
- 1.1.3.2.1 Users shall be able to search for posts.
- 1.1.3.2.1.1 Users should be able to sort the results by most liked or most recent.
- 1.1.3.2.1.2 Users should be able to filter the results according to the posts' authors and date of posting.
- 1.1.3.2.1 Users shall be able to search for posts.
1.1.4 Searching and Browsing Requirements
- 1.1.4.1 Users shall be able to search by semantic searching.
- 1.1.4.2 Users shall be able to see posts as a result of a search.
- 1.1.4.3 Users shall be able to use Wikidata API for additional metadata information.
- 1.1.4.4 Users should be able to sort the results by most liked or most recent.
- 1.1.4.5 Users should be able to filter the results according to authors and publication date.
1.2.2 Feed Requirements
- 1.2.2.1 The system should provide a feed for users.
- 1.2.2.1.1 The system should show recently published posts to guest users.
- 1.2.2.1.2 The system should show the registered user's followings' recently published posts to the registered user.
1.2.3 Authentication Requirements
- 1.2.3.1 The system shall only allow a username and an email address that is not used before upon registration.
- 1.2.3.2 The system shall remove the user's information when a user deletes his account.
- 1.2.3.3 The system shall hash users' authentication information.
2.1.1 Response Time
- 2.1.1.1 The system-user interaction should respond in an acceptable time.
- 2.1.1.2 The system-network interaction should result in an acceptable time.
2.1.2 Resource Utilization
- 2.1.2.1 The system should use CPU in an efficient manner.
- 2.1.2.2 The system should use memory in an efficient manner.
2.2.1 Authentication
- 2.2.1.1 The system should implement password-based authentication.
2.2.2 Authorization
- 2.2.2.1 The system should prevent unauthorized access to accounts.
2.2.3 Secure Communications
- 2.2.3.1 The system should be encrypted and secured by HTTPS protocol.
2.2.4 User Privacy
2.3.1 Browser Compatibility
- 2.3.1.1 The system should support Chrome version 124.0.6356.6 or later.
2.3.2 Mobile Compatibility
- 2.3.2.1 The system should support Android version 14 or later.