icon picker
User Stories & Acceptance Criteria


Features, Use Cases, User Stories, Acceptance Criteria
Feature
Use Cases
User Stories
Acceptance Criteria
2
SCENARIO: Logged out user tries to log in with valid credentials
GIVEN: I am a logged out user and am on the login page,
WHEN: I fill in the "Email" and "Password" fields with my valid authentication information and click the Login button,
THEN: the system logs me in
AND: I go to the "dashboard" page
SCENARIO: Logged out user logs in with invalid email or password
GIVEN: That I am a logged out system user and am on the login page,
WHEN: I fill in the "Email" field with an invalid email and/or password
THEN: the system notifies me with an error message that this email or password is invalid
AND: I stay on the Login Page
1
Count Unique
2
Count
2
SCENARIO: Logged out user forgot their password
GIVEN: That I am a registered user who provided a valid email address when creating my account
WHEN: I click on “forgot password”
THEN: I’m prompted with a form asking for my email address.
AND:
SCENARIO: Logged out user forgot their password, accessed the “forgot password”
GIVEN: That I am a registered user who provided a valid email address when creating my account, on the Forgot Password Page
WHEN: I enter a valid email address and click the confirm button
THEN: the system notifies me with that a temporary password has been sent to the email address I entered
AND: I get an email to the email address I entered with a link to reset my password
1
Count Unique
2
Count
5
SCENARIO: An unregistered visitor access the log-in page but doesn’t have an account
GIVEN: that I am an unregistered visitor on the "login” page
WHEN: I click on “sign-up” on the login page
THEN: I’m redirected to the “Sign-up” page
AND:
SCENARIO: An unregistered visitor wants to create a student account on the “student sign up” page
GIVEN: that I am an unregistered visitor on the "sign up” page
WHEN: I enter a valid email and 8 digit password then click on the button to create an account as a student
THEN: I access the dashboard page as a new student
AND: I get an email to the email address I used to create my account confirming the creation of my account
AND I get a tutor assigned automatically added to my contacts
SCENARIO: An unregistered visitor wants to create a tutor account on the “tutor sign up” page
GIVEN: that I am an unregistered visitor on the "sign up” page
WHEN: I enter a valid email and 8 digit password then click on the button to create an account as a tutor
THEN: I access the dashboard page as a new tutor
AND: I get an email to the email address I used to create my account confirming the creation of my account
AND I get a student assigned automatically added to my contacts
SCENARIO: An unregistered visitor wants to create an account on the “sign up” page
GIVEN: that I am an unregistered visitor on the "sign up” page
WHEN: I enter a non-valid email and / or invalid 8 digit password and / or the 2 passwords don’t match then click on the button to create an account
THEN: I get a message reading that my email / password is not valid
AND:
SCENARIO: Logged out user on the “sign up” page attempts to signup
GIVEN: that I enter an email address that is already associated with a user and valid password
WHEN: I click on “sign up as a tutor” OR “sign up as a student”
THEN: the system notifies me that my email address has already been taken
AND:
2
Count Unique
5
Count
4
SCENARIO: Student wants to see their tasks
GIVEN: That I’m a student and I have at least one task in my tasks
WHEN: I open my Tasks Management Page
THEN: I can see both my tasks “to do” and my tasks “done”
AND:
SCENARIO: Student wants to see which tasks have been assigned by the tutor
GIVEN: That I’m a student and I have at least one task in my tasks
WHEN: I look at a specific task
THEN: I can see if there is the profile picture of my tutor in the “assigned by” column, on the task
AND: If the task doesn’t have any profile pic associated, I know that the task have been created by myself, the student
SCENARIO: Tutor wants to see its own tasks
GIVEN: That I’m a tutor and have at least one task in my tasks
WHEN: I open my Tasks Management Page, on the “my tasks” tab
THEN: I can see both my tasks to do and my tasks done
AND:
SCENARIO: Tutor wants to see assigned tasks
GIVEN: That I’m a tutor and have assigned at least one task to my student
WHEN: I open my Tasks Management page, on the “assigned tasks” tab
THEN: I can see the tasks I have assigned to my student
AND: The student profile picture appears in the “assigned to” column of the assigned tasks
3
Count Unique
4
Count
2
SCENARIO: User wants to add a task
GIVEN: That I’m on the Task Management Page
That I clicked on “add a task”
WHEN: I add a task description and click “add task”
THEN: the new task is added to my tasks. The task is in a “todo” state
AND:
SCENARIO: User cancels task creation
GIVEN: That I've clicked on the “add a task button” and wrote the description of my task
WHEN: I press the “cancel” button
THEN: No task is added
AND: I go back to the view showing all my tasks
1
Count Unique
2
Count
3
SCENARIO: Tutor wants to add a task for themselves
GIVEN: That I’m on the Task Management Page, on the “my tasks” tab
That I clicked on “add a task”
WHEN: I add a task description and click “add task”
THEN: the new task is added to the “my tasks” tab. The task is in a “todo” state
AND:
SCENARIO: Tutor wants to add a task for a student, on the “assigned tasks” tab
GIVEN: That I’m a tutor on my task management page, on the “assigned tasks” tab
That I clicked on “add a task”
WHEN: I add a task description, assign the task to my student using the drop down menu and click “add task”
THEN: the new “todo” task is added to my “assigned tasks
AND: The task appears in the “my tasks” tab of my student’s app management page, with the tutor’s profile picture in the “assigned by” field
SCENARIO: Tutor on “my tasks” adds a task assigned to a student
GIVEN: That I've clicked on the “add a task button”, wrote the description of my task and assigned the task to my student
WHEN: I press the “add a task” button
THEN: The task is added to the “assigned tasks” tab
AND: The task appears in the “my tasks” tab of my student’s app management page, with the tutor’s profile picture in the “assigned by” field
1
Count Unique
3
Count
5
SCENARIO: User wants to toggle task as todo / done
GIVEN: That I’m a user on the Tasks Management Page
WHEN: I click on the checkbox of the task
THEN: if the task status was “done”, the task is marked as “todo” and the checkbox appears empty
If the task status was “todo”, the task is marked as “done” and the checkbox is marked with a check in it
AND: The “done” task is move to the row bottom of the last “todo” tasks
The “todo” task is moved to the top row of the “todo” tasks
SCENARIO: Tutor wants to edit a task and assign it to a student
GIVEN: That I’m a tutor and have at least one task in my tasks
WHEN: I edit the task and select a student to assign it to and press save
THEN: The task is added to the “assigned tasks” tab
AND: The task appears in the “my tasks” tab of the student’s app management page, with the tutor’s profile picture in the “assigned by” field
SCENARIO: User wants to change the description of a task
GIVEN: That I have at least one task on my task management page
WHEN: I press the edit button of a specific task and change the text in the description field and press save
THEN: the task is updated with the new description
AND:
SCENARIO: Tutor wants to edit an assigned task and un-assign it to a student
GIVEN: That I’m a tutor and have at least one assigned task in my tasks
WHEN: I edit the task and unselect the student I assigned the task to and press save
THEN: The task is moved from the “assigned tasks” tab to the “my tasks” tab of the tutor
AND: The task disappears in the “my tasks” tab of the student’s app management page.
SCENARIO: Tutor wants to edit the description of an assigned task
GIVEN: That I’m a tutor and have at least one assigned task in my “assigned tasks” tab
WHEN: I edit the task and change the description of the task and press save
THEN: The task’s description is changed both on the tutor and the student’s side
AND:
3
Count Unique
5
Count
2
SCENARIO: User wants to delete one of their tasks
GIVEN: That I’m a user and have at least one assigned task in my tasks
WHEN: I click on the delete button of a task
THEN: I can see an alert message that asks me to confirm or cancel.
I press confirm
AND: The task is deleted, I cannot see it on my tasks page anymore
SCENARIO: Tutor wants to delete one of the assigned tasks to a student
GIVEN: That I’m a tutor and have at least one assigned task in my “assigned tasks” tab
WHEN: I click on the delete button of an assigned task
THEN: I can see an alert message that asks me to confirm or cancel.
I press confirm
AND: The task is deleted, I cannot see it on my tasks page anymore.
The task disappears from the student’s tasks page
2
Count Unique
2
Count
3
SCENARIO: User wants to change its username or email information on the “edit profile” page
GIVEN: That I’m on the “edit profile” page.
That I can see a form with the following fields:
username
email
upload profile picture
WHEN: I update my email and/or username with valid text and click on “save”.
THEN: My modifications are saved to the database
I see a notification reading that my modifications have been successfully saved
AND:
SCENARIO: User wants to upload its profile picture on the “edit profile” page
GIVEN: That I’m on the “edit profile” page.
That I can see a form with the following fields:
username
email
upload profile picture
WHEN: I click on “upload profile picture”
THEN: A navigation window from my operating system appears to let me select a valid .png or .jpg picture
I select a valid file
AND: My profile picture is updated when I press “save”
SCENARIO: User wants to change its password on the “edit profile” page
GIVEN: That I’m on the “edit profile” page.
That I can see a form with the following fields:
your current password
your new password
repeat password
WHEN: I enter my current password,
I enter the same valid 8 characters password in:
your new password
repeat password

