Requirements Document for CMPE451 - bounswe/bounswe2024group12 GitHub Wiki

Chess Community Platform - Requirements Document

Glossary

  1. User: Any client of the application including unregistered and registered clients.
  2. Registered User: A user who has created an account and is logged into the application. Can interact with content, follow other users, and more.
  3. Admin: A special user who has all the functionalities of a registered user but can also manage and moderate the platform's content and users.
  4. FEN (Forsyth–Edwards Notation): A standard notation for describing a particular board position of a chess game.
  5. PGN (Portable Game Notation): A standard plain-text format for recording chess games, including the moves and related data.
  6. W3C Standards: Guidelines and standards set by the World Wide Web Consortium to ensure web accessibility and interoperability.
  7. Forum Rating: A system that tracks user reputation based on their interactions within the forum.
  8. User Level: Leveling system that tiers users according to their forum ratings and unlocks features at each level.
  9. Rookie: First user level, starting level of registered user.
  10. Specialist: Second user level, can do anything rookie can do but have additional features.
  11. Expert: Thirt user level, can do anything specialist can do but have additional features.
  12. Legend: Fourth user level, can do anything expert can do but have additional features.

Requirements

1. Functional Requirements

1.1. User Requirements

1.1.1. Account Management
  • 1.1.1.1. Users shall be able to sign up by providing email, username, and password.
  • 1.1.1.2. Registered users shall be able to log in using email and password.
  • 1.1.1.3. Registered users shall be able to securely log out of their accounts.
  • 1.1.1.4. Registered users shall be able to delete their accounts, which will:
    • 1.1.1.4.1. Remove their profile from visibility.
    • 1.1.1.4.2. Remove all of their content (e.g., posts, comments) from the platform.
    • 1.1.1.4.3. Free up their email and username for future registrations.
  • 1.1.1.5. Registered users shall be able to change their passwords.
  • 1.1.1.6. Registered users shall be able to reset their passwords via email authentication.
  • 1.1.1.7. Email addresses shall be verified for account activation.
1.1.2. Leveling System
  • 1.1.2.1. Levels shall be assigned based on the forum rating.
  • 1.1.2.2. Forum rating shall accumulate based on user interactions such as posts, likes, puzzle upvotes, and comments.
  • 1.1.2.3. There should be four levels: Rookie, Specialist, Expert, and Legend.
1.1.3. Social Interaction
  • 1.1.3.1. Registered users shall be able to follow or unfollow other registered users.
  • 1.1.3.2. Legend users' likes/dislikes and puzzle upvotes/downvotes should be displayed separately, distinguishing their significance.
1.1.4. Content Interaction
1.1.4.1. Posts
  • 1.1.4.1.1. Specialist users shall be able to create posts.
  • 1.1.4.1.2. The platform shall support text, images, FEN notation, and PGN notation inside posts.
  • 1.1.4.1.3. Users shall be able to add tags to categorize their posts.
  • 1.1.4.1.4. Posts shall be commentable by specialist users.
    • 1.1.4.1.3.1. Comments shall support text, images, FEN notation, and PGN files similar to posts.
  • 1.1.4.1.5. The platform shall support hyperlinks and internal referencing:
    • 1.1.4.1.4.1. External hyperlinks shall be supported.
    • 1.1.4.1.4.2. Internal page references shall feature auto-completion for easy navigation.
  • 1.1.4.1.6. Users shall be able to interact with posts as follows:
    • 1.1.4.1.5.1. Like/Dislike functionality shall be available for all registered users.
    • 1.1.4.1.5.2. Sharing posts via external links shall be supported.
    • 1.1.4.1.5.3. Retweeting posts to add to their feeds shall be available to specialist users.
    • 1.1.4.1.5.3. Bookmarking posts should be an available feature.
  • 1.1.4.1.7. A main feed shall display posts from the entire site.
  • 1.1.4.1.6. A follow feed shall display posts from users that the logged-in user follows.
  • 1.1.4.1.8. Users shall be able to filter posts by tags:
    • 1.1.4.1.8.1. Available tags shall include tournament organization, coaching, tip, recommendation, gathering, player, fun fact, and meme.
    • 1.1.4.1.8.2. Administrators shall be able to add new tags as needed.
1.1.4.2. Archive
  • 1.1.4.2.1. Games:

    • 1.1.4.2.1.1. Users shall be able to jump from a game to the players who played the game.
    • 1.1.4.2.1.2. Users shall be able to jump from a game to the tournament it was played in.
    • 1.1.4.2.1.3. Games shall be explored with a visually animated chess board.
    • 1.1.4.2.1.4. Games shall display the name of its opening.
    • 1.1.4.2.1.5. At every board position, several other games which reached that position shall be listed.
    • 1.1.4.2.1.6. Comments shall be able to be made under each board position of the game.
  • 1.1.4.2.2. Players:

    • 1.1.4.2.2.1. Users shall be able to jump from a player to games he/she played.
    • 1.1.4.2.2.2. Users shall be able to jump from a player to tournaments he/she played in.
    • 1.1.4.2.2.3. Players' information shall be listed (name, age, nationality, etc.).
    • 1.1.4.2.2.4. Comments should be able to be made under each player profile.
  • 1.1.4.2.3. Tournaments:

    • 1.1.4.2.3.1. Users shall be able to jump from a tournament to games played in it.
    • 1.1.4.2.3.2. Users shall be able to jump from a tournament to players who played in it.
    • 1.1.4.2.3.3. Tournament information shall be listed (year, place, etc.).
    • 1.1.4.2.3.4. Comments should be able to be made under each tournament.
