Skip to content

Requirements Draft

EgemenKaplan edited this page Mar 20, 2023 · 6 revisions

Requirements Draft

Functional

User Requirements:

  1. Registration/Login System
    1. Users must register on the platform to create an account.
      1. Register with an email account.
      2. Register with a social media account.
      + c. There shall not be more than one account created with the same email address.
      + d. Users shall enter birth year during account creation and this information shall be immutable after this process.
    2. Login
    3. Logout
    4. Forgot Password
  2. Account management
    1. Email verification
    2. Delete account
    3. Update account information
      1. Change password
      - b. Change username
      + b. Users cannot change their username
      1. Change email address
    4. User should be able to link his/her account with a social media account.
    - v. Users should state a birthdate for content access requirements.
    ! See item 1.i.d above.
  3. User Types
    1. Guest - Outside visitors without a verified account
      + a. Guests shall be able to view public content on the platform.
      + b. Guests shall not be able to create any content, comment or reaction on the platform.
    2. Member - Users with an account, and different auth levels
      1. Users must be able to sign up, sign in, and update their profiles.
      2. Users must be able to create, edit and delete their own posts.
      3. Users must be able to follow, bookmark and unfollow interest areas and other users.
      4. Users must be able to create and manage their own lists.
    3. System Administrator - Site administrative users.
      1. Moderators must have all the rights of a user.
      2. Moderators must be able to manage users and their posts.
  4. Interactions Between The Users
    1. Following
      1. Users should be able to follow other users on the platform.
    2. Messaging
    3. Reporting
      1. Users must be able to report inappropriate content.
  5. Content / Interactions Between the Users and Platform (Forum)
    1. Post
      + a. A post's main body shall consist of only a main non-empty link, that is the target of this post,
      + and an optional text for the creator to comment on this target link.
      + The link can lead to many types of contents; web page, image, audio, video.
      1. Posts should contain relevant metadata.
        1. Source of this post (necessary)
        2. Date of publishment (optional)
      +     c. What are the related entities/tags? (At least 1 necessary)
      +     d. Where was the post created? (optional)
      +     e. Is it fact-checked?
      
      - 3. Posts should contain relevant tags.
      ! See 5.i.b
      1. Users should be able to find relevant posts to current posts by its tag.
      2. Users should be able to join interest areas in which they can find posts on a specific topic.
      3. Users should be able to comment on posts.
      4. Users should be able to upvote/downvote posts.
      - 7. Users can also enter meta-information such as “who created the original resource,” “when it is created,” “where it is created,” “related entities,” and whether the resource is indeed fact-checked (i.e., not fake news).Q:  Clarification needed
      ! See 5.i.b
      1. Posts should have “Actions” tied to them. Actions will be separate entities that describe the purpose of the post rather than its topic.
        1. Documentation
        2. Learning
        3. Research
        4. News
    2. Tags
      1. There should be a “Related Tags” section for each Tag that shows other Tags.
      2. Users should be able to recommend metadata tags for other posts or IAs
      3. Users should be able to click on metadata tags to be led to a page that consists of recent/trending/top posts with the same tag.
      4. The platform should integrate with Wikidata to retrieve semantic labels.
    3. Interest Area
      1. Users should be able to create interest areas (IA).
      + b. Users shall be able to add tags to IAs in order to show what each IA's scope of topic is.
      +     a. Tags shall not have any actual control over allowed posts inside IAs.
        c. An IA can be a collection of other IAs on the platform
      + d. IAs shall only contain posts created by authorized users or posts created within the IAs that they follow.
      + e. Users shall be able to find related IAs by interacting with the tags that an IA has.
      - 3. IA can consist of posts that have metadata tags that they are interested in.
      -    1. **Q: When an IA is created with certain tags, should it have every single post on the platform that has these tags?**
      -    2. **Q: Are tags on IAs just a sign of what the IA is about?**
      - 4. **Q: IA could consist of posts created by several other users they are interested in**
      - 5. **Q: Should interest areas contain only posts?**
      - 6. **Q: Can IAs be a collection of specific tags?( Show any post on the platform that has specific tags)**
      1. Users should be able to follow/bookmark IAs on the platform.
      2. Users should be able to join IAs created.
        1. Public IA: Open to everyone.
        2. Private IA: Completely closed to everyone else.
        3. Invite-Only IA: Join by invitation
          - a. **Q: Can other users send requests to join a private/invite-only IA?**
          + a. Other users shall be able to request access to invite-only IAs.
      3. Users should have roles assigned to them within the IAs they join.
        1. Owner/Curator - Read, Write, Moderate other users
        2. Content Creator (Author?) - W
        3. Moderator - M
        4. Content Consumer - R
    4. Home Page
      1. Users should have a home/feed page that shows the recent posts from their interest areas and other users they follow.
      2. There should be a “Related Posts” section for each post that shows other posts that have related tags to that particular post.
    5. Reputation System
      1. Users should be able to receive labels such as “Fact Checker”, “Author” etc. to help the community regulate itself.
    6. Search and filtering:
      1. The platform must have a search bar to search for posts, users, and interest areas. The platform will have a search functionality that allows users to search for posts based on semantic labels, meta-information, and interest areas.
      2. Users must be able to filter posts by interest areas, date, location, and other meta-information.Users must be able to sort search results by relevance, date, and popularity.

System Requirements:

  1. Annotations: Users should be able to annotate different models, and annotations should comply with the W3C Web Annotation Data Model.

  2. Reporting and moderation:

    1. Users must be able to report inappropriate content.
    2. Admins must be able to moderate reported content.
    3. Admins must be able to remove users or posts that violate the platform's rules.
+ 3. When a user's account is deleted, data and content related to this user account shall behave in the following ways:
+     a. All account information(username, password, email address etc.) shall be deleted from the database.
+     b. All private IAs created by this account shall be deleted along with the posts created in them.
+     c. Every other public posts, comments, invite-only IAs and public IAs created by this account shall stay visible on the platform. 

Non-Functional

  1. Platforms
    1. Android (Frontend)
    2. Web (Frontend)
    3. API
  2. Supported Languages
    1. English
    2. Turkish
  3. Security
    1. All sensitive data (passwords etc.) should be encrypted.
  4. Privacy
    1. Users must be able to control their privacy settings, such as making their profiles, posts, and interest areas private or public.
  5. Ethical Considerations
    1. Sensitive content cannot be a part of the system.
    2. The platform must protect personal information and contact information, adherence to copyrights, and licensing considerations, according to GDPR/KVKK rules.
  6. Content should not be limited to certain fields. Any field goes except…
    1. No gore
    2. Adult content with invitation only and age restricted access
    3. Criminally bad stuff

Q: Integration:

  1. The platform must integrate with Wikidata to retrieve semantic labels.
  2. The platform must integrate with the W3C Geolocation API to implement location-related information. Location tagging details and how will it work within the application? - “The platform will use W3C Geolocation API standard for implementing location-related information.”
  3. The platform must implement the W3C Web Annotation Data Model to annotate different models.

bounswe2023group8

🏠 Home

🗄️ Project
Milestones
👤 Individual Contribution Reports
Milestone 1
Milestone 2
Final Milestone
🖇️ Lab Reports
📑 Templates
👥 Team Members
CmpE 352
Old Project Files
📅 Meetings
🔬 Researches
👤 Individual Contribution Reports
Clone this wiki locally