and press “save”
THEN: My password is updated with the new password I have entered
AND:
1
Count Unique
3
Count
3
SCENARIO: As a logged-in user on the dashboard page, I need to see if I have tasks to be done
GIVEN: That I have at least one task created and marked as “todo”
WHEN: I’m on the dashboard page
THEN: I can see a lits of my “todo” tasks with the description and state (”todo”)
AND:
SCENARIO: As a logged-in user on the dashboard page, I need to see if I have any meetings today or coming soon
GIVEN: That I have at least one event in my calendar
WHEN: I’m on the dashboard page
THEN: I see my summary of events on my dashboard:
the events for today and the next incoming events with the specific date / time
AND:
SCENARIO: As a logged-in user on the dashboard page, I want to see if I have unread messages
GIVEN: That I have at least one unread message in my chat
WHEN: I see my dashboard
THEN: I can see the number of unread messages I have, displayed as a notification badge on the “Chat” button/link in the menu
AND:
3
Count Unique
3
Count
3
SCENARIO: As a logged-in user on the dashboard page, I want to access my tasks or calendar pages to see more information
GIVEN: that I can see summaries of my tasks and events
WHEN: I click on the button to access my calendar under the summary of events
OR
I click on the button to access tasks under the summary of task
THEN: I’m redirected to the corresponding page of the app
AND:
SCENARIO: As a logged-in user on any page of the app besides the dashboard
GIVEN: that I can see a “home” button
WHEN: I click on the “home” button
THEN: I’m redirected to the dashboard page of the app
AND:
SCENARIO: User on the dashboard page wants to access different pages
GIVEN: That I am a logged-in user on the dashboard page seing a menu with the different main pages
WHEN: I click on the text of the different pages (Chat, Calendar, Tasks, Edit profile, logout)
THEN: I go to the corresponding page of the app
AND:
2
Count Unique
3
Count
1
SCENARIO: User wants to log out
GIVEN: That I’m on the dashboard page
WHEN: I click on the logout button in the menu
THEN: I’m logged out from the app
AND: I’m redirected to the “login” page
1
Count Unique
1
Count
6
SCENARIO: User can scroll a conversation to see previous messages
GIVEN: that I had at least one chat conversation before
WHEN: I click on a chat window and I scroll up
THEN: I can see all the interactions that have happened from the first sent message to the last
AND: I can scroll down to go back to the latest messages
SCENARIO: As a logged-in user on the chat page
GIVEN: That I am seing a conversation window with at least one message received from a contact
WHEN: I see the messages sent to me and that I’ve sent
THEN: I can see the profile picture of the senders OR their initials if they didn’t add a profile picture
AND:
SCENARIO: User can see if a message has been read
GIVEN: that there has been at least one message sent
WHEN: a message is visible in the conversation chat window
THEN: I can see if my message has been read by the recipient
AND:
SCENARIO: User can see when a specific message was sent in the chat
GIVEN: that there has been at least one message sent
WHEN: I see one or more messages in the conversation chat window
THEN: I can see a line of text showing the time and date of when the message was sent under each message
AND:
SCENARIO: As a logged-in user on chat page, I want to see from which chat I have unread messages
GIVEN: That I have received and not read at least one message
WHEN: I see my chat window
THEN: I can see a notification badge with the corresponding number of messages unread on the different tabs corresponding to conversations with different contacts.
AND: The notification badge disappears once I clicked in the chat window where a message was unread
SCENARIO: User reads a message
GIVEN: That there has been at least one message sent to me that is unread
WHEN: I click anywhere on the chat tab where I got the message
THEN: the message is marked as “read” in the chat
AND: The notification badge disappears
5
Count Unique
6
Count
3
SCENARIO: User wants to send messages to its contacts.
GIVEN: That I’m in the conversation window with an added contact
WHEN: I type at least one character in the “write message” field, then press the “send” button
THEN: my message appears in the conversation window on the bottom right, with my profile picture on the side
AND: my contact can see my message on the bottom left of their conversation window with me
SCENARIO: User doesn’t want to accidentally send an empty message
GIVEN: That I’m in the conversation window with an added contact
WHEN: I press the “send” button without typing any text
THEN: no message is sent, nothing happens
AND:
SCENARIO: User gets a message
GIVEN: That I’m a user who received a message from any of my contacts
WHEN: I’m on the chat page and receive a message from any of my contacts
THEN: a notification badge appears next to the tab corresponding the the chat where I got a message
AND: a notification badge appears on the “chat” button on the dashboard page
1
Count Unique
3
Count
3
SCENARIO: User wants to add an event
GIVEN: That I’m on the Calendar Page
WHEN: I click on the button “add an event”
THEN: On a new page or in a popup, I’m prompted with:
a date-time picker
a field to name my event
a list selector to add one of my contacts to the event

