Requirements - bounswe/bounswe2024group11 GitHub Wiki

Description

This is a Software Requirements Specification document for CMPE451 class. The previous year's requirements document is moved to previous requirements

📗 Glossary

  • Forum: It is where registered users post and answer questions about English.
  • Forum Question: Forum questions have a title, a text, and tag(s). The questions may or may not be related to quizzes.
  • Forum Answer: Forum answers are for the forum questions. The answers have only a text.
  • Quiz: Quizzes have one type of quiz question, a proficiency level, and tag(s).
  • Quiz Questions: Quiz questions have a question word and multiple answers. Only one answer is true.
  • Quiz Question Types: There are 3 question types: 1) matching an English word with its Turkish counterpart, 2) vice versa, 3) matching an English word with a sense out of choices
  • Semantic Search: Semantic search is used while searching for forum questions and quizzes. Semantic search utilizes Linked Data (such as Lexvo) using their tag(s) to link them semantically.
  • Tag: A tag is one or multiple words with a unique Linked Data ID.
  • User: A user is anyone regardless of being registered.
  • Registered User: A registered user is anyone who has an account with a unique username. They register with a username and a password. They log in with their username and password.
  • Profile: A profile is where users can see each others' biographies, badges, proficiency levels, followers, followings, the quizzes that they created, and the forum questions or answers that they posted. Registered users can also see their own duels and bookmarked forum questions and quizzes.
  • Badge: A badge is a reward that is given to registered users when they achieve a milestone.
  • Proficiency Level: Proficiency levels show users' and quizzes difficulty level as beginner (A), intermediate (B), and advanced (C). They are used to match users with their level of quizzes.
  • Forum Feed: A forum feed is where users see newly posted forum questions. There are 2 types of forum feeds: 1) users see newly posted questions, 2) Registered users see questions of their following users and following tags.
  • Quiz Feed: A quiz feed is where users see newly posted quizzes. There are 2 types of quiz feeds: 1) users see newly posted quizzes, 2) Registered users see quizzes of their following users and following tags.
  • Duel: A registered user can challenge another registered user to solve the same quiz and declare the winner with the highest point.
  • Leaderboard: Registered users can see their global ranking at their proficiency level.
  • Daily Quest Streak: Registered users have a counter for the consequent days that they solved at least one quiz.

🧱 1. Functional Requirements

1.1 User Requirements

1.1.1 Account Requirements
  • 1.1.1.1 Users shall be able to register the system.
  • 1.1.1.2 Registered users shall be able to log in to the system.
  • 1.1.1.3 Registered users should be able to reset their passwords.
  • 1.1.1.4 Registered users should be able to delete their accounts.
  • 1.1.1.5 Registered users shall be able to log out from the system.
  • 1.1.1.6 Registered users should have a profile page.
  • 1.1.1.7 Registered users should be able to edit their profile.
  • 1.1.1.8 Registered users should be able to set their proficiency level in English.
  • 1.1.1.9 Registered users should be able to put up a profile picture.
1.1.2 Quiz Requirements
  • 1.1.2.1 Registered users shall be able to create quizzes.
  • 1.1.2.2 Registered users shall be able to create quiz questions.
  • 1.1.2.3 Registered users should be able to duplicate a quiz previously created.
  • 1.1.2.4 Registered users shall be able to delete quizzes created by themselves.
  • 1.1.2.5 Registered users shall be able to edit difficulty levels, titles, descriptions, and tags of the quizzes created by themselves.
  • 1.1.2.6 Users shall be able to view any quizzes.
  • 1.1.2.7 Registered users shall be able to take quizzes only at their difficulty levels.
  • 1.1.2.8 Registered users shall be able to see previous quizzes they took.
  • 1.1.2.9 Registered users should be able to see their global ranking at their proficiency level.
  • 1.1.2.10 Users should be able to search quizzes semantically.
  • 1.1.2.11 Registered users should be able to rate the quizzes they took.
  • 1.1.2.12 Registered users should be able to give text-based feedback for the quizzes they took.
  • 1.1.2.13 Registered users shall be able to see the creator of quizzes.
  • 1.1.2.14 Registered users shall be able to view a quiz feed.
  • 1.1.2.15 Registered users should be able to add hints in different categories while creating quiz questions.
  • 1.1.2.16 Registered users should be able to take hints in different categories while taking quizzes.
  • 1.1.2.17 Registered users should be able to play the pronunciation of the keyword of the quiz questions.
