Requirements ‐ 451 - bounswe/bounswe2024group6 GitHub Wiki

Project Requirements

Glossary

  • User: A person interacting with the platform, including both guests who view content and registered users with accounts.
  • Guest: A user who can only view content in read-only mode without creating an account or interacting with features like quizzes or forums.
  • Registered User: A person who creates an account, whether or not they actively interact with quizzes, forums, or other features of the platform.
  • Admin: A super registered user with special permissions to manage and oversee forums, quizzes, and users when needed. They have more control than regular users.
  • Username: Publicly visible name; used in forums, comments, etc.
  • Login: Users can access the application or website by entering their email address and password.
  • Authentication: The steps of establishing identity and verifying permission to access the platform.
  • User Level: A classification that indicates a user's proficiency level in a language, helping to tailor learning experiences to their skills (e.g., beginner, intermediate, advanced).
  • Profile Page: A page that displays a user's quizzes, forum interactions, and personal stats.
  • Quiz: A tool for learning a language that can be provided by the app or created by users using provided quiz creation tools. It has one or more questions on a topic.
  • Question: A prompt in a quiz that asks for an answer. It can be a multiple-choice question or require a written response which helps users test their knowledge in language learning.
  • Forum: A platform where users can share posts and comment on others about language learning.
  • Forum Post: An entity in the forum where users can ask questions or share information about language learning.
  • Comment: A response that can be an answer to a question, a question itself, or feedback on the information shared, but must relate to the topic of the post.
  • Misinformation Tag: A label that can be added to incorrect quizzes, misleading questions, or forum posts and comments that contain false information.
  • Hateful Speech Tag: A tag that can be added to forum posts which contains hate speech, slang, racist discourses etc.
  • Forum Tag: A label used to categorize forum posts. (e.g., #question, #information, #meme).
  • Quiz Tag: A label used to categorize quizzes, helping users identify the topic or type of quiz (e.g., #grammar, #vocabulary, #culture).
  • Quiz Difficulty Tag: A label used to indicate the level of challenge of a quiz, helping users choose quizzes that match their skill level (e.g., @A2, @B1, @C1).

1. Functional Requirements


1.1 Account Management Subsystem Requirements

1.1.1 Guest Requirements
  • 1.1.1.1 Guests shall be able to sign up.
  • 1.1.1.2 Guests may need to verify their email when they sign up.
  • 1.1.1.3 Guest may be able to reset their passwords through the 'Forget Password' functionality.
  • 1.1.1.4 Guest shall be able to log in.
1.1.2 Logged-in User Requirements
  • 1.1.2.1 Logged-in Users shall be able to log out.
  • 1.1.2.2 Logged-in Users shall be able to view their profile.
  • 1.1.2.3 Logged-in Users shall be able to change their password.
  • 1.1.2.4 Logged-in Users shall be able to view their bookmarked forum posts/comments while viewing their profile.
  • 1.1.2.5 Logged-in Users shall be able to view their bookmarked quizzes while viewing their profile.
  • 1.1.2.6 Logged-in Users shall be able to view their own forum posts/comments while viewing their profile.
  • 1.1.2.7 Logged-in Users shall be able to change their profile picture while viewing their profile.
  • 1.1.2.8 Logged-in Users shall be able to view their own created quizzes while viewing their profile.
  • 1.1.2.9 Logged-in Users shall be able to view their own solved quizzes & results while viewing their profile.
  • 1.1.2.10 Logged-in Users shall be able to view their followers while viewing their profile.
  • 1.1.2.11 Logged-in Users shall be able to view the people following them while viewing their profile.
  • 1.1.2.12 Logged-in Users shall be able to search for other users using their usernames.
  • 1.1.2.13 Logged-in Users shall be able to go to the quiz page when viewing a quiz in someone's profile.
  • 1.1.2.14 Logged-in Users shall be able to go to the forum post when viewing a post in someone's profile.
  • 1.1.2.15 Logged-in Users shall be able to follow other users.
  • 1.1.2.16 Logged-in Users shall be able to unfollow other users.
  • 1.1.2.17 Logged-in Users shall be able to view the created, solved quizzes and the forum posts/comments of another user when viewing their profile.
  • 1.1.2.18 Logged-in Users shall be able to view the following/followers of another user from their profile.
1.1.3 Admin Requirements
  • 1.1.3.1 Admins shall be able to do everything that a user can.
  • 1.1.3.2 Admins shall be able to ban users.

1.2 Quiz Subsystem Requirements

1.2.1 Guest Requirements
  • 1.2.1.1 Guests shall be able to view the quiz feed.
  • 1.2.1.2 Guests shall be able to see quiz statistics and details.
  • 1.2.1.3 Guests shall be able to use the search functionality to find quizzes.
1.2.2 Logged-in User Requirements
  • 1.2.2.1 Logged-in Users shall be able to do everything that guests can.
  • 1.2.2.2 Logged-in Users shall be able to create a quiz.
  • 1.2.2.3 Logged-in Users shall be able to add questions to a quiz with the help of Lexvo while creating a quiz.
  • 1.2.2.4 Logged-in Users shall be able to add tags to a quiz (including difficulty tags) while creating a quiz.
  • 1.2.2.5 Logged-in Users shall be able to take a quiz.
  • 1.2.2.6 Logged-in Users shall be able to cancel a quiz while taking it.
1.2.3 Admin Requirements
  • 1.2.3.1 Admins shall be able to do everything that a logged-in user can.
  • 1.2.3.2 Admins shall be able to delete any quiz.
  • 1.2.3.3 Admins shall be able to change the tags of any quiz.

1.3 Forum Subsystem Requirements

1.3.1 Guest Requirements
  • 1.3.1.1 Guests shall be able to view the forum feed.
  • 1.3.1.2 Guests shall be able to view the comments under a forum post.
  • 1.3.1.3 Guests shall be able to search use the search functionality to find forum posts.
1.3.2 Logged-in User Requirements
  • 1.3.2.1 Logged-in users shall be able to do everything that a guest can.
  • 1.3.2.2 Logged-in users shall have their feeds customized.
  • 1.3.2.3 Logged-in users shall be able to create new posts in the forum.
  • 1.3.2.4 Logged-in users shall be able to add tags to the post while creating new posts in the forum.
  • 1.3.2.5 Logged-in users shall be able to create new comments under posts.
  • 1.3.2.6 Logged-in users shall be able to bookmark posts and comments in the forum.
  • 1.3.2.7 Logged-in users shall be able to delete their own comments.
  • 1.3.2.8 Logged-in users shall be able to like/unlike posts and comments.
1.3.3 Admin Requirements
  • 1.3.3.1 Admins shall be able to do everything that a logged-in user can.
  • 1.3.3.2 Admins shall be able to delete any post.
  • 1.3.3.3 Admins shall be able to delete any comment.
  • 1.3.3.4 Admins shall be able to adjust the tags of a post.

2. Non-functional Requirements

2.1 Availability and Reliability Requirements
  • 2.1.1 The project should be available in English and Turkish (to cater to beginner level learners as well).
  • 2.1.2 Should set up backups to protect against data loss and quickly fix any problems if data gets corrupted or lost.
  • 2.1.3 The platform must be capable of accommodating a minimum of 100 simultaneous user actions.
2.2 Performance
  • 2.2.1 The system shall respond to requests within 3 seconds.
  • 2.2.2 The system should be capable of handling up to 100 requests per second
  • 2.2.3 The platform must maintain a minimum up-time of 99%.
2.3 Security
  • 2.3.1 Passwords maintained in the system's database will be secured through encryption
  • 2.3.2 Private personal information of users (their email(s) and password) shall be concealed from other members
  • 2.3.3 The system should allow only strong passwords for user accounts, combining letters, numbers, and symbols
2.4 Compatibility
  • 2.4.1 Compatibility with popular web browsers like Google Chrome, Safari is ensured for the project.
  • 2.4.2 The users shall be able to enter the system from a smartphone or tablet.
  • 2.4.3 It should be compatible with different popular Operating Systems.
⚠️ **GitHub.com Fallback** ⚠️