Skip to main content

Use-Case Descriptions

Use Case 1: Account Creation and Bot Initialization

As a user, I want to set up a language-learning discord bot to personalize my language-learning experience.
  1. User opens Discord.
  2. The user selects the "Create an account" option.
  3. Discord prompts the user for account details.
  4. User provides the required details such as email, display name, username, password, and date of birth.
  5. Discord stores the provided account details in its database.
  6. Database confirms successful account creation.
  7. Discord confirms to the user that the account is created, and the user is logged in.
  8. The user invites the bot to their server.
  9. The bot sends an introductory message upon joining the server
  10. The user sends a command to the bot to set language preferences.
  11. The bot requests the user’s preferred language for interaction.
  12. The user responds with their language of choice.
  13. Bot updates the user’s language preference in the database.
  14. The database confirms the preference has been updated.
  15. Bot sends a confirmation message in the user's selected language.

Use Case 2: Vocabulary Knowledge Test

As a user, I want to test my vocabulary knowledge for my selected language.
  1. The user opens the Discord app.
  2. The user sends a command to initiate a vocabulary test.
  3. The bot retrieves vocabulary quizzes from the database in the user’s selected language.
  4. The user takes the vocabulary quiz generated by the bot.
  5. The bot evaluates the user's answers, checking syntax and spelling.
  6. The bot updates the database with the user's quiz results.
  7. The bot sends a message to the user, presenting the quiz results.
  8. The user reviews the result, understanding their strengths and areas of improvement.

Use Case 3: Pronunciation Testing

As a user, I want to test my pronunciation skills in my chosen language.
  1. The user opens the Discord app.
  2. The user sends a command, e.g., "!startPronunciationTest" to initiate the pronunciation test.
  3. The bot retrieves the user’s preferred language and related exercise from the database.
  4. The user sends an audio message with the given text or sentence's pronunciation.
  5. As the user speaks, the bot listens and transcribes the user’s audio.
  6. The bot updates the database with the transcription and performance metrics.
  7. The bot provides feedback on pronunciation accuracy and areas for improvement.
  8. The user reviews the feedback to understand their pronunciation accuracy and areas of improvement.

Use Case 4: Tracking Progress

As a user, I want to track my progress.
  1. The user opens the Discord App.
  2. The user sends the “!myScores” command to the bot.
  3. The bot fetches the user’s scores from the database.
  4. The bot presents the user with their scores for vocabulary quizzes, pronunciation tests, and overprogress on Discord.

Use Case 5: Viewing Top Performers for Each Language

As a user, I want to view the top performers for each language to gauge my progress against peers.
  1. The user opens the Discord App.
  2. The user sends the “!leaderboard” command to the bot.
  3. The bot retrieves the top aggregate scores for the currently selected language from the database.
  4. The bot displays the leaderboard to the user on Discord.

Use Case 6: Changing Current Learning Language

As a user, I want to change my current learning language to explore other languages.
  1. The user opens the Discord App.
  2. The user sends the “!changeLanguage” command to the bot.
  3. The bot displays a list of available languages to the user on Discord.
  4. The user selects a new language from the list.
  5. The bot updates the user’s preferred language in the database.
  6. The bot confirms the change to the user on Discord.