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.