Skip to content

Requirements

Hasan Baki Kucukcakiroglu edited this page Mar 27, 2023 · 38 revisions

Glossary

  • IA: Interest Area
  • API: Application Programming Interface
  • GDPR: General Data Protection Regulation
  • KVKK: Turkish Personal Data Protection Law
  • W3C: World Wide Web Consortium

1. Functional Requirements

1.1 User Requirements

  • 1.1.1 Registration and Login

    • 1.1.1.1 Users shall be able to register using:
      • a) an email and password.
      • b) a social media account.
    • 1.1.1.2 Users shall be able to:
      • a) login.
      • b) logout.
      • c) reset their passwords.
  • 1.1.2 Account Management

    • 1.1.2.1 Users shall verify their email addresses before they interact with the platform, viewing public content excluded.
    • 1.1.2.2 Users shall be able to delete their accounts.
    • 1.1.2.3 Users shall be able to update some of the account information.
      • a) Users shall be able to change passwords, and email addresses.
      • b) Users shall not be able to change their username and birthday.
    • 1.1.2.4 Users shall be able to link their accounts to social media profiles.
  • 1.1.3 User Types

    Users shall be able to interact with the system as one of the followings:

    • a) Guest: Visitors without a verified account.
    • b) Member: Verified users with different authorization levels.
    • c) System Administrator: Site administrative users which have access to account management dashboard.
  • 1.1.4 User-to-User Interactions

    Users shall be able to:

    • 1.1.4.1 follow other users on the platform.
    • 1.1.4.2 send direct message to other users.
    • 1.1.4.3 vote on other users based on their merits.(Reputation system.)
  • 1.1.5 User-to-Platform Interactions

    Users shall be able to interact with the platform via:

    • 1.1.5.1 Posts:

      • a) Creating posts.
      • b) Commenting on posts.
      • c) Down/Upvoting a post.
      • d) Reporting inappropriate content.
      • e) Annotate posts.
    • 1.1.5.2 Interest areas:

      • a) Creating interest areas.
      • b) Following interest areas.
      • c) Join interest areas.
        • Request to join an invite-only interest area.
      • d) Post on interest areas.
      • e) Bookmark interest areas.
      • f) Manage roles of other users of their own interest areas.

1.2 System Requirements

  • 1.2.1 Content

    System shall have a certain structure of content and content containers as follows:

    • 1.1.5.1 Posts

      • 1.1.5.1.1 Have main bodies that consist of only a main non-empty link, that is the target of the post in question, and an optional text for the creator to comment on this target link.
      • 1.1.5.1.2 Utilize a tagging system. (See 1.1.5.2)
      • 1.1.5.1.3 Contain required relevant metadata:
        • At least one related entity in accordance with the utilized tagging system.
        • Source
        • Creator - Either a person(author, photographer etc.) or an entity in accordance with the utilized tagging system.
      • 1.1.5.1.4 Contain optional relevant metadata:
        • Location
        • Creation and publication date
        • Fact-checking status
      • 1.1.5.1.5 Have comments, upvotes, and downvotes.
      • 1.1.5.1.6 Specify actions (e.g., documentation, learning, research, news) tied to their purpose.
    • 1.1.5.3 Interest Areas (IAs):

      • 1.1.5.3.1 Consist of posts created by their users or posts created within their nested IAs.
      • 1.1.5.3.2 Can consist of a collection of other IAs.(nested)
      • 1.1.5.3.3 Obtain at least one tag during their creation. IA tags only show the topic scope of an IA.
        • Users shall be able to alter the tags of an IA later.
      • 1.1.5.3.5 Offer various access levels:
        • Public
        • Private
        • Invite-only
    • 1.1.5.4 A home page:

      • 1.1.5.4.1 Display recent posts from followed interest areas and users.
      • 1.1.5.4.2 Suggest relevant posts, users and interest areas.
    • 1.1.5.5 Annotations

      • 1.1.5.5.2 Annotations shall have the W3C Web Annotation Data Model.
  • 1.2.2 Search and filtering capabilities that shall

    • 1.2.2.1 Allow users to search for posts, users, and IAs based on semantic labels, metadata, and interest areas.
    • 1.2.2.2 Enable post filtering by interest areas, date, location, and other metadata.
    • 1.2.2.3 Sort search results by relevance, date, and popularity.
  • 1.2.3 Labeling

    • 1.2.3.1 Tags

      • 1.2.3.1.1 Display related tags.
      • 1.2.3.1.2 Allow users to recommend metadata tags for other posts or IAs.
      • 1.2.3.1.3 Facilitate post searching based on metadata tags.
      • 1.2.3.1.4 Integrate with Wikidata to retrieve semantic labels.
      • 1.2.3.1.5 Allow users to find interest areas, users, and posts related to themselves.
    • 1.2.3.2 Reputation system:

      • 1.1.5.5.1 Assign user labels badges (e.g., fact checker, author) depending on the reputation votes of other users.
  • 1.2.4 Reporting and Moderation

    System shall have a dashboard to review reported content which gives the capabilities of:

    • a) deleting the content.
    • b) warning the user who posted it.
    • c) temporarily or permanently ban users or posts that violate the platform's rules.
  • 1.2.5 Account Management

    • 1.2.3.2 When a user's account is deleted, all account information including the username, password, and email address shall be deleted from the database.
    • 1.2.3.3 All private IAs created by deleted account shall be deleted along with the posts created in them.
    • 1.2.3.4 Public posts, comments, invite-only IAs, and public IAs created by deleted account shall remain visible on the platform.
    • 1.2.3.5 System shall not allow creating more than one account with the same email address. The attempt to do so shall prompt a warning.
    • 1.2.3.6 System shall check the birth day of a user during the access to age-restricted content. This information is immutable after account creation.

2. Non-Functional Requirements

  • 2.1 Platforms

    • 2.1.1 Application shall be available for Web and Android platforms.
    • 2.1.2 Application shall receive data from APIs.
    • 2.1.3 The web version of the application shall be compatible with commonly used web browsers, including Google Chrome, Mozilla Firefox, and Safari.
    • 2.1.4 The Android version of the application shall be compatible with Android 5.0 and higher.
    • 2.1.5 The application shall be optimized for performance and usability on both web and mobile platforms.
  • 2.2 Supported Languages

    • 2.2.1 Application shall support English and Turkish languages.
    • 2.2.2 The application shall provide a language switch option in the user interface, allowing users to switch between supported languages.
  • 2.3 Security

    • 2.3.1 User authorization information shall be encrypted.
  • 2.4 Privacy

    • 2.4.1 Users shall have control on their own privacy settings such as profiles, posts and IAs shall have public, private and invite-only options.
    • 2.3.2 The application shall implement strong password requirements and provide guidance to users on creating secure passwords.
    • 2.3.3 The application shall log all user authentication attempts and notify users of suspicious login attempts or activity.
  • 2.5 Ethical Considerations

    • 2.5.1 Application should not contain sensitive content.
    • 2.5.2 The platform shall protect personal information and contact information, adherence to copyrights, and licensing considerations; according to GDPR/KVKK rules.
    • 2.5.3 The application shall implement content moderation features, including user reporting and review of reported content, to ensure that all content is appropriate and aligns with the platform's community guidelines.
  • 2.6 Restricted Content

    • 2.6.1 Adult content should have age restrictions.
    • 2.6.2 Application shall not contain criminal content and gore.

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