Requirements - bounswe/bounswe2018group7 GitHub Wiki

version: 2

Glossary

  • Account: An entity which uniquely represents a person in the system. It consists of a username, a real name (optional), a profile picture (optional), an email address and a password.
  • Annotation: A note, comment or explanation attached to a specific part of a text or an image. It can contain plain text, link, image, video and audio.
  • Comment Section: A distinct area in a memory-post that contains comments of the people about the memories stated in the memory-post.
  • Homepage: The main entry page of the system.
  • Main-Map: A world map which stores indicators of memory-posts over related memory-locations.
  • Member: A person who has an account on the system.
    • Admin: A member who has the full control of the system.
  • Memory: Something that is remembered from the past.
  • Memory-Item: A material that is related to a memory.
    • Memory-Location: The location where a memory took place or to which a memory is related. It can consist of any combinations of points, regions, and paths. A memory can have multiple locations.
    • Memory-Media: A collection of images, videos and audios that are attached to a memory.
    • Memory-Story: A combination of plain texts and memory-medias which contain some information and/or experience about a memory.
    • Memory-Tag: An alphanumeric keyword that categorizes a memory-post.
    • Memory-Time: The time during which a memory took place or to which a memory is related. It can consist of any combinations of points and intervals (day, month, year, decade, etc.).
    • Memory-Title: A plain text which contains a brief description about a memory.
  • Memory-Map: A map which stores indicators for the memory-locations in a memory-post.
  • Memory-Post: A post that contains the memory-items of some memories, a memory-map and a comment section. Only required part are the memory-title and memory-story.
  • Password: A secret word of at least 8 characters a member has to provide for signing in.
  • Profile: A member specific page which contains account information of a member as well as the memory-posts the member has created or liked.
  • Recommendation: Displaying some memory-posts, to a user on homepage, based on the memory-tags that are same as or similar (e.g. robot -> technology) to the ones the user has created.
  • Signing Up: Creating a unique account on the system for sign-in.
  • Search Bar: A text input which allows users to search for memory-posts or accounts in the system.
  • System: The application on which people can create, view, search, comment, like, dislike and annotate memory-posts.
  • Username: A sequence of at most 150 characters that uniquely identifies an account of the system.
  • Visitor: A human being or a computer bot/program that visits the system (is online on the system).
    • Guest: A visitor who is not signed-in to the system.
    • User: A visitor who is signed-in to the system.

1. Functional Requirements

1.1 User Requirements

  • 1.1.1 Sign-Out

    • 1.1.1.1 Users shall be able to sign out from the system.
  • 1.1.2 Profile

    • 1.1.2.1 Users shall be able to view the followings on the profile of other members.
      • Real name
      • Username
      • Profile picture
      • Created memory-posts
    • 1.1.2.2 Users shall be able to view the followings on their own profile:
      • All account information except password
      • Created memory-posts
      • Liked memory-posts
    • 1.1.2.3 Users shall be able to update the followings on their profile.
      • Username
      • Real name
      • Profile picture
      • Email address
      • Password
    • 1.1.2.4 Users shall be able to delete their account on their profile.
  • 1.1.3 Memory-Post

    • 1.1.3.1 Users shall be able to view any memory-posts.
    • 1.1.3.2 Users shall be able to create memory-posts.
    • 1.1.3.3 Users shall be able to update all the memory-items of their memory-posts.
    • 1.1.3.4 Users shall be able to delete their memory-posts.
    • 1.1.3.5 Users shall be able to like or dislike any memory-posts.
  • 1.1.4 Comment

    • 1.1.4.1 Users shall be able to add comments to the comment section of any memory-posts.
    • 1.1.4.2 Users shall be able to delete their comments.
  • 1.1.5 Annotation

    • 1.1.5.1 Users shall be able to view any annotations.
    • 1.1.5.2 Users shall be able to create annotations for the rectangular parts of the following items: (For text, "rectangular part" means the selection of some consecutive words)
      • Memory-Story
      • Memory-Media (images only)
    • 1.1.5.3 Users shall be able to update their annotations.
    • 1.1.5.4 Users shall be able to delete their annotations.
  • 1.1.6 Search

    • 1.1.6.1 Users shall be able to search for any combinations of the following items of memory-posts via search bar:
      • Memory-Title
      • Memory-Story
      • Memory-Time
      • Memory-Location
      • Memory-Tag
    • 1.1.6.2 Users shall be able to search for annotations via search bar.
    • 1.1.6.3 Users shall be able to search for memory-posts on main-map.
    • 1.1.6.4 Users shall be able to search for any combinations of the following items of accounts via search bar:
      • Username
      • Real name

1.2 Admin Requirements

  • 1.2.1 Admins shall have all the abilities users have.
  • 1.2.2 Admins shall be able to ban any accounts in the system.
  • 1.2.3 Admins shall be able to delete any of the followings from the system:
    • Accounts
    • Memory-Posts
    • Annotations
    • Comments

1.3 Guest Requirements

  • 1.3.1 Sign-In

    • 1.3.1.1 Guests shall be able to sign in (if they have an account) with one of the following combinations:
      • Username and password.
      • Email address and password.
  • 1.3.2 Sign-Up

    • 1.3.2.1 Guests shall be able to sign up to the system by providing username, email, password (with confirmation) and real name (optional).
  • 1.3.3 Memory-Post

    • 1.3.3.1 Guests shall be able to view only 10 most recently created memory-posts.
    • 1.3.3.2 Guests shall be able to view all parts of a memory-post.

1.4 System Requirements

  • 1.4.1 Sign-Up

    • 1.4.1.1 The system shall require email confirmation on signup.
  • 1.4.2 Password

    • 1.4.2.1 The system shall provide users with a password recovery mechanism.
  • 1.4.3 Recommendation

    • 1.4.3.1 The system shall recommend memory-posts to users.

2. Non-functional Requirements

2.1 Accessibility

  • 2.1.1 The language of the system shall be English.

2.2 Availability

  • 2.2.1 The system shall have a web application.
    • 2.2.1.1 3 most recent main versions of Google Chrome shall be supported.
  • 2.2.2 The system shall have an Android application.
    • 2.2.2.1 3 most recent main versions of Android shall be supported.

2.3 Security

  • 2.3.1 Passwords shall be kept encrypted in the database.
  • 2.3.2 Members' email addresses should be hidden to other members.

2.4 Annotation

  • 2.4.1 The annotations shall be compliant with The W3C Web Annotation Data Model.

2.5 Map

  • 2.5.1 Google Maps services shall be used for main-map and memory-maps.