Skip to content

Requirements

yunusemrealtug edited this page Apr 6, 2023 · 49 revisions

Software Requirements Specification for Game Community Platform

Version: 0.1

Date: 2023/03/19

Prepared by : Group 7

Prepared for:

Boğaziçi University - CMPE 352 Fundamentals of Software Engineering - Spring 2023

Revision History

Name Date Reason for Change Version
1 2023/03/19 Adding initial version 0.1

Introduction

Purpose
Document conventions
Product scope
References

1. Functional Requirements

1.1. User Requirements

1.1.1. Authentication
1.1.1.1. Register
  • 1.1.1.1.1. Guests shall be able to register to the platform.
  • 1.1.1.1.2. Guests should be able to register with their other social media accounts which are, Facebook, Google, Amazon, and Apple.
  • 1.1.1.1.3. Users shall be able to verify their accounts via e-mails.
  • 1.1.1.1.4. Famous developers, professional e-sports players, famous streamers, famous video producers should be able to get certificated accounts.
  • 1.1.1.1.5. Users shall agree to the privacy policy and terms & conditions.
1.1.1.2. Login
  • 1.1.1.2.1. Users shall be able to login the platform with email and password.
  • 1.1.1.2.2. Users shall be able to logout.
  • 1.1.1.2.3. Users should be able to keep accounts signed in for a week.
  • 1.1.1.2.4. Users shall be able to sign in without validation when they requested to be remembered with the “Remember Me” option.
1.1.1.2.5 Password
  • 1.1.1.2.5.1. Users shall be able to change their password.
  • 1.1.1.2.5.2. Users shall be able to reset their password.
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 or avatar to their profiles.
1.1.2.4. Personal Information
  • 1.1.2.4.1. Users shall be able to have and display their full name and username on their profile page.
  • 1.1.2.4.2. Users shall have a bio in their profile pages.
  • 1.1.2.4.3. Users shall be able to add tags related to their favorite genre to their profiles.
  • 1.1.2.4.4. Users shall be able to add their favorite games on their profiles.
  • 1.1.2.4.5. Users shall be able to share the other social media accounts.
  • 1.1.2.4.6. Users shall be able to add their favorite developers to their profiles.
  • 1.1.2.4.7. 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.4.8. Developers and e-sports players shall be able to add their associated titles/teams/companies to their profiles.
  • 1.1.2.4.9. 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.1.2.4.10. Users shall be able to display their user types, that are gamer, developer, and e-sports player.
1.1.2.5. Achievements
  • 1.1.2.5.1. Users should be able to share their game achievements on their profiles.
  • 1.1.2.5.2. Users should be able to get and share badges on their profiles for experiences in the platform.
1.1.2.6. Activity Tracking
  • 1.1.2.6.1. Users’ last activities shall be seen on their profiles.
1.1.2.7. Events
  • 1.1.2.7.1. Users shall be able to display the events they attended.
  • 1.1.2.7.2. Users shall be able to display the events they organized.
1.1.2.8. Forum
  • 1.1.2.8.1. Users shall 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.3. User Interaction
1.1.3.1. User-User Interaction
  • 1.1.3.1.1. Users shall be able to message the other users.
  • 1.1.3.1.2. Users shall be able to inhibit message receiving.
  • 1.1.3.1.3. Users shall be able to view the other user’s profiles.
  • 1.1.3.1.4. Users should be able to give reputation points to the other users.
  • 1.1.3.1.5. Users should be able to follow the other users.
  • 1.1.3.1.6. Users should be able to unfollow the other users.
  • 1.1.3.1.7. Users shall be able to block some users not to receive message from them.
  • 1.1.3.1.8. Users shall be able to unblock some users which they blocked to receive messages from them.
1.1.3.2. User-System Interaction
1.1.3.2.1. Forum
  • 1.1.3.2.1.1. Guests and users shall be able to visit forum.
  • 1.1.3.2.1.2. Guests shall not be able to add anything to the platform.
  • 1.1.3.2.1.3. Users shall be able to open a thread.
  • 1.1.3.2.1.4. Users shall be able to cite and comment to post.
  • 1.1.3.2.1.5. Users shall be able to mention other users in the forum.
  • 1.1.3.2.1.6. Users shall be able to like or dislike posts and comments.
  • 1.1.3.2.1.7. Users shall be able to cite and comment on the other comments.
  • 1.1.3.2.1.8. Users shall be able to edit their comments.
  • 1.1.3.2.1.9. Users shall be able to delete their comment on the post.
  • 1.1.3.2.1.10. The post owners shall be able to edit their posts.
  • 1.1.3.2.1.11. The post owners shall be able to tag the their post headers.
  • 1.1.3.2.1.12. Users should be able to screen image links.
