Requirements (Draft) - bounswe/bounswe2023group7 GitHub Wiki

Requirements

Introduction

Purpose

Document Convention

Product scope

References

Functional Requirements

1. User Requirements

  • 1.1. The platform shall include registering facility for guests.

    • 1.1.1. The platform shall give username to each user.
    • 1.1.2. The platform shall get extra personal information such as name, hometown…
    • 1.1.3. Users shall be able to change their password and e-mails.
    • 1.1.4. Users shall be able to reset their password.
    • 1.1.5. Users should be able to sign in with their other social media accounts which are, Facebook, Google, Amazon, and Apple.
    • 1.1.6. The platform shall not require user to enter all information about them while signing up.
    • 1.1.7. Some users such as developers, professional players, streamers, video producers should be able to get verified account.
    • 1.1.8. Users should be able to delete or make inactive their accounts.
  • 1.2. The platform shall include loginning facility for guests.

    • 1.2.1. Users shall be able to sign in the platform with email and password.
    • 1.2.2. Users shall be able to sign out.
    • 1.2.3. Users should be able to keep account signed in for a week.
    • 1.2.4. Users shall be able to sign in without validation when they requested to be remembered with “Remember Me” option.
  • 1.3 The platform shall present content to guests.

    • 1.3.1. Guests shall be able to visit and comment each page of forum except administration forums.
    • 1.3.2. Guests shall be able to search features as users.
    • 1.3.3. Guests shall not be able to add anything to platform.
    • 1.3.4. Besides users, guests shall be able to communicate with developers to suggest features.
  • 1.4. The platform shall have a land page.

    • 1.4.1. Users shall be able to see what platform contains features. These features are forum, events, reviews, upcoming titles, communities, recommendations.
    • 1.4.2. Users should be able to use search bar in this page.
    • 1.4.3. Users shall be use register link and login link in this page.
  • 1.5. The platform shall include a forum.

    • 1.5.1. The Forum shall consist of subforums which are involved with game types or directly games.
    • 1.5.2. Users shall be able to visit and comment each page of forum except administration forums.
    • 1.5.3. Each subforum shall contain threads.
    • 1.5.4. Threads shall consist of one first post and comments.
    • 1.5.5. Users shall be able to open a thread.
    • 1.5.6. Users shall be able to cite and comment to first post.
    • 1.5.7. Users shall be able to cite and comment the others’ comments.
    • 1.5.8. Users shall be able to like or dislike a post or comment.
    • 1.5.9. Users should be able to find useful a post or comment.
    • 1.5.10. Users should be able to edit their comments and first posts.
    • 1.5.11. Users should be able to delete their comment unless it is first post.
    • 1.5.12. Specific users shall be able to delete a thread and a first post.
    • 1.5.13. Specific users shall be able to lock or unlock a thread if problem is resolved.
    • 1.5.14. The post owner shall be able to edit thread header.
    • 1.5.15. The post owner shall be able to tag header.
    • 1.5.16. Some volunteer users shall be approved to have more authority on forum than normal users. They shall be able to be forum moderator which is mentioned in 1.5.12. and 1.5.13. as specific users.
    • 1.5.17. Users should be able to watch from YouTube mini video launcher.
    • 1.5.18. Users should be able to screen image links.
    • 1.5.19. Users shall be able to subscribe some threads.
    • 1.5.20. Users shall be able to subscribe subforums to reach another users who play same game.
  • 1.6. The platform shall have pages for user profiles.

    • 1.6.1. Users shall be able to change their personal information in their profile.
    • 1.6.2. Users shall be able to be free about which information they share on their profile.
    • 1.6.3. Users shall be able to adjust their visibility depending on member status and user relationships.
    • 1.6.4. Users’ membership status for forum shall be seen on their profile.
    • 1.6.5. Users should be able to get labels in their profile based on their interests and specialties on their profiles.
    • 1.6.6. Users shall be able to share their favorite games on their profiles.
    • 1.6.7. Users should be able to share their achievements on their profiles.
    • 1.6.8. Users shall be able to share their gaming platform profiles, which are Steam, Epic, IndieGala, Humble Bundle, Ubisoft Connect, GOG, Origins, Xbox Live, itch.io, Google Play Games, on their profiles.
    • 1.6.9. Users should be able to share the other social media accounts.
    • 1.6.10. Users shall be able to add a profile photo or avatar to their profiles.
    • 1.6.11. Users shall be able to add their favorite developers to their profiles.
    • 1.6.12. Users shall be able to add tags related to their favorite genre to their profiles.
    • 1.6.13. Users should be able to get and share badges on their profiles for experiences in the platform.
    • 1.6.14. Users should be able to share preview about their contents which they created on their profiles.
    • 1.6.15. Users’ last activities should be seen on their profiles.
    • 1.6.16. Users should be able to share their speedrunnning successes on their profiles.
    • 1.6.17. Users should be able to share their reputation points on their profiles.
    • 1.6.18. Number of messages and posts of users shall be seen on profile.
    • 1.6.19. Developers and e-sports players shall be able to add their associated titles/teams/companies to their profiles.
  • 1.7 Users shall be able to interact with one another.

    • 1.7.1. Users shall be able to message the other users.
    • 1.7.2. Users shall be able to inhibit message receiving.
    • 1.7.3. Users should be able to delete message which they sent.
    • 1.7.4. Users shall be able to view the other users’ profiles as much as permitted.
    • 1.7.5. Users should be able to give reputation points the other users.
    • 1.7.6. Users should be able to follow the other users.
    • 1.7.7. Users should be able to unfollow the other users.
    • 1.7.8. Users shall be able to report the other users.
    • 1.7.9. Users shall be able to block some users not to receive message from them.
    • 1.7.10. Users shall be able to unblock some users which they blocked to receive message from them.
    • 1.7.11. Users shall be able to mention some users in the forum.
    • 1.7.12. Specific users shall be able to imply a restriction for a user. For instance, banned for posting, commenting, and messaging due to illegal behavior.
    • 1.7.13. Specific users shall be able to delete a user account due to illegal behavior.
    • 1.7.14. Users should be able to create group for easy communication.
    • 1.7.15. Users should be able to message between group members.
    • 1.7.16. Users should be able to send invitation to some group members.
  • 1.8. Users shall be able to search semantically.

  • 1.9. Users shall be create online or offline event.

    • 1.9.1 Organizers shall be able to determine a date interval for an event.
    • 1.9.2 Organizers shall be able to cancel an event.
    • 1.9.3 Organizers shall be able to determine a place for an offline event.
    • 1.9.4 Organizers shall be able to determine a communication channel for event.
    • 1.9.5 Organizers shall be able to determine an attendee limit.
    • 1.9.6 Users shall be able to join an event if limit is not passed.
    • 1.9.7 Organizers shall be able to leave notes to all users for event.
    • 1.9.8 Organizers shall be able to exclude user from event.
    • 1.9.9 Organizers shall be able to tag event.
  • 1.10. Developers shall be able to use the platform to promote their upcoming titles to other users.

    • 1.10.1. Developers shall be able to share new developments for the game.
    • 1.10.2. Developers shall be able to share launching date.
    • 1.10.3. Developers shall be able to share demo version of the game.
  • 1.11. The platform shall recommend games for users.

  • 1.12. The platform shall have web page and Android application.

  • 1.13. The platform shall allow to annotate text or image to clarify posts.

  • 1.14. Ethical concerns shall be considered.

    • 1.14.1 The platform shall censor inappropriate words.
    • 1.14.2 Specific users shall be able to punish inappropriate behaviors as mentioned in 1.7.13. and 1.7.14..

