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?
  • How often do you find yourself wanting to comment on specific parts of a post or an image, rather than the entire content?
  • What are your thoughts on the text annotation feature, which allows you to select specific segments of text and add your comments?
  • Would you find it helpful to highlight a certain portion of an image and make specific comments on it?
  • What kind of controls or options would you like to have when making annotations, both text and image-based?
  • What are your thoughts on how annotations are displayed to other users in the space?
  • How often do you find yourself using tags to categorize or search for content within a space?
  • What are your thoughts on the visibility of semantic tags? Do you feel they should be prominently displayed, or kept more subtle?
  • How would you feel about a feature that allows you to filter or sort posts based on semantic tags?

C- Requirements

a- Functional Requirements

Annotations

  • 1. Annotations shall have id information that shows the identity of the annotation.

  • 2. Annotations shall have target information that will show the relationship between an annotation and its target.

  • 3. Annotation target shall have source information.

  • 4. Annotations shall have a body, that will show the relationship between an Annotation and its Body.

  • 5. Annotation body shall contain text annotations.

  • 6. Annotation selectors shall be used to identify a specific section of a post description, or a specific region of the post image.

  • 7. Annotations shall contain FragmentSelector for image annotations.

  • 8. Annotations shall contain TextPositionSelector for text annotations.

  • 9. Annotation shall follow Web Annotation Data Model format.

  • 10. FragmentSelector shall contain width, height and position values of the selected image area.

  • 11. Annotations shall contain creator information.

  • 12. Users shall be able to select a text and annotate the related text.

  • 13. Users shall be able to select a part of an image and annotate the related image area.

  • 14. Users shall be able see the annotations of other users in text annotations.

  • 15. Users shall be able see the annotations of other users in image annotations.

  • 16. Annotations should be highlighted on the description part of the post details.

  • 17. Image annotations shall be given in rectangle areas with the annotation text information included.

Bookmarks

  • 18. Users shall be able to bookmark the posts they want.

  • 19. Users shall be able to see the bookmarked posts as a list.

Semantic Tag

  • 20. Users shall be able to create new posts by using descriptive tags.

  • 21. Users shall be able to create new posts by using informative tags.

  • 22. Users shall be view the descriptive and informative tags of the posts in post lists and post detail pages.

Spaces

  • 23. Users shall be able to create a Space.

  • 24. Users shall be able to join a Space.

  • 25. Users shall be able to share a post on a space when they have permission for sharing.

  • 26. Users shall be able to see posts sorted by newest posts in top in the related space.

  • 27. Users shall be able to see his/her posts shared in space.

  • 28. Users should be able to view a list of spaces they have joined.

  • 29. Users should be able to view a list of recommended spaces based on their activity.

  • 30. Users should be able to search for spaces by keywords.

  • 31. Users should be able to view a list of spaces ordered by popularity or activity.

  • 32. Users should be able to view a list of all the spaces.

  • 33. Users should be able to leave spaces.

Space Policy Requirements

  • 34. Spaces should have a name and description.

  • 35. Spaces should have a list of moderators who can manage the space and its members.

  • 36. Spaces should have a list of members who have joined the space.

  • 37. Spaces should have a list of posts made by members.

  • 38. Spaces should let all the members to be able to post if the policy is set as "All members can post".

  • 39. The admin of the system reserves the right to remove spaces at any time.

  • 40. The members or moderators of the space shall not be able to change the space name or description.

  • 41. Spaces should let only moderators and space owner to be able to post if the policy is set as "Only moderators can post".

  • 42. Spaces should let only the granted members to be able to post if the policy is set as "only granted members can post".

Space Admin Requirements

  • 43. Creator of the space directly recognized as owner.

  • 44. Admins shall be able to define space policy.

  • 45. Moderators should be able to remove posts that violate the space policy requirements.

  • 46. Moderators should be able to remove members who violate the space policy requirements.

  • 47. Admins should be able to promote members to moderator status.

  • 48. Admins should be able to remove moderators from the space.

  • 49. Admins should be able to change the space policy for posting rights.

  • 50. Admins and moderators should be able to grant posting rights to members.

  • 51. Admins and moderators should be able to remove posting rights from granted members.

My Account

  • 52. Users shall be able to get recommendations.

  • 53. Users shall be able to get a badge based on predefined accomplishments.

Search

  • 54. The system should give users the ability to search for content using keywords related to posts, spaces, post tags and annotations.

  • 55. The system shall have the capability to recommend relevant posts to users.

  • 56. The system shall also recommend relevant spaces to users based on their user profiles.

Badges

  • 57. Users shall be able to earn a badge.

  • 58. Users shall be able to earn different types of badges.

  • 59. Users shall be able to see the earned badges on user profiles.

  • 60. The badges shall have a name.

  • 61. The badges shall have an image.

b- Non-Functional Requirements

Usability & Performance

  • 62. All pages on the website shall be loaded within 5 seconds for at least %99 of the users.
  • 63. The website shall have the capacity for at least 5.000 logged-in users at any given time.
  • 64. The website must have at least 95% uptime.
  • 65. The application must be scalable enough to support 100.000 visits at the same time while maintaining its optimum performance.

Security

  • 66. The password information shall never be visible at any page of the website.
  • 67. 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.

One day, she reads a post about a new book. She decides to add her thoughts directly on specific segments using the text annotation feature. She highlights a paragraph, adds her comments, and saves it. Her insights immediately spark further discussions among space members.

Later, Sarah stumbles upon an interesting infographic within a post. She decides to utilize the image annotation feature. She selects a portion of the image, adds her observations, and saves the annotation. This allows her to focus the discussion on specific parts of the image. Through these features, Sarah enjoys engaging, nuanced conversations within her chosen spaces.