Requirements ‐ CmpE451 - bounswe/bounswe2024group6 GitHub Wiki

Project Requirements (Draft)

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: Used for login purposes.

  • Nickname: Publicly visible name; used in forums, comments, etc.

  • Login: Users can access the application or website by entering their username 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, favourite 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., #easy, #medium, #hard).

1. Functional Requirements


1.1 User Requirements

1.1.1 Registration and Login-Logout Requirements
  • Users shall provide their unique username, secure password and e-mail adresses for registration.
  • Users should provide another e-mail adress for recovery.
  • Users should verify their e-mail adress.
  • Users shall be able to log in to the application or website by inputting their username and password.
  • Users shall be able to reset their password using their e-mail as a recovery option or current password.
  • Registered user shall safely logout from the application or website.
1.1.2 Account Requirements
  • Accounts shall have a publicly available, unique nickname.
  • Accounts should have a publicly available avatar.
  • Accounts shall have a list of created quizzes and submitted posts on the forum.
1.1.3 Registered User Requirements
  • Registered users shall be able to view, solve and create quizzes.
  • Registered users shall be able to view and comment on existing posts, submit new posts on the forum.
  • Registered users shall be able to edit their account information.
1.1.4 Guest User Requirements
  • Guest users shall be able to display the existing quizzes but shall not be able to create new quizzes, or solve the existing ones.
  • Guest users shall be able to view existing posts on the forum but shall not be able to submit new posts on the forum and comment on the existing posts.
1.1.5 Admin Requirements
  • Admins should be able to review and approve quizzes before they are published.
  • Admins shall be able to remove quizzes containing inappropriate or misleading content.
  • Admins shall be able to remove posts and comments containing inappropriate or misleading content on the forum.
  • Admins should be able to ban accounts that intentionally create quizzes with misleading questions or inappropriate content.
  • Admins should be able to ban accounts that intentionally submit posts containing misleading information or inappropriate content on the forum.
1.1.6 User Interaction Requirements
  • Registered users shall be able to follow each other.
  • Registered users shall be able to unfollow other users.
  • Registered users shall have an profile page where their contents are displayed.
  • Registered users shall be able to actively interact with the contents (comment, solve quizzes etc.).
  • Registered users should be able to delete their own posts.
  • Registered users should be able to delete the comment to the posts.
  • Registered users should be able to like or dislike the posts.
  • Guests shall be able to view the contents in read-only mode.
  • Admins should have regulatory power over forum content and quizzes to prevent inappropriate and misleading contents.
  • Registered users shall have ability to update their account information.

1.2 System Requirements

1.2.1 Searching Requirements
  • Quizzes and words should be able to be searched using keywords or specific queries.
  • Results should be sorted based on relevance.
  • Relevant words and quizzes shall be displayed when searching for a word.
  • Advanced search filters for difficulty level, user level etc.
1.2.2 Integration Requirements
  • Integration with the Lexvo should be implemented to fetch relevant data about words and meanings handling of API requests and responses.
  • Caching mechanisms should be implemented to optimize performance and reduce the load on the Lexvo API by storing frequently accessed data locally.
1.2.3 Post Requirements
  • A quiz should contain at least 5 questions.
  • Question should have 3 formats.
  • Question should be the smallest unit in Quiz part.
  • Posts should be posted about words.
  • There should be comments section for posts.
  • There should be rating part at the end of the quiz, users can give among 1 to 5 stars.
  • Posts should have the functionality to be liked and disliked.
1.2.3 Quiz Requirements
  • A quiz shall be categorized based on its difficulty.
  • There should be example quizzes that belongs to application itself.
  • Words in quizzes should be linked to their Lexvo equivalent.
  • Quizzes should contain multiple choice questions or require a written response.

2. Non-functional Requirements

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