Requirements - bounswe/bounswe2023group7 GitHub Wiki


Software Requirements Specification for Game Community Platform

Prepared by : Group 7

Prepared for:

Boğaziçi University - CMPE 352 Fundamentals of Software Engineering - Spring 2023
Boğaziçi University - CMPE 451 Project Development in Software Engineering - Fall 2023

Introduction

Purpose
Our purpose with this project is to create an online gaming platform where gamers can do various activites. Our algorithm will provide users to find numerous like-minded companion(s) on said activities.
Document conventions
The reqiurements constructed as the format "a.b.c.d", a, b, c and d being integers. When we add a new requirement, the part corresponding to its value increments by one. For example in "1.2.3.3. System shall notify the user when another user follows the user." The main 'a' part is "1 Functional Requirements" the second 'b' part is its subtitle "1.2 System Requirements" and the 'c' part is the previous' subtitle "1.2.3 Notifications". The requirement 1.2.3.3 is the 3rd one under that specific subtitle.
Product scope
Our platform will have different parts to provide users with a good experience. Users will be able to create their own profile page. They will be able to follow, and unfollow other users. They'll be able to create/participate in certain groups. The platform will also have admins to keep the platform in check. Further detail is explained in the Requirements part below.

1. Functional Requirements

1.1. User Requirements

1.1.1. Account
1.1.1.1. Register
  • 1.1.1.1.1. Guests shall be able to register to the platform with an email address, username, and password.
  • 1.1.1.1.2. Developers and professional e-sports players should be able to get official accounts.
1.1.1.2. Login
  • 1.1.1.2.1. Users shall be able to login the platform with username and password.
  • 1.1.1.2.2. Users shall be able to logout.
1.1.1.2.5. Password
  • 1.1.1.2.5.1. Users shall be able to change their password.
1.1.1.3. Account Management
  • 1.1.1.3.1. Users shall be able to delete their accounts.
1.1.2. Profile Page
  • 1.1.2.1. Users shall have a profile page.
  • 1.1.2.2. Users shall be able to edit their profile page.
  • 1.1.2.3. Users shall be able to add a profile photo to their profiles.
1.1.2.6. Personal Information
  • 1.1.2.6.1. Users shall be able to have and display their username on their profile page.
  • 1.1.2.6.2. Users shall have a bio in their profile pages.
  • 1.1.2.6.3. Users shall be able to add their favorite games on their profiles.
  • 1.1.2.6.4. Users shall be able to share the number of comments on the forum, the number of posts on the forum and number of reviews they published, on their profiles.
  • 1.1.2.6.6. Developers and e-sports players shall be able to add their associated titles/teams/companies to their profiles.
  • 1.1.2.6.7. Users shall be able to share their gaming platform profiles which is Steam on their profiles.
  • 1.1.2.6.8. Users shall be able to display their user types, that are gamer, developer, and e-sports player.
1.1.2.7. Activity Tracking
  • 1.1.2.7.1. Users’ last activities shall be seen on their profiles.
1.1.2.8. Forum
  • 1.1.2.8.1. Users should be able to display previews for posts which they created on their profiles.
  • 1.1.2.8.2. Users shall be able to display their comments on other users’ posts.
1.1.2.9. Games
  • 1.1.2.9.1. Users shall be able to display their reviews of the games.
  • 1.1.2.9.2. Developers shall be able to display their upcoming titles on their profile page.
1.1.2.10. Actions
  • 1.1.2.10.1. Users shall be able to view the other user’s profiles.
1.1.3. Game
  • 1.1.3.1. Users shall be able to create a page for a game.
  • 1.1.3.1. Users and guests shall be able to view game profiles, reviews, and average ratings of the game.
  • 1.1.3.2. Users shall be able to rate a game out of 5.
  • 1.1.3.3. Users shall be able to write reviews for the game.
  • 1.1.3.4. Users shall be able to edit their reviews.
  • 1.1.3.5. Users shall be able to like or dislike the other reviews.
  • 1.1.3.6. Users shall be able to share their rating on their reviews.
  • 1.1.3.7. Users shall be able to delete their reviews.
  • 1.1.3.8. Users should be able to follow the game.
  • 1.1.3.9. Users shall be able to see the number of the followers of the game.
  • 1.1.3.10. Users should be able to see the system requirements of the game.
  • 1.1.3.11. Users should be able to add his/her game completion duration.
  • 1.1.3.12. Users should be able to see average completion duration of the game.
  • 1.1.3.13. Users should be able to see predecessors and succesors of the game if it has.
  • 1.1.3.14. Users should be able to add and modify a guide for the game.
  • 1.1.3.15. Users should be able to see the platforms that the game is downloadable.
  • 1.1.3.16. Users should be able to see the age restrictions (PEGI).
  • 1.1.3.17. Users shall be able to add tag or tags to a game.
