Project Requirements - bounswe/bounswe2017group7 GitHub Wiki

1. Functional Requirements

 1.1. System Requirements
  1.1.1. It shall use Telegram Chatbot API to communicate with users via Telegram.
  1.1.2. It shall use Google Books API and/or Goodreads API to gather information about books.
  1.1.3. It shall have different types of users.
   1.1.3.1. There shall be a generic user type, which is the type that allows users to chat with the bot through Telegram.
   1.1.3.2. There shall be an admin type, which is the type that allows admins to manage the conversation graphs, edit templates and nodes and modify everything in the system.
   1.1.3.3. There shall be a moderator type, which is the type that allows mods to see and flag comments, see and block users.
  1.1.4. It shall be able to understand the requests from the natural language. This will be done by using an nlp tool.
   1.1.4.1 It should provide the user with button options to choose from.
   1.1.4.2 It should provide the user with photos of books.
   1.1.4.3 It should provide the user with hyper links of the books.
  1.1.5. It shall hold a database for feedbacks, user information and conversation graph data.
  1.1.6. It shall have a conversation graph to have a general track of the conversation.
 1.2. User Requirements
  1.2.1 There will be Telegram users, referred as 'users'.
   1.2.1.1. User shall be able to get information about books.
    1.2.1.1.1. User shall be able to find books.
     1.2.1.1.1.1. User shall be able to filter books by a given specification.
      1.2.1.1.1.1.1. User should be able to search books by given name.
      1.2.1.1.1.1.2. User should be able to search books by specified genre.
      1.2.1.1.1.1.3. User should be able to search books by specified author.
     1.2.1.1.1.2. Found books shall be sorted by;
      1.2.1.1.4.1. Popularity
      1.2.1.1.4.2. Alphabetically
    1.2.1.1.2. User shall be able to get feedback about a book.
     1.2.1.1.2.1. User shall be able to see the comments on a book.
     1.2.1.1.2.2. User shall be able to see the ratings on a book.
   1.2.1.2. User shall be able to give information about books.
    1.2.1.2.1. User shall be able to rate a book.
    1.2.1.2.2. User shall be able to comment on a book.
   1.2.1.3 User shall be able to get book recommendations.
  1.2.2. There will be admin users, referred as 'admins'.
   1.2.2.1. Admins should be able to login to the system.
    1.2.2.1.1. If the admin already has an account, s/he shall fill the username and password section to login.
   1.2.2.2. Admins shall be able to check their account settings.
    1.2.2.2.1. Admins shall be able to change their password.
    1.2.2.2.3. Admins shall be able to change their name and surname.
   1.2.2.3. Admins shall be able to edit the conversation graph.
    1.2.2.3.1. Admins shall be able to manage nodes.
     1.2.2.3.1.1. Admins shall be able to add new nodes.
     1.2.2.3.1.2. Admins shall be able to remove nodes.
     1.2.2.3.1.3. Admins shall be able to edit nodes.
     1.2.2.3.1.4. Admins shall be able to search for specific nodes.
      1.2.2.3.1.3.1. Admins shall be able to train the nlp for a specific node.
       1.2.2.3.1.3.1.1. Admins shall be able to add new templates for a node.
       1.2.2.3.1.3.1.2. Admins shall be able to remove templates from a node.
      1.2.2.3.1.3.2. Admins shall be able to manage the reply of a node.
       1.2.2.3.1.3.2.1 Admins shall be able to edit the reply sentence.
       1.2.2.3.1.3.2.2 Admins shall be able to edit the reply images.
       1.2.2.3.1.3.2.3 Admins shall be able to edit the reply buttons.
       1.2.2.3.1.3.2.4 Admins shall be able to edit the reply hyperlinks.
      1.2.2.3.1.3.3. Admins shall be able to change the parent of a node.
      1.2.2.3.1.3.4. Admins shall be able to manage the children of a node.
       1.2.2.3.1.3.4.1. Admins shall be able to add new children to a node.
       1.2.2.3.1.3.4.2. Admins shall be able to remove children from a node.
   1.2.2.4. Admins shall be able to see/allow/block users or comments.
    1.2.2.4.1. Admins shall be able to see all the comments made by Telegram Users.
    1.2.2.4.2. Admins shall be able to flag comments.
    1.2.2.4.3. Admins shall be able to see all the Telegram Users.
    1.2.2.4.4. Admins shall be able to block users.
  1.2.3. There will be moderator users, referred as 'mods'.
   1.2.3.1. Mods should be able to login to the system.
    1.2.3.1.1. If the mod already has an account, s/he shall fill the username and password section to login.
   1.2.3.2. Mods shall be able to check their account settings.
    1.2.3.2.1. Mods shall be able to change their password.
    1.2.3.2.2. Mods shall be able to change their name and surname.
   1.2.3.3. Mods shall be able to see/allow/block users or comments.
    1.2.3.3.1. Mods shall be able to see all the comments made by Telegram Users.
    1.2.3.3.2. Mods shall be able to flag comments.
    1.2.3.3.3. Mods shall be able to see all the Telegram Users.
    1.2.3.3.4. Mods shall be able to block users.