1.1.3 Forum Requirements
  • 1.1.3.1 Registered users shall be able to create forum questions.
  • 1.1.3.2 Registered users shall be able to link keywords in the questions to the corresponding linked data source.
  • 1.1.3.3 Registered users shall be able to answer forum questions.
  • 1.1.3.4 Users shall be able to view any forum questions.
  • 1.1.3.5 Users shall be able to search forum questions semantically.
  • 1.1.3.6 Registered users should be able to upvote forum questions.
  • 1.1.3.7 Registered users should be able to downvote forum questions.
  • 1.1.3.8 Registered users should be able to upvote forum answers.
  • 1.1.3.9 Registered users should be able to downvote forum answers.
  • 1.1.3.10 Users should be able to view the number of upvotes and downvotes of forum questions and their answers.
  • 1.1.3.11 Registered users should be able to bookmark forum questions.
  • 1.1.3.12 Registered users should be able to unbookmark forum questions that they currently bookmark.
  • 1.1.3.13 Registered users shall be able to view a forum feed.
1.1.4 User-to-User Interactions
  • 1.1.4.1 Registered users shall be able to follow other registered users.
  • 1.1.4.2 Registered users shall be able to unfollow users they currently follow.
  • 1.1.4.3 Registered users should be able to block other registered users.
  • 1.1.4.4 Registered users should be able to unblock users they currently block.

1.2 System Requirements

1.2.1 Gamification Requirements
  • 1.2.1.1 The system shall give users badges.
  • 1.2.1.2 The system shall give users scores based on the number of questions answered correctly in each quiz.
  • 1.2.1.3 The system should have a mascot.
1.2.2 Other Requirements
  • 1.2.2.1 The system shall use Babelnet for linked data features.

✨ 2. Non-functional Requirements

2.1 Web Standards & Guidelines

  • 2.1.1 All interactive elements within the web application, such as buttons, links, and form controls, modal openers, dropdown menus shall comply with the WAI-ARIA 1.2 Standards.

This includes, but is not limited to, the appropriate use of role, aria-label, aria-describedby, aria-expanded, and other ARIA attributes to enhance accessibility for screen readers and assistive technologies. For instance, in the quiz application, each interactive question option should be assigned a role="radio" to indicate its function to users with screen readers.

  • 2.1.2 All static content, whether user-generated or not, shall adhere to the WCAG 2.1 Standards.

This includes meeting the guidelines for text alternatives, color contrast, keyboard navigation, and focus states to ensure that all users, including those with disabilities, can perceive, understand, navigate, and interact with the content effectively. For instance, all images should have descriptive alt text, and links should provide clear context even when read out of sequence.

This includes ensuring that SVGs are accessible, scalable, and properly optimized for performance. For instance, each SVG should include a <title> element that describes the graphic's purpose, making it accessible to screen readers, and use viewBox to maintain proper scaling across different screen sizes.

2.2 Data & Privacy

  • 2.2.1 The platform shall comply with the General Data Protection Regulation (GDPR) requirements to ensure that all personal data is processed lawfully, transparently, and for a specific purpose. This includes obtaining explicit user consent before collecting personal data and providing users with the ability to access, modify, or delete their information.

  • 2.2.2 The platform shall adhere to the Law on the Protection of Personal Data (KVKK) to safeguard user data in accordance with Turkish data protection regulations. This includes ensuring data minimization, accuracy, and implementing appropriate security measures to prevent unauthorized access or breaches.

  • 2.2.3 The platform shall provide clear and concise privacy policies that explain how user data is collected, stored, processed, and shared.

2.3 Compatibility

  • 2.3.1 The platform shall be fully compatible with mobile devices, ensuring that the user interface is responsive and adaptable to various screen sizes and orientations, including smartphones and tablets.

  • 2.3.2 The web application shall support cross-browser compatibility, ensuring correct functionality on the latest versions of all major browsers, including Google Chrome, Mozilla Firefox, Safari, Microsoft Edge, and Opera, as of January 1, 2024.

  • 2.3.3 The platform shall be optimized for performance on both desktop and mobile devices, ensuring fast load times and smooth interactions even on slower network connections (e.g., 3G or 4G).

  • 2.3.4 The web application shall support accessibility tools and technologies, including screen readers, keyboard navigation, and voice recognition software, to ensure a seamless experience for users with disabilities.

  • 2.3.5 The platform shall be compatible with different operating systems, including but not limited to Windows, macOS, iOS, and Android, to maximize reach and usability across different devices.

⚠️ **GitHub.com Fallback** ⚠️