Skip to content

Requirements

EgemenKaplan edited this page Apr 3, 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

Content Types

  • Post: Main entities that users create when they want to save links.
  • Interest Area(IA): Main container of posts on the platform. Users create IAs in order to categorize their posts and share them with other users on the platform should they desire.

You can find more details about these under item "1.2.1 Content"

User Types

  • Guest: Visitors without a verified account. They can only explore public IAs on the platform.
  • Registered User: Verified users with different authorization levels. They will be referred to as "Users" throughout this document.
  • System Administrator: Site administrative users which have access to account management dashboard.

1. Functional Requirements

1.1 User Requirements

  • 1.1.1 Registration and Login

    • 1.1.1.1 Guests :
      • a) shall be able to register using an email and password.
      • b) should be able to register using 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

    • 1.1.2.1 Users shall be able to delete their accounts.
    • 1.1.2.2 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.3 Users shall be able to link their accounts to social media profiles.
  • 1.1.3 User-to-User Interactions

    Users shall be able to:

    • 1.1.3.1 follow other users on the platform.
    • 1.1.3.2 send direct message to other users.
    • 1.1.3.3 vote on other users based on their merits or misbehaviours(Reputation system.)
  • 1.1.4 User-to-Platform Interactions

    Users shall be able to interact with the platform via:

    • 1.1.4.1 Posts:

      • a) Creating posts.
      • b) Commenting on posts.
      • c) Down/Upvoting a post.
      • d) Reporting inappropriate content.
      • e) Annotate posts.
    • 1.1.4.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.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 have a concrete "Community Guidelines" to bring Members and System Administrators on the same page in terms of appropriate content and behavior allowed on the platform.
  • 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