2. Non Functional Requirements

 2.1. Speed
  2.1.2. Response time shall be fast enough for an average dialog, that is, no more than 5 seconds.
 2.2. Size
  2.2.1. Bot shall use Telegram interface, therefore it doesn't require any additional installation space.
  2.2.2. Admin panel shall be a website, therefore it doesn't require any additional installation place.
 2.3. Usage
  2.3.1. Bot shall be easy to use, there shall be no training time.
  2.3.2. Bot shall understand natural language.
 2.4. Requirements
  2.4.1. Bot needs internet connection to work.
  2.4.2. User needs the Telegram app and a Telegram account to chat with the Bot.
 2.5. Failures
  2.5.1. If Bot fails to understand a sentence, it shall offer possible answers as a recovery strategy.
  2.5.2. If Admin Panel website crushes, it shall be recovered within a couple of hours.
  2.5.3. If database fails, it shall be recovered with a back-up version.
 2.6. Target devices
  2.6.1. Bot shall work on any mobile device that has the Telegram app.
  2.6.2. Bot shall work on any device that can connect to Telegram web app via any browser.
  2.6.3. Admin panel shall work on any device that has a browser.
 2.7. User Satisfaction
  2.7.1. Bot shall keep track of its book recommendations.
  2.7.2. Bot shall check the previous book recommendations for any ratings from the user.
  2.7.3. Bot shall get the satisfaction ratio using the ratings for previously recommended books.


Glossary

  • Admin User: Alse referred as admin, any user that has the privilige of modifying the system.
  • Action: How to answer requests of the users in terms of the system
  • Bot: Short for Book Bot / Chatbot.
  • Chatbot: Our Book Bot which understands and answers chat messages.
  • Comment: Telegram users's opinions about a certain book.
  • Conversation Graph: A preferred tree of the conversation. User may or may not follow the possible paths. The graph helps us with the performance, that is, we first search the templates that are more possible.
  • Label: Categorization of the books(?)
  • Log in (Sign in): Registered users login to the system via e-mail or username and password.
  • Node: A group of sentences that have approximately the same meaning. Nodes make up the conversation graph.
  • Non-registered Admin: An admin user that doesn't have an admin account yet but has an invitation code to create an admin account.
  • Rate: Telegram user's ratings for a certain book, each rate is a number from 1 to 5.
  • Recommendation: suggesting books to the users according to the search parameters
  • Register (Sign up): Signing up with an email or username and password.
  • Reply: Used to describe the Bot's replies. A reply can have a sentence, images, buttons or hyperlinks.
  • System: The software that is being developed.
  • Telegram User: Also referred as user, any user that chats with the Bot through Telegram.
  • Template: Sentences that match the user sentences during chat.