298 lines
7.5 KiB
Markdown
298 lines
7.5 KiB
Markdown
# User Stories
|
|
|
|
## Admin User Stories
|
|
|
|
---
|
|
|
|
**Title:**
|
|
_As an admin, I want to be able to login, so that I can manage the platform securely_
|
|
|
|
**Acceptance Criteria:**
|
|
1. I can access the login portal where an username/password is requested
|
|
2. After entering the correct username/password and clicking a button I am logged in
|
|
3. After entering the incorrect username/password an error message is displayed
|
|
|
|
**Priority:** High
|
|
|
|
**Story Points:** 3
|
|
|
|
**Notes:**
|
|
- The error message should not reveal if the user exist
|
|
- The error message should not reveal what information was incorrect
|
|
|
|
---
|
|
|
|
**Title:**
|
|
_As an admin, I want to be able to log out, so that nobody can use my credentials._
|
|
|
|
**Acceptance Criteria:**
|
|
1. A logout button should exist which I can use to log out
|
|
2. When the button is clicked my session is terminated
|
|
3. After logout I am redirected back to the login page
|
|
|
|
**Priority:** Medium
|
|
|
|
**Story Points:** 2
|
|
|
|
**Notes:**
|
|
- Ensure that the session is terminated in the back-end
|
|
|
|
---
|
|
|
|
**Title:**
|
|
_As an admin, I want to be able to add a doctor to the portal, so that the doctor can us the profile._
|
|
|
|
**Acceptance Criteria:**
|
|
1. There is a method of adding doctors to the portal
|
|
2. I should be able to add the doctors information
|
|
3. When the doctor is created a welcome email should be sent to the doctors email address
|
|
|
|
**Priority:** Medium
|
|
|
|
**Story Points:** 5
|
|
|
|
**Notes:**
|
|
- Ensure no duplicate doctors can be added
|
|
- An email is required
|
|
|
|
---
|
|
|
|
**Title:**
|
|
_As an admin, I want to be able to remove a doctor, so that it does not clutter the user interface._
|
|
|
|
**Acceptance Criteria:**
|
|
1. Provide a Delete button on the doctors profile page
|
|
2. When the button is pressed a confirmation dialog is shown
|
|
3. When confirmed the doctor is removed from the system
|
|
|
|
**Priority:** Low
|
|
|
|
**Story Points:** 3
|
|
|
|
**Notes:**
|
|
- The Delete button should only be accessible for admins
|
|
- All data related to the doctor is also removed
|
|
|
|
---
|
|
|
|
**Title:**
|
|
_As an admin, I want to track user statistics, so that I can better anticipate the users needs in future development._
|
|
|
|
**Acceptance Criteria:**
|
|
1. Provide a SQL Stored Procedure to provide a report of appointments / month / doctor
|
|
2. Track usage statistics in the back-end and front-end
|
|
|
|
**Priority:** Low
|
|
|
|
**Story Points:** 5
|
|
|
|
**Notes:**
|
|
- No notes.
|
|
|
|
## Patient User Stories
|
|
|
|
---
|
|
|
|
**Title:**
|
|
_As a patient, I want to view a list of available doctors without an account, so that I can explore options before registering._
|
|
|
|
**Acceptance Criteria:**
|
|
1. Provide a we page where all doctors are listed
|
|
2. The web page should be accessible without logging in
|
|
|
|
**Priority:** Medium
|
|
|
|
**Story Points:** 3
|
|
|
|
**Notes:**
|
|
- No additional notes.
|
|
|
|
---
|
|
|
|
**Title:**
|
|
_As a patient, I want to register, so that I can book an appointment._
|
|
|
|
**Acceptance Criteria:**
|
|
1. Provide a button that takes the patient to the registration page
|
|
2. The registration page should not require authentication
|
|
3. The registration page allows the user to enter all his information
|
|
4. When the registration page is submitted the user is directed to the login page
|
|
5. Send a welcome email to user
|
|
|
|
**Priority:** High
|
|
|
|
**Story Points:** 5
|
|
|
|
**Notes:**
|
|
- Ensure that username is unique, and display an error message if it is not
|
|
- Ensure that the password conforms to our password standard
|
|
|
|
---
|
|
|
|
**Title:**
|
|
_As an patient, I want to be able to login, so that I can book and manage appointments securely_
|
|
|
|
**Acceptance Criteria:**
|
|
1. I can access the login portal where an username/password is requested
|
|
2. After entering the correct username/password and clicking a button I am logged in
|
|
3. After entering the incorrect username/password an error message is displayed
|
|
|
|
**Priority:** High
|
|
|
|
**Story Points:** 3
|
|
|
|
**Notes:**
|
|
- The error message should not reveal if the user exist
|
|
- The error message should not reveal what information was incorrect
|
|
|
|
---
|
|
|
|
**Title:**
|
|
_As a patient, I want to be able to log out, so that nobody can use my credentials._
|
|
|
|
**Acceptance Criteria:**
|
|
1. A logout button should exist which I can use to log out
|
|
2. When the button is clicked my session is terminated
|
|
3. After logout I am redirected back to the login page
|
|
|
|
**Priority:** Medium
|
|
|
|
**Story Points:** 2
|
|
|
|
**Notes:**
|
|
- Ensure that the session is terminated in the back-end
|
|
|
|
---
|
|
|
|
**Title:**
|
|
_As a patient, I want to be able to book a hour long appointment, so that I can consult with a doctor about my issue._
|
|
|
|
**Acceptance Criteria:**
|
|
1. Provide a button to book an appointment
|
|
2. Display the available times the patient can select or allow the patient to select a time and duration himself
|
|
|
|
**Priority:** Medium
|
|
|
|
**Story Points:** 3
|
|
|
|
**Notes:**
|
|
- Ensure no double bookings for a doctor
|
|
- Ensure the bookings are limited to an hour
|
|
- Ensure the bookings are not made on weekends nor outside of working hours
|
|
|
|
---
|
|
|
|
**Title:**
|
|
_As a patient, I want to view my appointments, so that I can prepare accordingly._
|
|
|
|
**Acceptance Criteria:**
|
|
1. Provide a page where all appointments for a patient is displayed
|
|
2. The page should only be accessible when logged in
|
|
|
|
**Priority:** Low
|
|
|
|
**Story Points:** 3
|
|
|
|
**Notes:**
|
|
- No additional notes.
|
|
|
|
## Doctor User Stories
|
|
|
|
---
|
|
|
|
**Title:**
|
|
_As a doctor, I want to be able to login, so that I can manage the platform securely_
|
|
|
|
**Acceptance Criteria:**
|
|
1. I can access the login portal where an username/password is requested
|
|
2. After entering the correct username/password and clicking a button I am logged in
|
|
3. After entering the incorrect username/password an error message is displayed
|
|
|
|
**Priority:** High
|
|
|
|
**Story Points:** 3
|
|
|
|
**Notes:**
|
|
- The error message should not reveal if the user exist
|
|
- The error message should not reveal what information was incorrect
|
|
|
|
---
|
|
|
|
**Title:**
|
|
_As a doctor, I want to be able to log out, so that nobody can use my credentials._
|
|
|
|
**Acceptance Criteria:**
|
|
1. A logout button should exist which I can use to log out
|
|
2. When the button is clicked my session is terminated
|
|
3. After logout I am redirected back to the login page
|
|
|
|
**Priority:** Medium
|
|
|
|
**Story Points:** 2
|
|
|
|
**Notes:**
|
|
- Ensure that the session is terminated in the back-end
|
|
|
|
---
|
|
|
|
**Title:**
|
|
_As a doctor, I want to view my appointment calendar, so that I can stay organized and provide better service to my patients._
|
|
|
|
**Acceptance Criteria:**
|
|
1. Provide a webpage with a calendar that displays all appointments
|
|
2. The page should only be accessible when logged in as a doctor
|
|
3. The page should allow me to see which patient is scheduled at what time
|
|
|
|
**Priority:** Medium
|
|
|
|
**Story Points:** 3
|
|
|
|
**Notes:**
|
|
- No additional info.
|
|
|
|
---
|
|
|
|
**Title:**
|
|
_As a doctor, I want to be able to mark myself as unavailable, so that patients cannot book appointments at those times._
|
|
|
|
**Acceptance Criteria:**
|
|
1. Provide a way for me to mark myself unavailable in the booking calendar
|
|
2. Patients should not be able to book times on the marked times
|
|
|
|
**Priority:** Medium
|
|
|
|
**Story Points:** 3
|
|
|
|
**Notes:**
|
|
- Weekends and outside of working hours should be automatically marked as unavailable
|
|
|
|
---
|
|
|
|
**Title:**
|
|
_As a doctor, I want to be able to provide specialization and contact information on my profile , so that my patients can better be prepared._
|
|
|
|
**Acceptance Criteria:**
|
|
1. Provide a way for me to provide my extra information
|
|
2. When a patient views my profile the information should be listed there
|
|
|
|
**Priority:** Low
|
|
|
|
**Story Points:** 2
|
|
|
|
**Notes:**
|
|
- Telephone numbers should not be visible without logging in first
|
|
|
|
---
|
|
|
|
**Title:**
|
|
_As a doctor, I want to view patient details, so that I can be better prepared._
|
|
|
|
**Acceptance Criteria:**
|
|
1. Provide a description of the patient when I select him/her in the calendar
|
|
|
|
**Priority:** High
|
|
|
|
**Story Points:** 2
|
|
|
|
**Notes:**
|
|
- No additional info. |