Requirements - bounswe/bounswe2024group5 GitHub Wiki

Glossary

  • User: A person who uses the application with the intention of interacting with various features, including solving quizzes, creating quizzes, and participating in forum discussions.
  • System: The underlying set of functionalities that allow users to interact with the app, including quiz generation, search capabilities, and data management.
  • Register: The process of creating an account on our platform by providing username, name, e-mail, password, and English proficiency level.
  • Login: The initial authentication step where the user provides their username/e-mail and password to gain access to the app.
  • Quiz: A set of questions related to English language learning, which can be created by users or generated by the system. Quizzes have difficulty levels and can include various question types.
  • Question: A component of a quiz that can be in multiple formats, such as matching English words with Turkish counterparts, or matching words with their senses.
  • Points: A system of reward that users accumulate by completing quizzes, tracking their progress and achievements.
  • English Proficiency Level: A user-defined setting (e.g., beginner, intermediate, advanced) that helps fit the app experience and quiz difficulty to the user's skill level.
  • Profile: A user's personal page that displays their shared contents, public information, created quizzes, quiz history, and accumulated points.
  • Feed: A stream of suggested quizzes and content based on the user's proficiency level and past quiz performance.
  • Search: A tool within the app that allows users to find words, quizzes, categories, and perform semantic searches. It uses linked data sources for better results.
  • Forum: A platform within the app where users can create posts to ask questions about English words or language learning, and engage in discussions.
  • Lexvo: A linked data source used to provide additional information and context for words and language learning discussions.
  • Favorite: A feature that allows users to mark and save specific questions for later use or reference.
  • Leaderboard: A ranking system that displays users' standings based on their accumulated points within their proficiency group.
  • Linked Data Sources: External databases or APIs (such as Wikidata and Lexvo) used by the system to provide definitions, translations, and other language-related information.
  • Community Guidelines: Rules and standards set by the app to ensure positive interactions among users.
  • Privacy Controls: Settings that allow users to manage what information is visible to others and how their data is used within the app.

1. Functional Requirements

1.1. User Requirements

1.1.1. Account Requirements
  • 1.1.1.1 ✅ The user shall be able to create an account with a unique username.

  • 1.1.1.2 ✅ The user shall be able to change their publicly available profile name.

  • 1.1.1.3 ✅ The user shall be able to change their publicly available profile picture.

  • 1.1.1.4 ✅ The user shall be able to set their supposed English proficiency level (e.g., beginner, intermediate, advanced).

  • 1.1.1.5 ✅ The user shall be able to track the accumulated points of their account.

  • 1.1.1.6 ✅ The user shall be able to see their quiz history of their account.

  • 1.1.1.7 ✅ The user shall be able to see the created quizzes of their account.

  • 1.1.1.8 ⚠️ The user shall be able to change their account's changeable details from the profile details page.

  • 1.1.1.9 ⚠️ The user shall be able to see their favorite questions in their profile page.

  • 1.1.1.10 ❌ The user shall be able to see their favorite quizzes in their profile page.

1.1.2. Registration and Login Requirements
  • 1.1.2.1 ✅ The user shall be able to register to the system with the following pieces of information: username, name, e-mail, password, and English proficiency level.

  • 1.1.2.2 ❌ The user shall be able to change their passwords through the old password.

  • 1.1.2.3 ✅ The user shall be able to log in with their username/e-mail and password.

1.1.3. Quiz Requirements
1.1.3.1 Quiz Generation Requirements
  • 1.1.3.1.1 ✅ Users shall be able to create their own quizzes and share them with others.

  • 1.1.3.1.2 ✅ Users shall be able to add their favorited questions to their quizzes.

  • 1.1.3.1.3 ✅ Users shall be able to create a quiz by clicking the create quiz button.

  • 1.1.3.1.4 ✅ Users shall be able to add a question by clicking a "+" button.

  • 1.1.3.1.5 ❌ Users shall be able to select a question from their favorite questions.

  • 1.1.3.1.6 ✅ Users shall be able to select from the 3 question types.

  • 1.1.3.1.7 ✅ Users shall be able to type a question "word" to the appeared text space.

  • 1.1.3.1.8 ✅ Users shall be able to select the answer to the question using the dropdown menu that appears.

  • 1.1.3.1.9 ✅ Users shall be able to leave the wrong answers for the system to figure out.

  • 1.1.3.1.10 ✅ Users shall be able to manually type the wrong answers by ticking the "custom answers" button.

  • 1.1.3.1.11 ⚠️ Users shall be able to edit the title or description of a quiz after creating it.

  • 1.1.3.1.12 ✅ Users shall be able to delete a quiz they have created.

1.1.3.2 Quiz Solving Requirements
  • 1.1.3.2.1 ✅ Users shall accumulate points by completing quizzes.

  • 1.1.3.2.2 ✅ Users shall be able to solve quizzes created by other users or themselves.

  • 1.1.3.2.3 ✅ Users shall be able to view quizzes created by other users that fit their proficiency level.

  • 1.1.3.2.4 ✅ Users shall be able to see the body of the question and the answer options.

  • 1.1.3.2.5 ✅ Users shall be able to select one of the options.

  • 1.1.3.2.6 ✅ Users shall be able to see the solution after they answer their question.

  • 1.1.3.2.7 ✅ Users shall be able to see the statistics(number of right and wrong answers) and outcomes(point increase) of the quiz after they are finished.

  • 1.1.3.2.8 ✅ Users shall be able to mark a quiz as "Completed" after solving it.