1.1.3.19. Entity Page
  • 1.1.3.19.1. Users shall be able to create a page for game entities which are characters, packages, items, and environments.
  • 1.1.3.19.2 Users and guests shall be able to view game entities.
  • 1.1.3.19.3. Users shall be able to reach the entity pages from game pages.
1.1.4. Upcoming Titles
  • 1.1.4.1. Developers shall be able to use the platform to promote their upcoming titles to other users.
  • 1.1.4.2. Developers shall be able to share their new developments for the game.
  • 1.1.4.3. Developers shall be able to share the launching date.
  • 1.1.4.4. Developers should be able to share a demo version of the game.
  • 1.1.4.5. Developers shall be able to edit their posts.
  • 1.1.4.6. Developers shall be able to tag their promotion posts.
  • 1.1.4.7. Users and guests shall be able to view upcoming titles.
  • 1.1.4.8. Users shall be able to comment on the upcomimg titles.
  • 1.1.4.9. Users shall be able to like or dislike title post and comments.
  • 1.1.4.10. Users shall be able to cite and comment on the other comments.
  • 1.1.4.11. Users shall be able to edit their comments.
1.1.5. Forum
  • 1.1.5.1. Guests and users shall be able to visit the forum.
  • 1.1.5.2. Users shall be able to open a thread.
  • 1.1.5.3. Users shall be able to comment to post.
  • 1.1.5.4. Users shall be able to like or dislike posts and comments.
  • 1.1.5.5. Users shall be able to comment on the other comments.
  • 1.1.5.6. Users shall be able to edit their comments.
  • 1.1.5.7. Users shall be able to delete their comment on the post.
  • 1.1.5.8. The post owners shall be able to edit their posts.
  • 1.1.5.9. The post owners shall be able to tag their threads.
  • 1.1.5.10. Users should be able to screen image links.
1.1.6. Group
  • 1.1.6.1. Users shall be able to create a group.
  • 1.1.6.2. Group administrators shall be able to add a title for the group.
  • 1.1.6.3. Group administrators shall be able to specify the number of members of the group.
  • 1.1.6.4. Group administrators shall be able to add description to their groups.
  • 1.1.6.5. Group administrators shall be able to specify the game on their groups.
  • 1.1.6.6. Group administrators shall be able to discard a group member.
  • 1.1.6.7. Users shall be able to display the members of the group.
  • 1.1.6.8. Users shall be able to filter the groups according to games, tags, and names.
  • 1.1.6.9. Users shall be able to sort the groups alphabetically, by number of users, number of empty slots ascending or descending.
  • 1.1.6.10. Users shall be able to participate in the group unless it is full.
  • 1.1.6.11. Users shall be able to leave the group.
1.1.7. Administration
  • 1.1.7.1. Admins shall be able to ban the users from posting, commenting, due to illegal behavior.
  • 1.1.7.2. Admins shall be able to unban the banned users.
  • 1.1.7.3. Admins shall be able to delete a user account due to illegal behavior.
  • 1.1.7.4. Admins shall be able to delete a thread and a post.
  • 1.1.7.5. Admins shall be able to lock or unlock a thread if the problem is resolved.
  • 1.1.7.6. Admins should be able to control the content before it becomes visible to users.

1.2. System Requirements

1.2.1. Forum/Review
  • 1.2.1.1. System should censor inappropriate words.
  • 1.2.1.2. System shall include a timestamp for each forum and review entry.
  • 1.2.1.3. System should direct to user owner of the content’s name should direct to that user’s profile page.
  • 1.2.1.4. System shall calculate the average rating of the game.
  • 1.2.1.5. System shall calculate the average completion duration of the game.
1.2.2. Search
  • 1.2.2.1. System shall allow users to search for forum thread, game, upcoming titles, groups, users, and games.
  • 1.2.2.2. System shall allow the user to filter the search for the users, games, and tags.
  • 1.2.2.3. System shall allow users to use sorting features ascending or descending.
  • 1.2.2.4. System shall allow users to sort the threads, alphabetically, by first post date, by last post date,by number of comments in threads.
  • 1.2.2.5. System shall allow users to sort the comments by date, number of replies and difference of likes and dislikes for the comment.
  • 1.2.2.6. System shall allow users to sort upcoming titles by post date or launch date.
1.2.3. Notifications
  • 1.2.3.1. System shall notify the user when another user likes or comments on the user's post.
  • 1.2.3.2. System shall notify the user when another user likes or comments the user's comment.
  • 1.2.3.3. System shall notify the user when another user follows the user.
  • 1.2.3.4. System shall send notifications to the user about other users' posts for which the user has previously turned on notifications.
  • 1.2.3.5. System shall send notification to user for update in game profile which user has followed.
1.2.4. Annotations
  • 1.2.4.1. System shall allow users to annotate content on the platform with text or images.
  • 1.2.4.2. Annotations can be a URI that should act as a hyperlink, or semantic resources that provide detailed information about the resource.
  • 1.2.4.3. Annotations shall be compliant with the W3C Web Annotation Data Model and checked to follow W3C standards.
