Requirements - swe574-spring23/SWE574 GitHub Wiki
Table of Content
A- Glossary and Terminology
B- Elicitation Questions
C- Requirements
D- Scenarios
A- Glossary and Terminology
User = User describes people who have registered the website with their valid e-mail and username.
Post = Post describes the content that users shares in the system.
Content= Content describes the social media information that users have find in their daily social media journey.
Accomplishments= Tasks or duties that a user shall undertake.
Badges= Indicator of accomplishments.
Annotations= Annotations are used to convey information about a resource or associations between resources. For detailed information check out Annotations Wiki Page.
Space= Where users create and/or attends communities gathered around a specific topic and share/view posts.
Semantic Tag= It is a markup element or attribute used to provide contextual meaning or structure to a piece of content in a document, typically within HTML or XML files.
B- Elicitation Questions
- What kind of spaces are you interested in creating or joining?
- How important is it for you to be able to search for spaces by keywords or view recommended spaces?
- What features would you like to see in a space that would make it more engaging or useful for you?
- How do you think moderators should manage spaces and their members?
- What kind of content or behavior do you think should be reported to moderators?
- How important is it for you to have a fast response time when using the Space Feature?
- What do you think about the policy requirements for spaces?
- What do you think about the requirements for admins and moderators?
- How do you think users should manage their own space membership and roles?
C- Requirements
a- Functional Requirements
Annotations
-
Annotations shall be attached to a target, which is the resource or piece of content.
-
Annotation target can be any web resource, such as a webpage, image, or video.
-
Annotation target shall be well-defined and easily identifiable.
-
Annotations shall have a body, which is the content of the annotation or information being added to the target.
-
Annotation body can be any type of data, such as text, images, or audio.
-
Annotation body shall be clear, concise, and relevant to the target.
-
Annotations may have a selector, which is a way of specifying a portion of the target that the annotation applies to.
-
Annotation selectors can be used to identify a specific section of a webpage, a particular line of text, or a specific region of an image.
-
Annotation shall follow a standard format of JSON-LD to ensure compatibility and interoperability with various web platforms.
-
Annotations shall have a motivation, which is the reason for creating the annotation.
-
Annotations may have an agent, which is the person or software that created the annotation. As such;
-
Users shall be able to highlight a text.
-
Users shall be able to annotate a text.
-
Users shall be able to make comment on another users' annotation.
-
Users shall be able to share annotations.
-
Users shall be able to edit annotations they create.
-
Users shall be able to delete annotations they create.
-
Users shall be able to edit comments under annotations they create.
-
Users shall be able to delete comments under annotations they create.
Semantic Tag
-
Users shall be able to post new links by creating either descriptive or informative tags.
-
Semantic tags shall use schema markup language of JSON-LD to make easier for other applications to understand the meaning and purpose of the information.
22 . System shall use appropriate semantic tags to offer consistency throughout the project.
Spaces
-
Users shall be able to create a Space.
-
Users shall be able to join a Space.
-
Users shall be able to share a post on a space when they have permission for sharing.
-
Users shall be able to see top rated, newest posts in space.
-
Users shall be able to see his/her posts shared in space.
-
Users should be able to view a list of spaces they have joined.
-
Users should be able to view a list of recommended spaces based on their interests and activity.
-
Users should be able to search for spaces by keywords.
-
Users should be able to view a list of spaces ordered by popularity or activity.
-
Users must accept space policy during application.
-
Users should be able to view their own space membership status and roles (i.e. member or moderator).
-
Users should be able to leave spaces.
-
Users should be able to report inappropriate content or behavior within a space to moderators.
Space Policy Requirements
-
Spaces should have a name and description.
-
Spaces should have a list of moderators who can manage the space and its members.
-
Spaces should have a list of members who have joined the space.
-
Spaces should have a list of posts made by members.
-
Spaces should have a list of recommended posts based on the interests of the members.
-
Spaces should have a list of recommended members based on their interests and activity.
-
Space posts must not contain any content that is illegal, harmful, racist, sexist or offensive.
-
Moderators must be active and responsive to reports of inappropriate content or behavior within their space.
-
Members must be able to report inappropriate content or behavior within a space.
-
Spaces that violate the policy requirements may be removed or disabled.
-
The admin of the system reserves the right to remove or disable spaces that violate the policy requirements at any time.
Space Admin Requirements
-
Creator of the space directly recognized as admin.
-
Admins can create space policies.
-
Admins and moderators should be able to remove posts that violate the space policy requirements.
-
Admins and moderators should be able to remove members who violate the space policy requirements.
-
Admins and moderators should be able to warn users who repeatedly violate the space policy requirements.
-
Admins should be able to promote members to moderator status.
-
The moderators should monitor user activity on the application and identify users who violate the guidelines.
-
Admins should be able to change the space name and description.
-
Admins should be able to send notifications to all members of the space.
My Account
-
Users shall be able to get recommendations.
-
Users shall be able to get a badge based on predefined accomplishments.
Search
-
The system should give users the ability to search for content using keywords related to posts, spaces, post tags and annotations.
-
The system shall have the capability to recommend relevant posts to users.
-
The system shall also recommend relevant spaces to users based on their user profiles.
Badges
-
Users shall be able to earn a badge.
-
Users shall be able to earn different types of badges.
-
Users shall be able to learn the criteria required to earn a badge.
-
Users shall be able to see the earned badges on user profiles.
-
The badges shall have a meaningful name.
-
The badges shall have a description.
-
The badges shall have an image.
-
The system shall notify the user when a badge is earned.
b- Non-Functional Requirements
Usability & Performance
- All pages on the website shall be loaded within 5 seconds for at least %99 of the users.
- The website shall have the capacity for at least 5.000 logged-in users at any given time.
- The website must have at least 95% uptime.
- The application must be scalable enough to support 100.000 visits at the same time while maintaining its optimum performance.
Security
- The password information shall never be visible at any page of the website.
- The username and password records shall not be viewed or updated by unauthorised users.
D . User Scenario
User Scenario:
Sarah is a social media enthusiast who loves to connect with people and share her thoughts and opinions on various topics. She is always looking for new communities to join and engage with like-minded individuals. One day, she discovers the Space Feature of the application and decides to give it a try.
After logging into the application, Sarah navigates to the Space Feature and begins searching for spaces that match her interests. She types in keywords related to her hobbies and areas of expertise and is presented with a list of spaces that meet her criteria. She selects a few spaces that catch her eye and joins them with a single click.
As Sarah explores the spaces she has joined, she discovers a vibrant community of like-minded individuals who share her passion for various topics. She enjoys reading the posts made by other members and decides to create a few posts of her own to share her thoughts and opinions. Annotation part to be added.