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
prototype
Main scenario- User opens the chat
- The chat is empty
- The bot greets the user
- The bot asks how it can help the user
- The bot also sends a help command
prototype
Alternative scenario(s)- The bot greets the user by name if the user is authenticated
Functional requirements covered:
- The bot should greet the user in the beginning of the conversation.
- User should be able to ask instructions how to use this chatbot with a specified keyword from the bot.
Related issues:
UC-2 Asking a simple question
Preconditions
User is not in the chat
Primary actor
User
prototype
Main scenario- User opens the chat
- User asks the bot a simple question "Mitu eap on kursusel tarkvaraprojekt?"
- The bot answers "Tarkvaraprojekti maht on 6 eap."
prototype
Alternative scenario - authenticated- User opens the chat
- User asks the bot a simple question about personal data "Mis mu matrikli number on?"
- The bot answers "m345235"
Functional requirements covered:
- User should be able communicate with the bot in natural Estonian language.
- User should be able to ask the bot about general information like:
- courses in UT
- 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
Prototype
Main scenario- User opens the chat
- User asks the bot a question that requires authentication
- The bot says that it can't answer the question unless user logs in
- User authenticates
- User asks the question again
- 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:
- User should be able to authenticate with their UT username and password.
- 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
- User should be able to ask the bot about Lecturers' office hours
- 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
Prototype
Main scenario- User opens the chat
- User asks a question like "Mitu eapd saab tarkvaraprojekti läbimisel??"
- 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:
- 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
Prototype
Main scenario- User opens the chat
- User asks a unspecific question like "tarkvaraprojekt"
- 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!"
- User answers "eap"
- The bot answers "Tarkvaraprojekti maht on 6 eap."
Alternative scenario(s)
- The questions may vary
Functional requirements covered:
- The bot should ask the User for specifying questions if required.
edit: Changed the question but the idea is the same