1.1.4.3. Puzzles
  • 1.1.4.3.1. Users shall be able to play puzzles.
  • 1.1.4.3.2. Expert users shall be able to create puzzles, and other users shall be able to upvote/downvote them, affecting the original poster's forum rating.
1.1.5. Search
  • 1.1.5.1. The platform shall support advanced search capabilities across all content types within the platform.
    • 1.1.5.1.1. Full-Text Search: Users shall be able to perform full-text searches across posts, comments, games, and user profiles.
    • 1.1.5.1.2. Faceted Filtering: Users shall be able to filter search results based on content type, tags, game properties, and date ranges.
    • 1.1.5.1.3. Autocomplete and Suggestions: The search bar should provide real-time autocomplete suggestions and relevant search prompts.
    • 1.1.5.1.4. Result Categorization: Search results shall be categorized by content type (e.g., posts, users, games) to facilitate easy navigation.
1.1.6. Analysis
  • 1.1.6.1. The platform shall provide an analysis tool similar to Lichess's analysis board.
    • 1.1.6.1.1. Interactive Chess Board
      • 1.1.6.1.1.1. Users shall be able to input moves manually to set up positions.
      • 1.1.6.1.1.2. The chess board shall support drag-and-drop functionality for moving pieces.
    • 1.1.6.1.2. Game Analysis
      • 1.1.6.1.2.1. The analysis tool should provide engine-based move suggestions and evaluations.
      • 1.1.6.1.2.2. Users should be able to toggle engine analysis on and off.
      • 1.1.6.1.2.3. The tool shall display move numbers, annotations, and evaluations.
    • 1.1.6.1.3. Annotations and Comments
      • 1.1.6.1.3.1. Users should be able to add comments to specific moves or positions.
      • 1.1.6.1.3.2. The analysis board should support saving annotated games for future reference.
    • 1.1.6.1.4. Import and Export
      • 1.1.6.1.4.1. Users shall be able to import games using PGN files into the analysis tool.
      • 1.1.6.1.4.2. Users shall be able to export analyzed games as PGN files.
    • 1.1.6.1.5. Sharing Analysis
      • 1.1.6.1.5.1. Users should be able to share their analysis boards or specific positions via links.
      • 1.1.6.1.5.2. Shared analyses should be viewable by other users without requiring authentication.
    • 1.1.6.1.6. Advanced Features
      • 1.1.6.1.6.1. Opening Explorer: The tool should include an opening explorer to analyze common openings and their variations.
      • 1.1.6.1.6.2. Endgame Tablebases: Integration with endgame tablebases should be available for precise endgame analysis.
      • 1.1.6.1.6.3. Blunder Detection: The analysis tool should highlight blunders, mistakes, and inaccuracies in the game.
    • 1.1.6.1.7. Semantic Browsing
      • 1.1.6.1.7.1. Users shall be able to see top several games that were played in the past (in real life) and reached that analyzed position.

1.2. System Requirements

1.2.1. Moderation Capabilities
  • 1.2.1.1. Admins shall be able to delete user accounts.
  • 1.2.1.2. Admins shall be able to ban or unban users for a specified period.
  • 1.2.1.3. Admins shall be able to edit or delete any post or comment.
  • 1.2.1.4. Admins shall be able to manage (add, edit, delete) tags used for categorizing posts.
  • 1.2.1.5. Admins shall be able to change users' profile pictures and details if necessary.
1.2.2. Content Management
  • 1.2.2.1. Admins shall be able to approve or reject reported content flagged for violating community guidelines.
  • 1.2.2.2. Admins should be able to feature or pin certain posts to the main feed.

2. Non-Functional Requirements

2.1. Usability

  • 2.1.1. The application shall feature an intuitive user interface with clear navigation paths and interactive elements.
  • 2.1.2. Users shall be able to easily find and access all essential features and functionalities.
  • 2.1.3. The application shall provide informative feedback for user actions, such as successful registrations, login attempts, and error messages.
  • 2.1.4. Design elements and layout shall be consistent across different pages to enhance user familiarity and usability.

2.2. Accessibility and Availability

  • 2.2.1. The application shall be accessible via various web browsers, including Chrome, Firefox, Safari, and Edge.
  • 2.2.2. The application shall be available in English.
  • 2.2.3. The application shall comply with Web Content Accessibility Guidelines to ensure accessibility for all users.
  • 2.2.4. The Android application shall support Android 5.0 and above.

2.3. Security

  • 2.3.1. All passwords stored in the database shall be encrypted using industry-standard encryption methods.
  • 2.3.2. User data shall be securely stored and protected against unauthorized access.
  • 2.3.3. Email verification shall be required to prevent fraudulent account registrations.

2.4. Performance and Reliability

  • 2.4.1. The application shall have response times of less than 100 ms for user interactions.
  • 2.4.2. The application shall be capable of handling a large number of concurrent user requests efficiently.
  • 2.4.3. The application shall maintain high availability with minimal downtime to ensure users can access the platform reliably.

2.5. Legal

  • 2.5.1. The application shall comply with KVCC privacy regulations.

2.6. Standards

  • 2.6.1. The system shall comply with W3C Standards to ensure interoperability and accessibility.