Children Care Software Requirement Specification: - Hanoi, May 2022
Children Care Software Requirement Specification: - Hanoi, May 2022
Group 5
Table of Contents
I. Overview 3
1. Introduction 3
2. System Functions 4
3. Common Requirements 5
II. Functional Requirements 6
1. <<Feature Name 1>> 6
a. <<Function Name 1>> 6
b. <<Function Name 2>> 6
2. <<Feature Name 2>> 6
1 | Page
I. Overview
1. Introduction
This project is aimed at developing an online children care center which supports for the customers
tracking and taking care of their children’s health. In addition, the medical centers manage their
2 | Page
2. System Functions
a. Screen Flow
b. Screen Details
[Provide the descriptions for the screens in the Screens Flow above]
# Feature Screen Description
1 Show sliders, hot posts, featured services + the sider with the latest
posts, static contacts/links
- Shown slider information includes its image and title; the user is
redirected to the slider's backlink on his/her clicking
- Shown post information includes its thumbnail, title, brief-info; the
user is redirected to the post's details on his/her clicking
- Shown service information includes its thumbnail, title, brief
information; the user is redirected to the service's details on his/her
Public Home page clicking
2 Show the posts pagination (sorted by updated date, paginated) + the
sider with the post search box, posts categories, static
contacts/links; Shown post information includes its thumbnail, title,
brief-info; the user is redirected to the post's details on his/her
Public Blog list clicking
3 Show post details (including title, author, updated date, category,
and post details) + the sider with the post search box, posts
Public Blog details categories, static contacts/links
4 Public Service list Show the services paginatedly (sorted by updated date, paginated)
+ the sider with the service search box, service types, static
contacts/links;
- Shown service information includes its thumbnail, title, brief
information, original price, and sale price;
- The user is redirected to the service's details on his/her clicking on
the service
- The user can choose to add the service to the cart or to feedback
on the service by clicking the service's Buy & Feedback buttons
3 | Page
responsively
4 | Page
categories, static contacts/links;
10 Common This is a pop-up screen which allows the user to enter email &
password to login; on this page, there are also options for user to
register new information or reset the password for the case s/he
User Login forget it
11 Common This is a pop-up screen which allows the user to register
himself/herself to the system by inputing following information: full
name, gender, email, mobile, and address; User then need to verify
by clicking the link sent via email to him/her before being able to
User Register access the system
12 Common 'The user input his/her email to receive the reset password link. This
link is sent to the user's email for his/her password resetting.
- On clicking the link, the user is redirected to the password resetting
page in which s/he input new password (twice) for the system
access
- Note that the link is only available for a specific time duration as
Reset Password configured in the system config file.
13 Common This is a pop-up screen which allows the user to change his/her
password by inputting his current password as well as new
Change Password password (twice)
14 Common This is a pop-up screen which allows the user to edit his/her profile
information, including the registered ones & the avatar image.
User Profile Please note that s/he is not allowed to change the email
15 Customer Show the list of user's reservations paginatedly + the sider with the
post search box, posts categories, static contacts/links
- Each reservation include below information: id, reserved date,
service (first service name & number of persons), time to check up,
total cost, status;
- On clicking the link under the reservation id, user would be
redirected to the Reservation Information page
My Reservation
16 Customer Show the reservation details, including the information as below +
the sider with the post search box, posts categories, static
contacts/links
- The reservation id, reservation date, time to check up, total cost,
status
- The receiver information: full name, gender, email, mobile
- This list of reserved services, each service include following
information & the links/buttons that allow the user to re-reserve or
feedback: thumbnail, name, service, unit price, number of person,
total cost
For the submitted reservation, the user can choose to update
(redirect the user to the Reservation Details page for that) or cancel
Reservation the reservation
Information
17 Staff Staff Dashboard Show menu of Staff
18 Staff Show the list of reservations paginatedly
- The list can be shorted by the reservation date, customer name,
total cost, status
- Each reservation include below information: id, reserved date,
customer name,service (service name & number of person), total
cost, status;
- Allow the users to filter the reservation by the reservation date
(from, to), status, staff
- Allow the user to search the reservations by reservation id,
customer name
- On clicking the link under the reservation id, user would be
Reservation List redirected to the Reservation Details page
19 Staff Reservation Show the reservation details, including the following information:
Details - Basic reservation information: reservation id, customer full name,
5 | Page
email, mobile, reservation date, total cost, sale name, status
- The receiver information: full name, gendar, email, mobile, address
- This list of reserved services, each service include following
information: thumbnail, name, category, unit price, number of
person, total cost
20 Staff Show the history of examination including the date, used services,
medical prescription
Medical Doctor can add new medical prescription; view existing medical
Examination prescription
21 Manager
Manager Dashboard Show menu of Manager
22 Show the paginated list of posts (include posts' id, thumbnail, title,
category, author, featured, and status information):
- The user can filter the post by category, author, status or search by
title
- Sortable by title, category, author, featured, or status
- From each post, the user can choose to hide, show, view, edit it
- The page also have the button/link that allows the user to add new
post
Manager Post List(M)
23 Post Details(M) Show detailed post information (thumbnail, category, title, brief
information, description, flag to turn the featurning on/off, status),
Manager from that allow the user to input, view or edit them
24 Sliders List Show the paginated list of sliders (including sliders' id, title, image,
backlink, status)
- The user can filter the sliders by the status + search by title or
backlink
- For each slider, the user can choose to hide, show, edit it
Manager
25 Manager Slider Details Show detailed slider information (image, title, backlink, status, notes)
26 Services List(M) Show the paginated list of services (include services' id, thumbnail,
title, category, list price, sale price, featured, and status information):
- The user can filter the service by status or search by title, brief info
- Sortable by title, category, list price, sale price, featured, or status
- From each service, the user can choose to hide, show, view, edit it
- The page also have the button/link that allows the user to add new
service
Manager
27 Service Details(M) Show detailed service information (thumbnail, category, title, brief
information, attached images, description, number of person, list
price, sale price, flag to turn the featurning on/off, status), from that
Manager allow the user to input, view or edit them
28 Customers List Show the list of customers / contacts paginatedly (include contacts'
id, full name, gender, email, mobile, status):
- The user can filter the customers by status + search by full name,
email, mobile
- Sortable by full name, email, mobile, status
- From each customer, the user can choose to add new, view or edit
Manager it
29 Customer Details Show detailed customer/contact information (full name, gender,
email, mobile, address, status), from that allow the user to input,
view or edit them (excep for the status which is generated
automatically - contact, potential or customer)
Besides, the screen also shows the list of customer/contact changes
history in the form of a table which includes following columns:
email, full-name, gender, mobile, address, updated by, updated date
Manager
6 | Page
30 Feedbacks List (M) Show the list of feedbacks paginatedly (include feedbacks' contact
full name, service name, rated star, status):
- The user can filter the feedbacks by status, service, rated star +
search by full name, feedback content
- Sortable by full name, service name, rated star, status
- From each feedback, the user can choose to view or change it's
status
Manager
31 Feedback Show the feedback details (contact full name, email, mobile, service,
Details(M) rated star, feedback, images status) from that allow the user to
Manager change its status
32 Admin Show statistics of new reservations (success, cancelled, submitted),
revenues (total, by service categories), customers (newly registered,
newly reserved), feedbacks (average star: total, by service) & the
trend of reservation counts (success, all) by day for the last 7 days
Admin Dashboard (the start date & end date can be adjustable), menu of Admin
33 Admin Users List Show the paginated list of registered users (include users' id, full
name, gender, email, mobile, role, status):
- The admin can filter the users by gender, role, status
- Allow the admin to search users by full name, email, mobile
- The list is sortable by id, fullname, gender, email, mobile, role,
status
- From each user, the admin can choose to view or edit it
- The page also have the button/link that allows the admin to add
new user
34 Admin User Details Show detailed user information (avatar, full name, gender, email,
mobile, role, address, status), from that allow the user to add new,
view or edit user information
- After adding, new generated login password would be email to the
new user
- The admin can only edit/update the role and status of the user
35 Admin Settings List Show the paginated list of settings (include settings' id, type, name,
value, status):
- The admin can filter the setting by type, status
- Allow the admin to search settings by name, value
- The list is sortable by id, type, name, value, status
- From each setting, the admin can choose to view or edit it
- The page also have the button/link that allows the admin to add
new setting
36 Admin Setting Details Show detailed user information (type, name, value, description,
status), from that allow the user to add new, view or edit setting
information
c. User Authorization
[Provide the system roles authorization to the system features (down to screens, and event to the
screen activities if applicable) in the table form as below – replace Role1, Role2,… with the specific
system user role names]
7 | Page
Home page X X X X X
Blog list X X X X X
Blog details X X X X X
Service list X X X X X
Service Details X X X X X
Reservation Details X X X X X
Reservation Contact X X X X X
Reservation Completion X X X X X
Feedback X X X X X
User Login X X X X
User Register X X X X
Reset Password X X X X
Change Password X X X X
User Profile X X X X
My Reservation X
Reservation Information X
Staff Dashboard X
Reservation List X X
Reservation Details X X
Medical Examination X
Manager Dashboard X
Post List X
Post Details X
Sliders List X
Slider Details X
Services List X
Service Details X
Customers List X
Customer Details X
Feedbacks List X
Feedback Details X
Admin Dashboard X
Users List X
User Details X
Settings List X
Setting Details X
In which:
8 | Page
• Guest: unregistered users
• Customer: they are registered users who are actual customers or potential customers
• Staff (Doctor & Nurse): the person who take part in checking up patients
• Manager: the person manage overall activities of medical center
• Admin: the organization leader/manager, acts as the system administrator
d. Non-Screen Functions
[Provide the descriptions for the non-screen system functions, i.e batch/cron job, service, API, etc.]
# Feature System Function Description
Public
The customer/user would be received the reservation
Reservation confirmation & payment guides via his/her email. Those
Completion information is shown on the page also. The payment
2
information (banking account,...) are taken from the
system configuration file
Guest Validate Email User then need to verify by clicking the link sent via email
3
to him/her before being able to access the system
3. Common Requirements
<<fill here with all the common requirements...>>
System
# Feature Description
Function
User Login This is a pop-up screen which allows the user to enter email &
password to login; on this page, there are also options for user to
register new information or reset the password for the case s/he
1 Common
forget it
User Register This is a pop-up screen which allows the user to register
himself/herself to the system by inputting following information: full
name, gender, email, mobile, and address; User then need to verify
2 Common by clicking the link sent via email to him/her before being able to
access the system
Reset The user input his/her email to receive the reset password link. This
Password link is sent to the user's email for his/her password resetting.
3 Common
4 Change Common This is a pop-up screen which allows the user to change his/her
Password password by inputting his current password as well as new
9 | Page
password (twice)
User Profile This is a pop-up screen which allows the user to edit his/her profile
5 Common information, including the registered ones & the avatar image.
Please note that s/he is not allowed to change the email
4. Database Schema
Table List
# Table Description
8 Medicine medicine
10 | Page
11 | Page
II. Functional Requirements
ITERATION 1
1. Public
a. Home Page
● Function trigger: This screen triggers when a user enters the website.
● Function description: When user open first link or after login as user, index.jsp runs and
shows the homepage.
● Screen layout:
12 | Page
● Function Details:
13 | Page
- User enter the website
2. Common
a. User Login
● Function trigger: User clicks the “Login” button from Home Page
● Function description: This is a pop-up screen which allows the user to enter email & password
to login; on this page, there are also options for user to register new information or reset the
password for the case she/he forget it
● Screen layout:
● Function Details:
- Check the input data to the data that is available in the database.
- If it matches data in the database, it will navigate users to the Homepage
- If not, it will display an error message”Username or password incorrect!. Please try
again!” and users have to input it again.
- Click “Register” to navigated to register page
- Click “Forgot Password” to navigated to reset password page
- Click the "remember me" checkbox to save the user account, so that the next time the
user logs in, the user does not have to log in again.
- There is a back logo so that when the user does not want to log in, he will return to
the homepage
- There is an eye logo so that when the user wants to check whether the password
has been entered correctly, when touching this logo, the password will be visible.
14 | Page
b. User Register
● Function trigger: When users click on the “Register” button in Login screen
● Function description: This is a pop-up screen which allows the user to register himself/herself
to the system by inputting following information: full name, gender, email, mobile, and
address; User then need to verify by clicking the link sent via email to him/her before being
able to access the system
● Screen layout:
●
● Function Details:
- If the input data is in the correct format, email is not in database yet => Register successfully
=> Send verification email to user
- If the input data is not in the correct format, email already in database => Display the
message register failed
- Validate:
+ Enter information is not be blank
+ Email is correct format
+ Check the security level of the password, security the password is: more character ,
weak, medium and strong
+ The registration date will automatically get the current date
+ Phone Number: Vietnamese phone number ( 9 number start with “0” or “+84”)
+ There is a back logo so that when the user does not want to log in, he will return to
the homepage
+ There is an eye logo so that when the user wants to check whether the password has
been entered correctly, when touching this logo, the password will be visible.
Validate email:
15 | Page
+, After the user successfully registers, it will lead the user to the OTP code verification page, if
the correct code is entered, it will lead the user to the login page.
c. Reset Password
● Function trigger: When users click on the “Forgot Password” button in Login screen
● Function description: The user input his/her email to receive the reset password code. This
code is sent to the user's email for his/her password resetting.
● Screen layout:
● Function Details:
16 | Page
d. Change Password
● Function trigger: When users click on the “Change Password” button in menu on the top side
● Function description: This is a screen which allows the user to change his/her password by
inputting his current password as well as new password (twice)
● Screen layout:
● Function Details:
- Check the user email exists, the user will change the new password
- Upon clicking the “Confirm” button after user inputs a new password, the servlet will
get the old password using as confirmation
- Check if new password and repeat new password correct and the input data is in the
correct format => set the new password in the user account
- if new password and repeat new password NOT correct and input data is NOT in the
correct format => change password failed, input again.
- Check the security level of the new password, If the new password is weak, change
password will not be allowed
- There is a back logo so that when the user does not want to log in, he will return to
the homepage
- There is an eye logo so that when the user wants to check whether the password has
been entered correctly, when touching this logo, the password will be visible.
e. User Profile
● Function trigger: When users click on the “User Profile” button in menu on the top side
● Function description: This is a screen which allows the user to edit his/her profile information.
User not allowed to change the email
● Screen layout:
17 | Page
● Function Details:
f. User Authorization
● Function trigger: This function triggers like a filter for all URLs of this website.
● Function description: This function is to implement authorization mechanisms in the system,
including the specify the role of logged-in user, his/her authorized page links (building the
displayed menu items (in the front end) and preventing unauthorized access via enter the
links directly).
● Screen layout: None
● Function Details:
- After logging in, the user will be authorized to use the features corresponding to that
account's role
- The servlet will get Cookies for the current account session, then check the input data
to the data that is available in the database.
- Role id is:
18 | Page
+ Admin: 1
+ Doctor: 2
+ Nurse: 3
+ Customer: 4
+ Manager: 5
3. Admin
a. User List
● Function trigger: When users click on the “User List” button in Admin menu.
● Function description: Show the paginated list of registered users (include users' id, full name,
gender, email, mobile, role, status)
● Screen layout:
● Function Details:
19 | Page
- Click “ADD NEW” button to add new user
- If the input data is in the correct format, email is not in database yet => add user successfully
- If the input data is not in the correct format, email already in database => Display the
message add user failed
- After adding, new generated login password would be email to the new user
- Validate:
+ Phone Number: Vietnamese phone number ( 9 number start with “0” or “+84”)
b. User Details
● Function trigger: When admin click on the “View” button in the “User List” screen
● Function description: Show detailed user information (avatar, full name, gender, email, mobile,
role, address, status)
- From that allow the admin view or edit user information
- The admin can only edit/update the role and status of the user
● Screen layout:
● Function Details:
c. Admin Dashboard
● Function trigger: When user login by admin account
● Function description: this screen will show status of system, and list function admin can do.
20 | Page
● Screen layout:
● Function Details:
- The servlet will get Cookies for the current account session, then check the input data
to the data that is available in the database. If role is admin, it will navigate user to the
Admin Dashboard
- Show statistics of new reservations , customers, feedbacks & the trend of reservation
counts (success, all) by day for the last 7 days (the start date & end date can be
adjustable)
ITERATION 2
1. Public
Blogs List
● Function trigger: This function triggers when user click “BLOGS” button in header
● Function description: Show list of all blogs
● Screen layout:
● Function Details:
- In the Home Page, click “BLOGS” button.
21 | Page
- The Servlet load data from database
- Show all blogs sorted by updated date
- Show new blogs
- Shown blog information includes its thumbnail, title, brief-info.
- Show blogs categories in menu
- User can search blogs by search box in menu
- The user is redirected to the blog details on click “Read More”
Blog Details
● Function trigger: This function triggers when user click “Read More” on a blog in Blogs
List
● Function description: Show details of blog
● Screen layout:
● Function Details:
- In “Blog List” screen, click “Read More” on any blogs
- The Servlet load data from database
- Show blog details (including title, author, updated date, category, and post details)
- Show new blogs
- Show blogs categories in menu
- User can search blogs by search box in menu
Services List
● Function trigger: This function triggers when user click “ Service” in header
● Function description: Show the list of all services
22 | Page
● Screen layout:
● Function Details:
- Click “Service”
- All services data is loaded by the servlet from the database
- Show the menu with the service search box, service categories below header
- Show all services (sorted by updated date, lazyloading)
- Show service information includes its thumbnail, title, brief information, rate star,
original price, and sale price;
- The user is redirected to the service's details on his/her clicking “Details Service”
button on the service
- The user can choose to add the service to the cart by clicking “Book Services”
Service Details
● Function trigger: This function triggers when the user clicks “DETAILS’ button on the
Services List screen.
● Function description: Show the service details
23 | Page
● Screen layout:
● Function Details:
- On “Service List” screen, click “Details Service” on any service
- The Servlet load data from database
- Show the menu with the service search box, service categories below header
- Show service details (including title, category, images, original price, sale price, and
service details)
- When click on the small image below, it will display on the larger image
Reservation Details
● Function trigger: This function triggers when user click on cart button in menu on the top
side
● Function description: Show the reservation details with list of the user's chosen services
24 | Page
● Screen layout:
● Function Details:
- User click on cart button
- Show the cart details with list of the user's chosen services (including Id,name, price,
quantity, total cost)
- The user can:
+ Change the quantity of each service: the total cost is automatically adjusted
+ Choose to delete service by clicking on the delete button
+ Click the Continue shopping button to go to Services List page
+ Click the Check Out button to go to the Reservation Contact page( must be login)
If not login display message : “You need to login before checkout”
Reservation Contact
● Function trigger: This function triggers when user click the “Check Out” button on
“Reservation Details” screen
● Function description: Show list of user chosen service, total price and allow user input
information to complete the reservation.
25 | Page
● Screen layout:
● Function Details:
- Click the “Check Out” button
- Show the list of user chosen service and total reservation price
- The receiver information would be filled with the user's information(allow user to edit)
- User choose information to reservation:
+ Number of children
+ Name of each children(if not have children => redirect to add children page)
+ Date
+ Slot
+ Doctor
+ Nurse
- Click the “Place Order” button to submit the reservation before redirecting user to the
Reservation Completion or Error page (due to technical error, input is blank or the
time is out of the slot)
- Validate input data:
+ All input information is not be blank
+ Phone Number: Vietnamese phone number ( 9 number start with “0” or “+84”)
26 | Page
Feedback
● Function trigger: This function triggers when the user clicks the “Feedback” button on
the top side or receives an email with the guides to feedback.
● Function description: User feedback after using the service
● Screen layout:
●
● Function Details:
- Show the menu with the service search box, service categories below header
- After the end of medical examination => The system sends an email to the user
guides to feedback => User clicks on link to redirect to feedback page.
- Beside, user can click “Feedback” button on the top side to call Feedback screen
- The feedback information includes contact information (full name, gender, email,
mobile), rated star, the attached images and the free-format feedback
- Validate input data:
+ Input information is not be blank
+ Phone Number: Vietnamese phone number ( 9 number start with “0” or “+84”)
+ Email is correct format
2. Customer
My Reservation
● Function trigger: This function triggers when Customer click “ My Reservations” button in
menu on the top side
● Function description: Show list reservations of customer
27 | Page
● Screen layout:
● Function Details:
- Click “My Reservations” in header
- Show the list of user's reservations
- Each reservation include information: id, reserved date, service, time to check up,
total cost, status;
- On clicking “View”, user would be redirected to the “Reservation Information” page
Reservation Information
● Function trigger: This function triggers when customer click “View” in “My Reservations”
screen
● Function description:
● Screen layout:
● Function Details:
- Customer click “ View” in My Reservation screen
- Show the reservation details, including the information as below
+ The reservation id, reservation date, time to check up, total cost, status
+ The receiver information: full name, gender, email, mobile
+ This list of reserved services, each service include following information :thumbnail,
service, unit price, number of person, total cost
28 | Page
- For the reservation, the user can choose to update if status is “Pending” (redirect the
user to the Reservation Contact page for that) or cancel the reservation
3. Admin
Settings List
● Function trigger: This function triggers when Admin click “Setting List” button in Admin
Dashboard
● Function description: Show list of settings
● Screen layout:
● Function Details:
- Click “Admin” button in header
- Show the list of settings ( status):
- From each setting, the admin can choose to show or hide it.
- Click “Edit” to edit information of setting
Setting Details
● Function trigger: This function triggers when Admin clicks “Edit” any setting in the
“Settings List” screen.
● Function description: Show setting details
● Screen layout:
29 | Page
● Function Details:
- Click “Edit” any setting in “Settings List”
- Show details (id, name, value, description, status)
- Admin can edit information and status of setting
- Admin can add new setting
ITERATION 3
1. Public
a. Reservation Completion
2. Manager
a. Posts List
b. Post Details
c. Sliders List
d. Slider Details
e. Services List
f. Service Details
g. Customers List
h. Customer Details
i. Feedbacks List
j. Feedback Details
3. Staff
a. Feedback Details
b. Rerservation Details
c. Medical examination
30 | Page