Requirements - bounswe/2021SpringGroup7 GitHub Wiki
Glossary
1. Account Information : A user’s personal data such as name, email, username, location, birthday etc.
2. Admin : A user of the system that organizes and manages other users’ activities.
3. Banning : Prohibiting a user’s access to the system.
4. Black List : The list of users who are not allowed the login the system.
5. Blocking : Event that represents a user(blocker) prohibiting another user’s(blocked) interaction to herself.
6. Caption : A title or a brief explanatory text.
7. Comment : Text messages that users leave to a post.
8. Downtime : Time during when the system is unavailable for use.
9. Email : A Message that is sent from a computer user to other user or users via a network electronically.
10. Failure : An unsuccessful event in the system.
11. Follow : Where a user chooses to see another user's or location's posts in feed.
12. Guest : A person in the system that has not logged in.
13. HTTPS : Stands for Hypertext Transfer Protocol Secure.
14. Like : A user showing their approval to another user’s activity.
15. Location : A real place in the world that has been added to the system.
16. Maintenance : A scheduled event that is for keeping the system in a good condition.
17. Mute : A user disabling the notifications of a user or a place.
18. Notification : A message sent by the system to a user.
19. Notifications Box : Where all the notifications are kept together.
20. Password : A character string that enables a user to login.
21. Pinning : The way of highlighting the desired content by user.
22. Post : Social media content that is uploaded the system such as photo, video, or story.
23. Privacy Policy : Legal document that states how the system discloses the usage of data gathered from users.
24. Private Account: Only followers who the account approves can see its profile and posts.
25. Profile : It is a unique page for each users showing their personal information.
26. Public Account: Anyone can see the account’s post.
27. Recommendation : Recommending the other users or locations according to user’s interests.
28. Reply : A function that allows the user to respond to a comment or a reply.
29. Report : Reporting any content that is in violations of the our Terms of Use.
30. Search : Trying to find a location, user or a post.
31. Semantic Search : Searching process with understanding a searcher’s intent through contextual meaning.
32. Story : An account of past event in someone's life.
33.Spam Folder : The folder, in which users cannot access the contents, containing spam contents.
34. System: Software of the product.
35. Tag : Keyword added to a social media post to categorize content.
36. Terms of Use : The legal agreements that clarifies the legal obligations of the user, which is declared by service provider, in case of using the service.
37. User : Whoever has an account with which a user can successfully login to the system.
38. Username : A character string that identify a user.
1. Functional Requirements
1.1 User Requirements
-
1.1.1 Profile
- 1.1.1.1 Users shall be able to block other users.
- 1.1.1.2 Users shall be able to view any of their personal information (email, username and name, location, birthday if provided).
- 1.1.1.3 Users shall be able to edit any of their personal information (email, username and name, location, birthday if provided).
- 1.1.1.4 Users shall be able to see users that they follow and are followed by.
- 1.1.1.5 Users shall be able to delete their accounts.
-
1.1.2 Posting
- 1.1.2.1 Users shall be able to create posts with a story.
- 1.1.2.2 Users shall be able to add tags, photo, video and voice to their posts.
- 1.1.2.3 Users shall be able to add a location with its name or by specifying the location on the map interface.
- 1.1.2.4 Users shall be able to add multiple locations related to their story.
- 1.1.2.5 Users shall be able to specify time in their posts to declare exact time or time interval with a maximum of 10 years.
- 1.1.2.6 Users shall be able to edit their own posts.
- 1.1.2.7 Users shall be able to delete their own posts.
- 1.1.2.8 Users shall be able to like the post of their followings.
- 1.1.2.9 Users shall be able to comment on the post of their followings.
- 1.1.2.10 Users shall be able to view users who liked or commented to their posts.
- 1.1.2.11 Users shall be able to delete comments made to their own posts.
- 1.1.2.12 Users shall be able to reply to comments made by other users with comments.
- 1.1.2.13 Users should be able to save the posts of their followings.
- 1.1.2.14 Users should be able to pin comments made to their own posts to the top.
-
1.1.3 User to User Interaction
- 1.1.3.1 Users shall be able to view the posts of their following accounts.
- 1.1.3.2 Users shall be able to report other users posts, if the user has suspicion about its accuracy.
- 1.1.3.3 Users shall be able to follow other users.
- 1.1.3.4 Users shall be able to unfollow other users.
- 1.1.3.5 Users shall be able to view posts of other users that they follow or have public profile.
- 1.1.3.6 Users shall be able to view the followers and followings of other users that they follow or have public profile.
-
1.1.4 Searching
- 1.1.4.1 Users shall be able search other users by their username.
- 1.1.4.2 Users shall be able search locations by their name.
- 1.1.4.3 Users shall be able to specify the searched location on the map.
- 1.1.4.4 Users shall be able to do semantic search by using tags.
- 1.1.4.5 Users shall be able to filter the search results according to time.
-
1.1.5 Recommendation
- 1.1.5.1 Users shall be able to view recommended locations based on their system activity and current location.
1.2 Guest Requirements
- 1.2.1 Guests shall be able to create a new account by choosing a password (email confirmation) and providing email, username (name, location, birthday optionally).
- 1.2.2 Guests shall be able to login to the system by entering username and password if they already have an account.
- 1.2.3 Guests shall be able to only search and view locations.
1.3 Admin Requirements
- 1.3.1 Admins shall be able to login to the system by entering username and password.
- 1.3.2 Admins shall be able to review any content that is reported by users.
- 1.3.3 Admins shall be able to filter reported contents for the types of posts, comments,tags and accounts.
- 1.3.4 Admins shall be able to add users to Black List.
- 1.3.5 Admins shall be able to remove the users from Black List.
- 1.3.6 Admins shall be able to add the content of post, comment, and tags into the spam folder.
- 1.3.7 Admins shall be able to use any search functions that are used by users.
1.4 System Requirements
-
1.4.1 Sign Up
- 1.4.1.1 System shall require e-mail confirmation after sign-up.
- 1.4.1.2 System shall not allow multiple registration with the same e-mail.
-
1.4.2 Login
- 1.4.2.1 System shall require a password and a unique username to login.
- 1.4.2.2 The password shall be at least 8 characters.
- 1.4.2.3 The password shall consist of alphanumeric characters.
- 1.4.2.4 The username shall consist of alphanumeric characters.
-
1.4.3 Recommendation
- 1.4.3.1 The system should recommend posts and locations to users according to their activity on the system and their current locations.
-
1.4.4 Notifications
- 1.4.4.1 The system shall support a notification mechanism.
- 1.4.4.2 The system shall notify the user if the following events occur via notification box.
- 1.4.4.2.1 Any activity that happened on a user’s post
- 1.4.4.2.1.1 Post is liked
- 1.4.4.2.1.2 Post is commented
- 1.4.4.2.1.2 A comment on the post is replied
- 1.4.4.2.2 Any activity that happened on a user profile
- 1.4.4.2.2.1 The user has a new follower
- 1.4.4.2.2.2 The private user gets following request
- 1.4.4.2.2.3 The user following request gets accepted
- 1.4.4.2.1 Any activity that happened on a user’s post
2. Nonfunctional Requirements
-
2.1 Portability
- 2.1.1 The system shall have an Android application and a web page.
-
2.2 Accessibility
- 2.2.1 Language of the Android application and we page shall be English.
-
2.3 Performance
- 2.3.1 The system response should be in 3 second.
- 2.3.2 The system should handle 500 requests per second.
- 2.3.3 The system’s Android application size should be less than 200 MB.
-
2.4 Reliability
- 2.4.1 The system shall go down for maintenance once a month.
- 2.4.2 The maintenance shall not take more than 30 minutes.
- 2.4.3 Rest of time, downtime should be less than %1 for failures.
-
2.5 Security
- 2.5.1 The passwords shall be kept encrypted in database.
- 2.5.2 The web application shall only be accessed by HTTPS protocol.
-
2.6 Legal and Ethical Issues
-
2.7 Implementation
- 2.7.1 The system shall use W3C standards and W3C Activity Streams Protocol for subscriptions and notifications.
- 2.7.2 The tagging system should be supported with Wikidata.org.
-
2.8 Robustness
- 2.8.1 System should restart the application in 45 minutes after failure.
- 2.8.2 Server admins should restart application manually in big failures.
- 2.8.3 Restart after big failures should take up to 4-5 hours.
- 2.8.4 Less than %2 of events/features should cause system failure.