1.2.5.Recommendations
  • 1.2.5.1. System shall recommend games for users.
1.2.6. User Data
  • 1.1.1.3.2. The data and content about the deleted accounts should be deleted from the system.

2. Non-Functional Requirements

2.1. Performance & Reliability
  • 2.1.1. The platform should strive to have a Largest Contentful Paint (LCP) of 2.5 seconds or less, excluding external image and video sources, for at least 75% of page visits for both mobile application and web page.
  • 2.1.2. The platform should 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.
  • 2.1.3. The platform should 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.
  • 2.1.4. The platform should 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.
  • 2.1.5. The platform should 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.
  • 2.1.6. The platform should 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.
  • 2.1.7. The platform should meet these 1-6 requirements for at most 10000 users at the same time.
  • 2.1.8. The platform shall have basic response time at most 4 seconds with more than 10000 users at the same time.
  • 2.1.9. The platform shall back up content every day.
2.2. Privacy
  • 2.2.1. The rules defined by GDPR/KVKK shall be followed.
  • 2.2.2. Personal information and contact information shall be protected according to GDPR.
  • 2.2.3. Privacy policy shall be accepted by the user to be registered.
  • 2.2.4. All information about users should be encrypted.
  • 2.2.5. Emails shall be unique and valid.
2.3. Security
  • 2.3.1. Bot accounts should be eliminated.
  • 2.3.2. Passwords shall contain at least one number and one capital letter.
  • 2.3.3. Verification code should be sent when logging in from a different device.
  • 2.3.4. Users should be able to enable two-factor authentication for security concerns.
  • 2.3.5. Users who disturb other users or violate the rules shall be banned for a period or permanently.
  • 2.3.6. Annotations should be scanned to avoid any malware.
2.4. Compatibility
  • 2.4.1. The mobile application of the platform shall run on Android 7.93.4 and above.
  • 2.4.2. The web site shall support at least one of the following browsers: Edge, Safari, Chrome, Firefox, any browser based on Webkit / Chromium engines and Tor network.
2.5. Availability and Accessibility
  • 2.5.1. The platform shall support the English language.
  • 2.5.2. The platform shall support UTF-8 character encoding.
  • 2.5.3. The platform shall be accessible at least %98 of the day.

Appendix

Glossary

    1. Guest: Someone who has not registered or logged in to the platform.
    1. User: Someone who has registered and logged in to the platform.
    1. Official Account: An account which confirms user's real identity.
    1. Developer: A user type for a spesific users who aims to publish and advertise their games on the platform.
    1. E-sports Player: Tag for a spesific users who have been a member of a professional e-sports team.
    1. Post: A forum content of a user to start a discussion about something.
    1. Experience: Contribution of and membership duration of a user on the platform.
    1. Last Activity: An information which shows a user is online or when logged out lastly if the user is offline.
    1. Forum Comment: A reply of user to a post or another comment to the post
    1. Review: A criticism of a user about a game on a game page.
    1. Entity: Some fundamental features in games such as characters, items, packages and environments.
    1. Character: A virtual representation of a living creature within a video game, embodying various roles such as those you can control, interact with, or challenge in the game's world to advance the storyline and player involvement.
    1. Item: Object with specific attributes or functions, within a video game, that players can interact with, collect, use, or manipulate as part of the gameplay experience.
    1. Environment: Virtual and interactive space in which a video game or other gaming experience takes place.
    1. Package: A bundle or collection of items related to a video game, which can include various components designed to enhance the gaming experience.
    1. Thread: A discussion contains both a post and comments on the post.
    1. Like: A user facility for supporting and showing interest on content of another user to enable content to be seen by more users.
    1. Dislike: A user facility for not supporting and showing disinterest on content of another user to disable content from being seen by more users.
    1. Subforum: A part of the forum, which consists of various threads on same topic.
    1. Cite: To refer an another entry on the forum.
    1. Advertisement: A notice or announcement in a public medium promoting a game.
    1. Promoting Games: Advertisement of a game, which includes features of the game, launching date and more information developer wants to share, by its developer.
    1. Gamer: A user type for spesific users who like playing games.
    1. Launching date: When the game published officially for everyone.
    1. Demo Version: The version of a game which has less and more limited content than the official game.
    1. Upvote: A user facility for supporting and showing interest on content of another user to enable content to be seen by more users.
    1. Downvote: A user facility for not supporting and showing disinterest on content of another user to disable content from being seen by more users.
    1. Group Administrator: Someone who has more authority than the other group members. The default group administrator of a group is who constitutes the group.
    1. Entry: A text of a user to reach everyone who uses the platform. Each review, post, comment is an entry.
⚠️ **GitHub.com Fallback** ⚠️