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.- User opens Discord.
- The user selects the "Create an account" option.
- Discord prompts the user for account details.
- User provides the required details such as email, display name, username, password, and date of birth.
- Discord stores the provided account details in its database.
- Database confirms successful account creation.
- Discord confirms to the user that the account is created, and the user is logged in.
- The user invites the bot to their server.
- The bot sends an introductory message upon joining the server
- The user sends a command to the bot to set language preferences.
- The bot requests the user’s preferred language for interaction.
- The user responds with their language of choice.
- Bot updates the user’s language preference in the database.
- The database confirms the preference has been updated.
- 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.- The user opens the Discord app.
- The user sends a command to initiate a vocabulary test.
- The bot retrieves vocabulary quizzes from the database in the user’s selected language.
- The user takes the vocabulary quiz generated by the bot.
- The bot evaluates the user's answers, checking syntax and spelling.
- The bot updates the database with the user's quiz results.
- The bot sends a message to the user, presenting the quiz results.
- 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.- The user opens the Discord app.
- The user sends a command, e.g., "!startPronunciationTest" to initiate the pronunciation test.
- The bot retrieves the user’s preferred language and related exercise from the database.
- The user sends an audio message with the given text or sentence's pronunciation.
- As the user speaks, the bot listens and transcribes the user’s audio.
- The bot updates the database with the transcription and performance metrics.
- The bot provides feedback on pronunciation accuracy and areas for improvement.
- 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.- The user opens the Discord App.
- The user sends the “!myScores” command to the bot.
- The bot fetches the user’s scores from the database.
- The bot presents the user with their scores for vocabulary quizzes, pronunciation tests, and overprogress on Discord.
As a user, I want to view the top performers for each language to gauge my progress against peers.- The user opens the Discord App.
- The user sends the “!leaderboard” command to the bot.
- The bot retrieves the top aggregate scores for the currently selected language from the database.
- 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.- The user opens the Discord App.
- The user sends the “!changeLanguage” command to the bot.
- The bot displays a list of available languages to the user on Discord.
- The user selects a new language from the list.
- The bot updates the user’s preferred language in the database.
- The bot confirms the change to the user on Discord.