1.1.3.2.2. Game Page & Reviews
  • 1.1.3.2.2.1. Users and guests shall be able to view game profiles and reviews.
  • 1.1.3.2.2.2. Users shall be able to rate a game out of 5.
  • 1.1.3.2.2.3. Users shall be able to write reviews for the game.
  • 1.1.3.2.2.4. Users shall be able to edit their reviews.
  • 1.1.3.2.2.5. Users shall be able to like or dislike the other reviews.
  • 1.1.3.2.2.6. Users shall be able to share their rating on their reviews.
  • 1.1.3.2.2.7. Users shall be able to delete their reviews.
  • 1.1.3.2.2.8. Users shall be able to follow the Game page.
1.1.3.2.3. Upcoming Titles
  • 1.1.3.2.3.1. Developers shall be able to use the platform to promote their upcoming titles to other users.
  • 1.1.3.2.3.2. Developers shall be able to share their new developments for the game.
  • 1.1.3.2.3.3. Developers shall be able to share the launching date.
  • 1.1.3.2.3.4. Developers shall be able to share a demo version of the game.
  • 1.1.3.2.3.5. Developers shall be able to edit their posts.
  • 1.1.3.2.3.6. Developers shall be able to tag their promotion posts.
  • 1.1.3.2.3.7. Users and guests shall be able to view upcoming titles.
  • 1.1.3.2.3.8. Users shall be able to comment on the upcomimg titles.
  • 1.1.3.2.3.9. Users shall be able to like or dislike title post and comments.
  • 1.1.3.2.3.9. Users shall be able to cite and comment on the other comments.
  • 1.1.3.2.3.9. Users shall be able to edit their comments.
  • 1.1.3.2.4. Users shall be able to see the content of the platform features that are forum, events, reviews, upcoming titles, communities, recommendations.
1.1.4. Events
  • 1.1.4.1. Users shall be able to view events.
  • 1.1.4.2. Users shall be able to create online or offline events.
  • 1.1.4.3. Organizers shall be able to have a title, which has less characters than 50 characters, for their events.
  • 1.1.4.4. Organizers shall be able to write a description of their events.
  • 1.1.4.5. Organizers shall be able to edit their description of their events.
  • 1.1.4.6. Organizers shall be able to determine a date for an event.
  • 1.1.4.7. Organizers shall be able to edit the date for the event they organized.
  • 1.1.4.8. Organizers shall be able to cancel an event.
  • 1.1.4.9. Organizers shall be able to determine a place for an offline event via geotagging.
  • 1.1.4.10. Organizers shall be able to determine a communication channel for the offline event.
  • 1.1.4.11. Organizers shall be able to determine an attendee limit.
  • 1.1.4.12. Users shall be able to join an event if the limit is not passed.
  • 1.1.4.13. Users shall be able to leave an event that they joined.
  • 1.1.4.14. Organizers shall be able to exclude users from the event.
  • 1.1.4.15. Organizers shall be able to tag events with either discussion or gaming, and game name.
  • 1.1.4.16. Users shall be able to comment on events.
  • 1.1.4.17. Users shall be able to comment on others’ comments.
  • 1.1.4.18. Users shall be able to upvote or downvote the comments of the event.
  • 1.1.4.19. Users shall be able to semantically search events.
  • 1.1.4.20. Users shall be able to filter events by date, location, tag and meeting types which are online and offline.
  • 1.1.4.21. Users shall be able to sort events by date, number of attendee limit and number of comments.
