Requirements - bounswe/bounswe2017group3 GitHub Wiki

Glossary

Community: A number of people who share some goals, yet they have individual interests, talents, characteristics.

System: The whole of web and android platform on which the community interacts.

Guest: A person who is not a member of the community but a visitor.

User: A person who has an account on the community.

Admin: A person who is responsible for the sustainability of the system.

Moderator: A person who is responsible for the moderation of a group.

Group: A number of people who shares the same interest.

Group member: A person who is a member of a group.

Event: Something that occurs in a certain place and in a specific time interval.

Username: A unique sequence of characters used to identify a user and allow access to the system.

Password: A secret sequence of characters used by users to prove their right to enter the system.

Database: An organized collection of data.

Interface: The visual part of the system.

Profile: A number of specific information about a user.

Tag: A descriptive word or phrase applied to an item.

Item: An article, an image or basically anything a user shares on the platform.

Annotation: Explanatory content attached to an item.

Creator: A person who creates an item or a group.

Requirements

1. Functional Requirements

1.1 User Requirements

1.1.1 General User Requirements

  • 1.1.1.1 Sign up
    • 1.1.1.1.1 Users shall sign up by providing a unique username, email address and password to the system.
      • 1.1.1.1.1.1 Users shall verify their e-mail by following the steps in the confirmation e-mail sent by the system.
      • 1.1.1.1.1.2 Password shall be at least 8 characters.
  • 1.1.1.2 Login
    • 1.1.2.1.1 Users shall enter their username and password to login to the system.
  • 1.1.1.3 Profile
    • 1.1.1.3.1 Users shall have a profile that includes their information, interests etc.
    • 1.1.1.3.2 Users should be able to edit their profiles.
    • 1.1.1.3.3 Users should describe what information is visible to others.
  • 1.1.1.4 Contribution
    • 1.1.1.4.1 Users should be able to create items such as videos, pictures, events, documents etc.
      • 1.1.1.4.1.1 Creators of items should be able to set privacy options.
    • 1.1.1.4.2 Users should be able to create interest-specific groups.
      • 1.1.1.4.2.1 Creators of groups should be able to set privacy options.
    • 1.1.1.4.3 Users should be able to subscribe items.
    • 1.1.1.4.4 Users should be able to comment about items.
    • 1.1.1.4.5 Users should be able to join interest-specific groups.
    • 1.1.1.4.6 Users should be able to follow other users with their permission.
  • 1.1.1.5 Tagging
    • 1.1.1.5.1 Users shall be able to tag their items.
      • 1.1.1.5.1.1 Users shall be able to use an already existing tag or can create a new tag.
      • 1.1.1.5.1.2 Users shall be able to add a tag to an existing item if it is permitted.
  • 1.1.1.6 Ill Behavior
    • 1.1.6.1 Users shall be able to report ill-behaving users.
  • 1.1.1.7 Search
    • 1.1.1.7.1 Users shall be able to make a basic search.
    • 1.1.1.7.2 Users shall be able to make an advanced search.
      • 1.1.1.7.2.1 Users shall be able to make a search by group, tag, user, event, keyword and time interval.

1.1.2 Guest Requirements

  • 1.1.2.1 Guests users shall be able to view public items and groups.
  • 1.1.2.2 Guests users shall be able to search public items and groups.

1.1.3 Moderator Requirements

  • 1.1.3.1 Moderators shall be able to warn ill-behaving users in their group.
  • 1.1.3.2 Moderators shall be able to remove (ban) ill-behaving users from their group - if the ill behavior persists.
  • 1.1.3.3 Creator of a group shall be the moderator of that group.
  • 1.1.3.4 Moderators shall be able to add other moderators to their group.
  • 1.1.3.5 Moderators shall be able to add tags to their group.
  • 1.1.3.6 Moderators shall be able to add users to their group.

1.2 System Requirements

  • 1.2.1 User Interface

    • 1.2.1.1 The system should use some icons to demonstrate the privacy options for members who create interest-specific groups and content.
    • 1.2.1.2 The system should use random colors for tags to express the contents.
    • 1.2.1.3 The system shall have a diagram that shows the most popular topics in the interest-specific groups.
  • 1.2.2 Search

    • 1.2.2.1 Users should be able to search tags, other users, groups, and events.
  • 1.2.3 Content

    • 1.2.3.1 Users shall be able to freely create an item.
    • 1.2.3.2 Users shall be able to mark the item as disturbing and inappropriate, and if it is, admins shall be able to delete the inappropriate content.
  • 1.2.4 Recommendation

    • 1.2.4.1 The system should give recommendations about related content and persons of interest to the user.
      • 1.2.4.1.1 These recommendations should be based on the tags.
    • 1.2.4.2 The system shall retain the history so that previously active users can be located and their information can be used to recommend content to the currently active users.
  • 1.2.5 Tag Mapping Requirements

    • 1.2.5.1 The system shall be able to allow the user to add semantic tags for community items.
    • 1.2.5.2 The system shall be able to make searches and recommendations by finding semantically-related tags.
    • 1.2.5.3 The system should be able to display the most popular tags of the day, of the week, and of the year.
    • 1.2.5.4 The system should be able to show the community items with similar tags in a special page when a tag clicking occurs. When the user clicks the tag of a group, the system shall list all groups which have similar tags. When the user clicks the tag of content, the system shall list all contents which have similar tags.
    • 1.2.5.5 The system shall be able to store the tag history of the user which contains both tags added by the user and tags followed by the user to make recommendations to the user.
    • 1.2.5.6 The system shall be able to store the tags of the community items.

2. Non-functional Requirements

2.1 Security and Reliability

  • 2.1.2 The system shall encrypt any sensitive data before storing.
  • 2.1.3 The system should backup all data on the first day of every month, and store the backups in a different place.
  • 2.1.4 The system shall block an excessive amount of access requests made in a short amount of time.

2.2 Performance

  • 2.2.1 The system should be able to handle at most 1000 active users at any time without crashing.

2.3 Availability

  • 2.3.1 The system shall be provided and be accessible in web and android platforms.
  • 2.3.2 The system should be available and work properly in all web browsers.
  • 2.3.3 The system should be accessible at all times except the maintenance periods.
  • 2.3.4 If the system crashes down, it should be reachable back again in 48 hours.
  • 2.3.5 The system language should be English.

2.4 Database

  • 2.4.1 The system shall store all the data in a database.
  • 2.4.2 The database system shall have administrators.
  • 2.4.3 Database tables should be consistent and simple.

2.5 Annotations

  • 2.5.1 The W3C Web Annotation Data Model shall be used to annotate items.
  • 2.5.2 The annotations should be stored and retrieved in accordance with the Web Annotation Protocol.
  • 2.5.3 The annotations should be tested to assure validity.
  • 2.5.4 A web browser plugin - specifically, a Firefox plugin - that enables users to create and visualize annotations for items should be provided.