A button to add my event
A cancel button
AND:
SCENARIO: User adds an event
GIVEN: That I’m on the Calendar Page, with the
“create an event” window opened
That I give valid information in all the fields
WHEN: I press the “add event” button
THEN: I get a message reading that the event has been successfully added to my calendar
AND: The windows “add an event” disappears
AND
I can now see the event in my calendar

SCENARIO: User creates an event inviting a contact
GIVEN: That I have successfully created an event inviting one of my contacts
WHEN: The event is created
THEN: The other participants to the event are notified through the common chat tab that they are participants to this event
AND: The event is added to the participant’s calendar
2
Count Unique
3
Count
2
SCENARIO: User deletes an event
GIVEN: That I have at least one event created by myself in my calendar
WHEN: I select the event and click on the “delete event” button
THEN: the event is deleted from my calendar
AND: I see a message confirming that the event has been deleted
SCENARIO: User deletes an event where another contact is participating / invited
GIVEN: That I have at least one event created by myself and where another contact is invited in my calendar
WHEN: I select the event and click on the “delete event” button
THEN: the event is deleted from my calendar
The event is deleted from my contact’s calendar
AND: My contact receives an automatic message in our conversation chat saying that this event has been deleted
1
Count Unique
2
Count
3
SCENARIO: User can see the events for any page of the calendar
GIVEN: that I can see the calendar view of the current month
WHEN: I click on a button in order to see the view of the previous or next month
THEN: My calendar view is changed by the view of the previous or next month
AND:
SCENARIO: User can see the events for any specific date of the calendar
GIVEN: that I can see the calendar view of the current month
WHEN: I click on a specific day/date
THEN: I can see the events of that day appearing on the page with the name and time
AND: I can edit or delete these events
SCENARIO: User wants to know if there are events for a specific date of the calendar without clicking on each day
GIVEN: that I am on the calendar page
WHEN: I look at my calendar monthly view
THEN: I can see that some days are marked with a coloured dot around, marking that there are events for these specific dates
AND:
1
Count Unique
3
Count
4
SCENARIO: User wants to edit the title or date of an event that doesn’t include other participants
GIVEN: That I have at least one event created in my calendar where there are no other participants than me
That I have the “edit event” window open for the event I want to edit
WHEN: I edit the title and/or the date of the event and press confirm
THEN: the title and/or the date of the event is modified
AND: the event is moved to the corresponding date
SCENARIO: User wants to edit the title or date of an event that includes at least one other participant
GIVEN: That I have at least one event created in my calendar where there is at least one other participant
That I have the “edit event” window open for the event I want to edit
WHEN: I edit the title and/or the date of the event and press confirm
THEN: the title and/or the date of the event is modified on all the participant’s calendars
AND: other participants get a message through the chat reading that the event name / date created by myself has been modified to the new value
SCENARIO: User wants to edit an event by adding a new participant
GIVEN: That I have at least one event created in my calendar
That I have the “edit event” window open for the event I want to edit
WHEN: I select at least one new participant to add to the event and press confirm
THEN: The other participants to the event are notified through the common chat tab that they are participants to this event
AND: The event is added to the participant’s calendar
SCENARIO: User wants to edit an event by removing a participant
GIVEN: That I have at least one event created in my calendar where there is at least one other participant
That I have the “edit event” window open for the event I want to edit
WHEN: I unselect at least one participant to remove to the event and press confirm
THEN: The participants who have been unselected are notified through the common chat tab that they are not participants to this event anymore
AND: The event is removed from the deleted participant’s calendar
1
Count Unique
4
Count
4
SCENARIO: Logged-in user on the chat page wants to add a contact
GIVEN: That I have a search bar to find contacts
WHEN: I enter a valid username of a contact in the find contact field then press the confirm / add a contact button
THEN: A contact invite is sent to the added contact
AND: I get a confirmation message reading that my contact request has been sent
SCENARIO: Logged-in user on the chat page wants to add a contact, but the contact is not found
GIVEN: That I have a search bar to find contacts
WHEN: I enter a string of characters that doesn’t match any existing contact in the database then press enter
THEN: I get a message reading that this contact couldn’t be found
AND:
SCENARIO: User declines a contact request
GIVEN: That I get a contact request and I can see the username of the contact
WHEN: I click on “decline the request” next to the username
THEN: the request disappears
AND:
SCENARIO: User accepts contact request
GIVEN: That I get a contact request and I can see the username of the contact
WHEN: I click on “accept the request”
THEN: The contact is added to my contacts
AND: a new chat tab connecting me with the contact appears both on my chat page and on my contact’s page
2
Count Unique
4
Count
2
SCENARIO: User deletes a contact and the contact is removed from contacts list
GIVEN: That I can see my list of contacts and actions including “delete”
WHEN: I click on the button “delete” associated with a contact
THEN: the contact is removed from my list of contacts
AND: I’m removed from the list of contacts of the contact I’ve deleted

SCENARIO: User deletes a contact and the chat tab for both contacts is removed
GIVEN: That I can see my list of contacts and actions including “delete”
WHEN: I click on the button “delete” associated with a contact
THEN: The chat window for the chat with this contact disappears on my chat page
AND: The chat window for the chat with this contact disappears on the chat page of the deleted contact
1
Count Unique
2
Count
35
Count Unique
62
Count
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.