Use cases - Terminaator/chatbot GitHub Wiki

UC-1 First time opening the chat

Preconditions

User is not in chat with the bot and never has been

Primary actor

User

Main scenario prototype

  1. User opens the chat
  2. The chat is empty
  3. The bot greets the user
  4. The bot asks how it can help the user
  5. The bot also sends a help command

Alternative scenario(s) prototype

  • The bot greets the user by name if the user is authenticated

Functional requirements covered:

  1. The bot should greet the user in the beginning of the conversation.
  2. User should be able to ask instructions how to use this chatbot with a specified keyword from the bot.

Related issues:

#10 #11 #12 #20 #21 #24

UC-2 Asking a simple question

Preconditions

User is not in the chat

Primary actor

User

Main scenario prototype

  1. User opens the chat
  2. User asks the bot a simple question "Mitu eap on kursusel tarkvaraprojekt?"
  3. The bot answers "Tarkvaraprojekti maht on 6 eap."

Alternative scenario - authenticated prototype

  1. User opens the chat
  2. User asks the bot a simple question about personal data "Mis mu matrikli number on?"
  3. The bot answers "m345235"

Functional requirements covered:

  1. User should be able communicate with the bot in natural Estonian language.
  2. User should be able to ask the bot about general information like:
  • courses in UT
  1. User should be able to ask the bot about his/hers:...

Related issues:

#10 #11 #12 #16 #21 #25 #26 #27 #28

UC-3 Asking an unauthorized question

Preconditions

User is not in the chat and isn't authenticated

Primary actor

User

Main scenario Prototype

  1. User opens the chat
  2. User asks the bot a question that requires authentication
  3. The bot says that it can't answer the question unless user logs in
  4. User authenticates
  5. User asks the question again
  6. The bot answers

Alternative scenario(s)

  • Some information could still be out of reach. So the bot would still say that the user doesn't have access to it.

Functional requirements covered:

  1. User should be able to authenticate with their UT username and password.
  2. User should be able to ask the bot about his/hers:
  • general data (number of study book, Id code, etc)
  • notifications (show number of new messages)
  • course schedule
  1. User should be able to ask the bot about Lecturers' office hours
  2. User should be able to ask the bot about people in UT

Related issues:

#10 #11 #12 #16 #21 #22 #25 #26 #27

UC-4 Asking a question where keywords are in any form

Preconditions

User is not in the chat

Primary actor

User

Main scenario Prototype

  1. User opens the chat
  2. User asks a question like "Mitu eapd saab tarkvaraprojekti läbimisel??"
  3. The bot answers: "Tarkvaraprojekti maht on 6 eap."

Alternative scenario(s)

  • The question may wary
  • The user may only say "tarkvaraprojekti" in which case the bot asks to specify what the user wants

Functional requirements covered:

  1. The bot should ask the User for specifying questions if required.

Related issues:

#10 #11 #12 #16 #21 #23 #25 #26 #27 edit: Trying to find typos in course/structure units' names would be way too costly computationally. It would have made requests take really long and propably introduce a ton of bugs.

UC-5 Asking a question with not enough information

Preconditions

User is not in the chat

Primary actor

User

Main scenario Prototype

  1. User opens the chat
  2. User asks a unspecific question like "tarkvaraprojekt"
  3. The bot asks specifying question "Mulle tundub, et sa tahtsid küsida infot kursuse kohta. Kursuse kohta saad küsida eelduaineid, eapde arvu ja ainekoodi. Palun täpsusta!"
  4. User answers "eap"
  5. The bot answers "Tarkvaraprojekti maht on 6 eap."

Alternative scenario(s)

  • The questions may vary

Functional requirements covered:

  1. The bot should ask the User for specifying questions if required.

edit: Changed the question but the idea is the same

Related issues:

#10 #11 #12 #16 #21 #25 #26 #27 #29