2. System Requirements

  • 2.1 Search

    • 2.1.1 System shall allow user to search for forum thread, subforum, forum comment, message, upcoming titles, gaming communities-groups, users, and events.
    • 2.1.2 System shall allow user to filter the search results.
      • 2.1.2.1 System shall allow users to filter what type of feature they searched. For instance, users shall be able to search only users and events.
      • 2.1.2.2 System shall allow users to filter user mentioned comments. For example, user named @user123 shall be able to search comments which @user124 is mentioned.
      • 2.1.2.3 System shall allow users to filter community groups with game genre or game.
      • 2.1.2.4 System shall allow users to filter upcoming titles with developer and game genre.
    • 2.1.3 System shall allow users to sort the search results.
      • 2.1.3.1 System shall allow users to use sorting features ascending or descending.
      • 2.1.3.2 System shall allow users to sort the threads, alphabetically, by first post date, by last post date,by number of comments in threads and by usefulness of a thread.
      • 2.1.3.3 System shall allow users to sort the subforum alphabetically, by first post date, by last post date, by number of comments in forum and by usefulness of a forum.
      • 2.1.3.4 System shall allow users to sort the comments by date, by number of replies for the comment and by usefulness of the comment.
      • 2.1.3.5 System shall allow users to sort the messages by date.
      • 2.1.3.6 System shall allow users to sort upcoming titles by post date or launch date.
      • 2.1.3.7 System shall allow users to sort gaming communities alphabetically and by number of members.
      • 2.1.3.8 System shall allow users to sort users alphabetically, by reputation points, user membership date or number of messages or number of posts.
      • 2.1.3.9 System shall allow users to sort events by date or number of participants.
  • 2.2 Notifications

    • 2.2.1 Users shall get notifications from the system.
      • 2.2.1.1 System shall notify user regarding the posts on the forum.
        • 2.2.1.1.1 System shall notify user when another user likes or comments the user's post.
        • 2.2.1.1.2 System shall notify user when another user likes or comments the user's comment.
      • 2.2.1.2 System shall notify user when another user follows the user.
      • 2.2.1.3 System shall sends notifications to the user about other users' posts for which the user has previously turned on notifications.
  • 2.3 Recommendations

    • 2.3.1 System shall recommend the posts or events according to the user's preferences.
      • 2.3.1.1 Preferences can be determined by tags.
    • 2.3.2 System shall recommend other users according to the user's preferences.
      • 2.3.2.1 Preferences can be determined by tags.
  • 2.4 Annotations

    • 2.4.1 System shall allow user to annotate content on the platform with text or images.
    • 2.4.2 Annotations can be a URI that should act as a hyperlink, or semantic resources that provide detailed information about the resource.
    • 2.4.3 Annotations shall be compliant with the W3C Web Annotation Data Model and checked to follow W3C standards.

