Requirements - bounswe/bounswe2016group12 GitHub Wiki

Summary

The system is a web and android crowdsourcing application to collect information about inter-related subjects from users all across the world. Users will be able to introduce topics, typed relationships between topics, and supporting resources and conversations surrounding these subjects. Users will effectively be able to weave meaningful (processable) relationships between tweets, news, blogs, and additional user posts in this application. Subjects will be driven by the interests of users.

Glossary

  • Android device: Device that runs Android OS.
  • Android OS: Android (Operating System)
  • Comment: Ideally, an opinion or information written under a topic, possibly enriched with links to audio or video related to the topic. Practically, any text written under a topic, possibly along with links to audio or video.
  • Content: Used as a synonym to comment.
  • Contribution: A topic, a comment, a relationship between topics or a tag for a topic that is introduced by a member.
  • Crowd: A large number of items gathered too close, leaving no space for the content to breathe. An issue to be handled.
    • Topic-crowd: Happens when a large number of topics are related to the topic-in-focus.
    • Relation-crowd: Happens when there are too many different relations in between two topics.
  • Graphical User Interface: An interface provided to users which enables interaction with the system.
  • GUI: Acronym for "Graphical User Interface".
  • Internet browser: A software that retrieves and presents a website, allowing its user to navigate through hyperlinks across the World Wide Web.
  • Log in: Act of providing member credentials to get authenticated as a member.
  • Member: A user that is registered to the system.
  • MTBF: Acronym for "Mean Time Between Failure".
  • Owner: The member that introduced the contribution.
  • Post: The comment which has been submitted.
  • Post schema: Collection of one or more comments, answers and related posts in a special GUI about a specific post.
  • Relevant: Closely related in semantics.
  • Relevancy: An abstract measure for being relevant.
  • Requirements: Testable and verifiable assets of a software, which are necessary for the software to be minimally complete.
  • Sign up: Act of providing and submitting the requested information for getting registered as a member.
  • System: A complex with multiple interacting parts, e.g. a software product with multiple components.
  • Tag: Refer to the semantic tag.
    • Plain tag: A generic label for a topic.
    • Semantic tag is a tag with its semantic context attached to it, allowing it to be disambiguated from the other semantic tags that share the same label.
  • TBD: Acronym for "To Be Discussed" or "To Be Determined".
  • Topic: A title for a semantic entity.
  • User: A person or a piece of code (i.e. web crawlers) that interacts this system.
  • Vote: Expressing a positive/negative feedback about a contribution.
    • Upvote: A positive vote.
    • Downvote: A negative vote.
  • Web server: A computer which accepts HTTP/HTTPS requests and replies to them with HTML documents, etc.

Requirements

1. Functional Requirements

1.1. Sign-Up/Login Requirements

  • 1.1.1. A user shall be able to sign up to the system with a valid email and a password they choose.
  • 1.1.2. Members shall be able to log in to the system by providing their emails and their passwords.
  • 1.1.3. In the case of forgetting their passwords, members should be able to recover their accounts by changing their passwords via their emails.
  • 1.1.4. A member shall be able to log off to protect account.

1.2. User Requirements

  • 1.2.1. Guest User Requirements
    • 1.2.1.1. A guest user shall be able to read topics and comments.
  • 1.2.2. Member Requirements
    • 1.2.2.1. A member shall have a profile.
      • 1.2.2.1.1. A member shall be able to add information about him/herself into the his/her user profile.
      • 1.2.2.1.2. A member should be able to have profile photo with a size limit.
      • 1.2.2.1.3. A member shall be able to edit information on his/her user profile page.
      • 1.2.2.1.4. A member should be able to entitle himself/herself with one of their professions/degrees they have.
    • 1.2.2.2. A member shall be able to delete his/her account.
    • 1.2.2.3. A member shall be able to follow other members.
    • 1.2.2.4. A member shall be able to follow tags.
    • 1.2.2.5. A member shall be able to follow topics.

1.3. Search Requirements

  • 1.3.1. The system shall allow the user to search content.
  • 1.3.2. User shall be able to search among topics or tags.
  • 1.3.3. Search results shall prioritize semantically relevant results.
  • 1.3.4. Search results shall be sorted according to relevancy.

