Requirements - bounswe/bounswe2024group5 GitHub Wiki
- 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.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.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.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.