From 10627a0c9996adf72f7ddffb5f04afaa03665662 Mon Sep 17 00:00:00 2001 From: John Ahlroos Date: Tue, 4 Nov 2025 20:21:08 +0100 Subject: [PATCH] Add user stories --- SmartClinicManagementSystem/user_stories.md | 298 +++++++++++++++++++- 1 file changed, 290 insertions(+), 8 deletions(-) diff --git a/SmartClinicManagementSystem/user_stories.md b/SmartClinicManagementSystem/user_stories.md index da45d58..dbe2f28 100644 --- a/SmartClinicManagementSystem/user_stories.md +++ b/SmartClinicManagementSystem/user_stories.md @@ -1,16 +1,298 @@ -# User Story Template +# User Stories + +## Admin User Stories + +--- **Title:** -_As a [user role], I want [feature/goal], so that [reason]._ +_As an admin, I want to be able to login, so that I can manage the platform securely_ **Acceptance Criteria:** -1. [Criteria 1] -2. [Criteria 2] -3. [Criteria 3] +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/Medium/Low] +**Priority:** High -**Story Points:** [Estimated Effort in Points] +**Story Points:** 3 **Notes:** -- [Additional information or edge cases] \ No newline at end of file +- 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. \ No newline at end of file