icon picker
User Stories & Acceptance Criteria


Features, Use Cases, User Stories, Acceptance Criteria
1
Feature
Use Cases
User Stories
Acceptance Criteria
Connexion Page
Log In
2
As a logged out user, I want to log in securely so I can access the application's features and my data in a protected way.
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
As a logged out user, I want to log in securely so I can access the application's features and my data in a protected way.
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
Reset Password
2
As a logged-out user, I want to be able to log in if I have forgotten my password, in order to access the application
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:
As a logged-out user, I want to be able to log in if I have forgotten my password, in order to access the application
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
Sign Up
5
As a visitor, I want to signup to the app as a new student or tutor so I can access the features I need
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:
As a visitor, I want to signup to the app as a new student or tutor so I can access the features I need
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
As a visitor, I want to signup to the app as a new student or tutor so I can access the features I need
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
As a visitor, I want to signup to the app as a new student or tutor so I can access the features I need
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:
As a user, I want to know if I already have an account on the app when I try to sign-up, so I can use the login page instead
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
Task Management Page
See tasks
4
As a user, I want to be able to see my complete task list to manage my tasks easily
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:
As a student, I want to be able to see which of my tasks have been assigned by my tutor, so I can make sense of my tasks
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
As a tutor, I want to be able to see which tasks are mine and which tasks I have assigned to my student, to make sure I don't make mistakes in my task management
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:
As a tutor, I want to be able to see which tasks are mine and which tasks I have assigned to my student, to make sure I don't make mistakes in my task management
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
Create a task
2
As a User, I want to be able to create a task in my task management page, so I can see them on that page
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:
As a User, I want to be able to create a task in my task management page, so I can see them on that page
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
Create a task for their student
3
As a tutor, I want to be able to create tasks and assign them to my student, so they can complete them
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:
As a tutor, I want to be able to create tasks and assign them to my student, so they can complete them
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
As a tutor, I want to be able to create tasks and assign them to my student, so they can complete them
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
Edit a task
5
As a user, I want to be able to mark a task as done / todo easily, so I can visualise which tasks are done
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
As a tutor I want to be able to edit a task’s description and assign the task or not to my student
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
As a user, I want to be able to edit a task description
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:
As a tutor I want to be able to edit a task’s description and assign the task or not to my student
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.
As a tutor I want to be able to edit a task’s description and assign the task or not to my student
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
Delete a task
2
As a user, I want to be able to delete any of my tasks (tasks I can see on “my tasks” tab) so I can keep my page clean
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
As a tutor, I want to be able to delete any of the tasks I have assigned to my student, so I can keep my page clean
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
Edit Profile Page
Edit Profile
3
As a user, I want to be able to change my username, email, password and profile picture so I can personalise my account
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:
As a user, I want to be able to change my username, email, password and profile picture so I can personalise my account
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”
As a user, I want to be able to change my username, email, password and profile picture so I can personalise my account
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
Dashboard Page
See most important information
3
As a user, I want to see a summary of my tasks on the dashboard, to make sure I don't forget them
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:
As a user, I want to see the list of upcoming events on the dashboard, to make sure I don't miss an event
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:
As a user, I want to see on the dashboard if I have any unread chat messages, so I don't miss them
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
Access to other pages
3
As a user, I want to be able to access the chat, calendar and task management pages from the dashboard, to view them in more detail
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:
As a user, I want to be able to easily return to the dashboard page when I use the different features, so I can easily navigate the app
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:
As a user, I want to be able to access the chat, calendar and task management pages from the dashboard, to view them in more detail
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
Logout
1
As a logged-in user, I want to be able to log out easily, so I can avoid somebody else accessing my information
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
Chat Page
See conversation records
6
As a user, I want to be able to consult the history of my conversations with my contacts, to easily find information exchanged
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
As a user, I want to be able to see the sender's profile picture next to each message, to make it easier to read the conversation and make sure I'm talking to the right contact
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:
As a user, I want to be able to see if a message I have sent has been read by the recipient
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:
As a user, I want to see when a message was sent, to better coordinate my exchanges
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:
As a user, I want to see if I have any unread message so I can make sure I read them
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
As a user, I want to be able to see if a message I have sent has been read by the recipient
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
Send a message
3
As a user, I want to be able to send messages to my contacts so that I can exchange information with them
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
As a user, I want to be able to send messages to my contacts so that I can exchange information with them
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:
As a user, I want to be able to send messages to my contacts so that I can exchange information with them
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
Calendar Page
Add an event
3
As a user, I want to be able to add an event to my calendar, so I can organise my time
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:
As a user, I want to be able to add an event to my calendar, so I can organise my time
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

As a User, I want to be able to invite one of my contacts to an event I created, so I can coordinate our appointments
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
Delete an event
2
As a user, I want to be able to delete an event from my calendar, to keep my schedule up to date
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
As a user, I want to be able to delete an event from my calendar, to keep my schedule up to date
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
See the calendar
3
As a user, I want to be able to navigate to any day of my calendar, to see events that do not appear in the current view
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:
As a user, I want to be able to navigate to any day of my calendar, to see events that do not appear in the current view
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
As a user, I want to be able to navigate to any day of my calendar, to see events that do not appear in the current view
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
Edit an event
4
As a user, I want to be able to edit an event I’ve created from my calendar so I can correct mistakes or update the event without creating a new one
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
As a user, I want to be able to edit an event I’ve created from my calendar so I can correct mistakes or update the event without creating a new one
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
As a user, I want to be able to edit an event I’ve created from my calendar so I can correct mistakes or update the event without creating a new one
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
As a user, I want to be able to edit an event I’ve created from my calendar so I can correct mistakes or update the event without creating a new one
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
Manage Contacts Page
Add a contact
4
As a user, I want to be able to search and add a contact, to be able to chat with them later
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
As a user, I want to be able to search and add a contact, to be able to chat with them later
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:
As a user, I want to be able to accept or decline a contact request, so I don't receive messages by contacts I don't want to communicate with
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:
As a user, I want to be able to accept or decline a contact request, so I don't receive messages by contacts I don't want to communicate with
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
Delete a contact
2
As a user, I want to be able to delete a contact, so that I don't receive any more messages from that user
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

As a user, I want to be able to delete a contact, so that I don't receive any more messages from that user
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.