1.4. Rating System Requirements

  • 1.4.1. The system shall allow members to up/down vote a comment.
  • 1.4.2. The system should allow members to up/down vote a relation.

1.5. Viewing Requirements

  • 1.5.1. A user shall be able to view topics.
    • 1.5.1.1. The topics shall be represented as the nodes of a graph, possibly related to each other with edges.
    • 1.5.1.2. A user shall be able to identify which topics are trending.
    • 1.5.1.3. A user shall be able to view the topics related to the topics and the relations in between.
      • 1.5.1.3.1. There shall be a limit to the amount of related topics shown, rest being hidden.
      • 1.5.1.3.2. Hidden related topics shall reside on a dummy node on the graph.
        • 1.5.1.3.2.1. Dummy topic shall have an appropriate name making its purpose clear.
        • 1.5.1.3.2.2. Dummy topic shall reveal the topics it contains in a list, when activated.
      • 1.5.1.4. A user shall be able to change the sorting criteria of the topics in view.
      • 1.5.1.5. The priority of a topic according to the sorting criteria should be made clear to the user.
  • 1.5.2. A user shall be able to view comments under topics.
    • 1.5.2.1. A user shall be able to view the previous versions of any comment which has been edited.
    • 1.5.2.3. A user shall be able to view the amount of up/down votes for a comment.
    • 1.6.2.4. A user shall be able to change the sorting criteria of the comments.
  • 1.6.3. A member shall have a feed to view.
    • 1.6.3.1. A member shall see trending posts in feed.
    • 1.6.3.2. A member shall be able to navigate to a specific topic on his/her feed.
    • 1.6.3.3. A member shall see the recent contributions of the members he/she followed in his feed.
    • 1.6.3.4. A member shall see the recent topics that bear the tags he/she followed in his feed.

1.7. Notification Requirements

  • 1.7.1. A member should be able to get notifications on phone for updates on his/her feed.
  • 1.7.2. A member should be able to receive periodical digest on mail about the topic of interest.
  • 1.7.3. A member should be able to follow a topic and get push notifications for it.
  • 1.7.4. A member should be able to automatically follow the topic he/she introduced.
  • 1.7.5. A member should be able to automatically follow the topic he/she commented in.
  • 1.7.6. A member should be able to turn on and off any particular notification mentioned above.

1.8. System Requirements

  • 1.8.1. The system shall provide members the ability to edit their comments.
  • 1.8.2. The system shall provide members the ability to offer changes on topics' titles.
    • 1.8.2.1. The system shall provide members the ability to vote for the offered changes on topics' titles.
    • 1.8.2.2. The system shall replace the title of a topic with an offered one, under circumstances TBD.
  • 1.8.3. The system shall provide a URL for every topic and comment.
  • 1.8.4. The system shall recommend a member topics that are relevant to the member's activity (i.e. contributions and content viewed).

1.9. Post Requirements

  • 1.9.1. The system shall allow a member to create a topic.
  • 1.9.2. The system shall allow a member to make a comment under a topic with a content.
  • 1.9.3. The system shall allow a member to add a tag for a topic.
    • 1.9.3.1. The system shall offer the member the available semantic context for the plain tag the user types down.
    • 1.9.3.2. The system shall require the member to select one from the semantic context offers.
    • 1.9.3.3. The specified semantic tag shall be added to the topic.
  • 1.9.4. The system shall allow a member to relate a topic with another topic.
    • 1.9.4.1. The system shall require the member to specify whether the relation is symmetric or not.
    • 1.9.4.2. The system shall require the member to specify a name for the relation.
    • 1.9.4.3. The system shall allow the member to introduce multiple relationships between the same pair of topics.

2. Non-Functional Requirements

2.1. Supportability and Maintainability

  • 2.2.1. Developers shall fix quickly whenever a bug/issue emerges.
  • 2.2.2. The system shall be available for web and android.
    • 2.2.2.1. The system shall be fully compatible with Google Chrome browser at launch.

2.2. Usability

  • 2.3.1. The system shall have a friendly user interface.
  • 2.3.2. The interface shall be simple so that user can search a topic or post a comment easily.