1.1.4. User Interaction Requirements
  • 1.1.4.1 ✅ Users shall be able to see other users' profiles, including their created quizzes and points.

  • 1.1.4.2 ⚠️ Users shall be able to share their created quizzes with other users.

  • 1.1.4.3 ✅ Users shall be able to view leaderboards or rankings based on accumulated points within their proficiency group.

1.1.5. Forum Requirements
  • 1.1.5.1 ✅ Users shall be able to create forum posts to ask questions about English words or language learning.

  • 1.1.5.2 ✅ Users shall be able to reply to forum posts and engage in discussions.

  • 1.1.5.3 ❌ Users shall be required to link their questions to relevant entries in Lexvo.

  • 1.1.5.4 ❌ Users shall be able to delete their forum posts.

  • 1.1.5.5 ❌ Users shall be able to delete their replies to forum posts.

1.2. System Requirements

1.2.1 Word/Quiz Requirements
  • 1.2.1.1 ⚠️ The creation of quizzes shall utilize linked data sources to get senses and translations.
  • 1.2.1.2 ✅ The quiz questions shall be in one of the multiple formats:
    • 1.2.1.2.1 ✅ matching an English word with its Turkish counterpart.
    • 1.2.1.2.2 ✅ matching a Turkish word with its English counterpart.
    • 1.2.1.2.3 ✅ matching an English word with a sense out of choices.
  • 1.2.1.3 ✅ The system shall have a mechanism to determine the difficulty level of any word.
  • 1.2.1.4 ✅ The system shall calculate the difficulty level of quizzes by averaging the difficulty of each word.
  • 1.2.1.5 ❌ The quizzes shall be created by giving a list of words.
  • 1.2.1.6 ✅ The system shall keep the difficulty levels, definitions, translations, synonyms, antonyms, words with similar meanings, categories of words.
1.2.2 Search Requirements
  • 1.2.2.1 ⚠️ The system shall implement both semantic search and basic text search.

  • 1.2.2.2 ✅ The system shall allow users to search for words.

    • 1.2.2.2.1 ❌ The system shall show users definitions, translations, synonyms, antonyms, categories of the word, and example usages of the word as a result of the search.
  • 1.2.2.3 ❌ The system should allow users to search with the Turkish translation to find forum posts related to an English word.

  • 1.2.2.4 ⚠️ The system shall allow users to search for other quizzes.

    • 1.2.2.4.1 ❌ The system shall show users the most popular quizzes according to search parameters.
  • 1.2.2.5 ❌ The system shall contain all of the above-written items in a separate search page.

1.2.3 Home Page Requirements
  • 1.2.3.1 ✅ The system shall suggest previously created quizzes to users based on the results of quizzes they have previously solved.

  • 1.2.3.2 ❌ The feed page shall refresh automatically to show the other quizzes.

  • 1.2.3.3 ✅ The system shall suggest quizzes according to user's English level.

  • 1.2.3.4 ✅ The system shall allow users to see the other recommended quizzes.

  • 1.2.3.5 ✅ The system shall allow users to customize their feed by filtering quiz recommendations based on specific criteria (e.g., difficulty level).

  • 1.2.3.6 ✅ The system shall show users the quiz status (completed or in progress) according to their progress on solving the quizzes.

2. Non-Functional Requirements

2.1 Compatibility
  • 2.1.1 ✅ The web app shall be compatible with the web browsers Chrome, Firefox, Safari, Edge and Opera.
  • 2.1.2 ✅ The mobile app shall be adaptable to various screen sizes and orientations, including smartphones and tablets.
  • 2.1.3 ✅ The mobile app for Apple devices shall be compatible with IOS 15 and up.
  • 2.1.4 ✅ The mobile app for Android devices shall be compatible with Android 9 and up.
2.2 Performance and Reliability
  • 2.2.1 ✅ The app shall load within 3 seconds when it is first opened.
  • 2.2.2 ✅ The server shall be up and responsive for the 99% of a month.
  • 2.2.3 ⚠️ The app shall support up to 1000 concurrent users during peak usage periods.
  • 2.2.4 ⚠️ The backend shall be horizontally scalable so that if the number of users go up, it is easy to add more servers.
2.3 User Friendliness
  • 2.3.1 ❌ The app shall provide user support channels such as FAQ.
  • 2.3.2 ✅ The app shall have an intuitive and user-friendly interface.
  • 2.3.3 ❌ The app shall enforce community guidelines to enforce positive interactions.
  • 2.3.4 ✅ The app shall allow users to confirm their actions when performing irreversible operations, such as deleting quizzes.
2.4 Data & Privacy
  • 2.4.1 ❌ The app shall provide users with privacy controls so that they can choose what information can be seen to whom.
  • 2.4.2 ❌ The app shall comply with the data protection laws GDPR and KVKK.
  • 2.4.3 ✅ User data shall be encrypted when transferring in order to protect it from unauthorized access.
  • 2.4.4 ❌ The backend shall regularly back up user data to prevent data loss in case of system failures.
⚠️ **GitHub.com Fallback** ⚠️