Non-Functional Requirements

  • 3.1. Performance

    • 3.1.1. The platform shall strive to have a Largest Contentful Paint (LCP) of 2.5 seconds or less, except external image and video sources, for at least 75% of page visits for both mobile application and web page.
    • 3.1.2. The platform shall strive to have a First Input Delay (FID) of 100 milliseconds or less, except external image and video sources, for at least 75% of page visits for both mobile application and web page.
    • 3.1.3. The platform shall strive to have a Cumulative Layout Shift (CLS) score of 0.1 or less, except external image and video sources, for at least 75% of page visits for both mobile application and web page.
    • 3.1.4. The platform shall strive to have a First Contentful Paint (FCP) of 1.8 seconds or less, except external image and video sources, for at least 75% of page visits for both mobile application and web page.
    • 3.1.5. The platform shall strive to have an Interaction to Next Paint (INP) of 200 milliseconds or less, except external image and video sources, for at least 75% of page visits for both mobile application and web page.
    • 3.1.6. The platform shall strive to have a Time to First Byte (TTFB) of 0.8 seconds or less, except external image and video sources, for at least 75% of page visits for both mobile application and web page.
    • 3.1.7. The platform shall meet these 1-6 requirements for at most 10000 users at the same time.
    • 3.1.8. The platform shall have basic response time at most 4 second with more than 10000 users at the same time.
    • 3.1.9. The platform shall back up content every day.
    • 3.1.10 The platform shall be accessible at least %98 of a day.
  • 3.2. Compatibility

    • 3.2.1 The mobile application of platform shall run on Android 7.93.4 and above.
    • 3.2.2 The web site shall support support versions of the following browsers: Edge, Safari, Chrome, Firefox, any browser based on Webkit / Chromium engines and Tor network.
  • 3.3. Privacy

    • 3.3.1. The rules defined by GDPR/KVKK shall be followed.
    • 3.3.2. Personal information and contact information shall be protect according to GDPR.
    • 3.3.3. Privacy policy shall be accepted by user to be registered.
    • 3.3.4. All information about users shall be encrypted.
    • 3.3.5. Emails shall be unique and valid.
    • 3.3.6. All content shall be able to make private or public via user’s decisions.
    • 3.3.7. Online or offline events can be organized public or private.
  • 3.4. Security

    • 3.4.1. Bot accounts shall be eliminated.
    • 3.4.2. Passwords shall contain at least one number and one capital letter.
    • 3.4.3. Verification code shall be sent when logging in from a different device.
    • 3.4.4. Users can enable two-factor authentication for security concerns.
    • 3.4.5. Users who disturb other users or violate the rules shall be banned for a period or permanently.
    • 3.4.6. Annotations shall be scanned to avoid any malware.
⚠️ **GitHub.com Fallback** ⚠️