1.1.5. Administration
  • 1.1.5.1. Admins shall be able to ban the users from posting, commenting, and messaging due to illegal behavior.
  • 1.1.5.2. Admins shall be able to unban the banned users.
  • 1.1.5.3. Admins shall be able to delete a user account due to illegal behavior.
  • 1.1.5.4. Admins shall be able to delete a thread and a post.
  • 1.1.5.5. Admins shall be able to lock or unlock a thread if the problem is resolved.
  • 1.1.5.6. Admins shall be able to control the content before it becomes visible to users.
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 add tags to the group.
  • 1.1.6.6. Group administrators shall be able to specify the game name on their groups.
  • 1.1.6.7. Group administrators shall be able to discard a group member.
  • 1.1.6.8. Group administrators shall be able to add members to their groups.
  • 1.1.6.9. Group administrators shall be able to make other members group administrators.
  • 1.1.6.10. Group administrators shall be able to leave the group administrator role if there is another group administrator.
  • 1.1.6.11. Users shall be able to display the members of the group.
  • 1.1.6.12. Users shall be able to filter the groups according to games, tags, and names.
  • 1.1.6.13. Users shall be able to sort the groups by number of users, number of empty slots ascending or descending.
  • 1.1.6.14. Users shall be able to participate in the group unless it is full.
  • 1.1.6.15. Users shall be able to leave the group.
  • 1.1.6.16. Users should be able to chat with other group members.

1.2. System Requirements

1.2.1. Forum/Review
  • 1.2.1.1. System shall have a forum.
  • 1.2.1.2. System shall have a Reviews page.
  • 1.2.1.3. The forum shall consist of subforums which are involved with game types or directly games.
  • 1.2.1.4. The subforum shall contain threads.
  • 1.2.1.5. System shall censor inappropriate words.
  • 1.2.1.6. The forum and reviews should include a timestamp for each entry and the owner name should be at the top of each entry.
  • 1.2.1.7. Owner of the content’s name should direct to that user’s profile page.
  • 1.2.1.8. System shall display the number of followers of the game profile.
  • 1.2.1.9. System shall display the tags on the game profile.
  • 1.2.1.10. System shall display the reviews about the game on the game profile.
  • 1.2.1.11. System should display the events of the game on the game profile.
  • 1.2.1.12. System shall display the average rating of the game and users' own rating to each user.
1.2.2. Search
  • 1.2.2.1. System shall allow users to search for forum thread, subforum, forum comment, message, upcoming titles, gaming communities-groups, users, and events.
  • 1.2.2.2. System shall allow the user to filter the search for the users, games, events 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, by number of replies for the comment.
  • 1.2.2.6. System shall allow users to sort the messages by date.
  • 1.2.2.7. System shall allow users to sort upcoming titles by post date or launch date.
  • 1.2.2.8. System shall allow users to sort events by date or number of participants.
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.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 the posts or events according to the user's preferences.
  • 1.2.5.2. System shall recommend other users according to the user's preferences.
  • 1.2.5.3. System shall recommend games for users.
1.2.6. Delete Account
  • 1.2.6.1 System shall allow users to delete their accounts.
  • 1.2.6.2. The data and content about the deleted accounts shall be deleted from the system.

2. Non-Functional Requirements

2.1. Performance & Reliability
  • 2.1.1. The platform shall 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 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.
  • 2.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.
  • 2.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.
  • 2.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.
  • 2.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.
  • 2.1.7. The platform shall 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.1.10 The platform shall be accessible at least %98 of the 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 shall be encrypted.
  • 2.2.5. Emails shall be unique and valid.
  • 2.2.6. All content shall be able to be made private or public via user’s decisions.
  • 2.2.7. Online or offline events can be organized public or private.
2.3. Security
  • 2.3.1. Bot accounts shall 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 shall 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 versions 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. Platform shall support the English language.

  • 2.5.2. Platform shall support UTF-8 character encoding.

  • 2.5.3. Platform shall have web page and Android application.

Appendix

Glossary

    1. Guest: Someone who has not registered or logged in to platform.
    1. User: Someone who has registered and logged in to platform.
    1. Certificated 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. Event: A planned meeting of users to do something together.
    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. Reputation points: An indicator for a user, which demonstrates how the user gets feedback about their contribution from the other users on the platform.
    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 a forum, which consists of various threads on same topic.
    1. Cite: To refer an another entry on 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. Online Event: A planned meeting of users to do something together online.
    1. Offline Event: A planned meeting of users to do something together face to face.
    1. Organizer: A creator of an event.
    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.

Welcome to the Wiki Page of Group 7! 👋

🏠 Home

📦 Deliverables

👥 Who We Are

Former Team Members

Github Repository & API Researches
Chosen Researches by Our Team

📃 Templates

Templates

📓 Meeting Notes

Meeting Notes of 352
Meeting Notes of 451
Frontend Team Meeting Notes
Backend Team Meeting Notes
Mobile Team Meeting Notes

👀 Requirements

📈 Diagrams

🛠️ User Scenarios and Mockups

Clone this wiki locally