Professional Documents
Culture Documents
Project
Project
for
Version <1.0>
Prepared by
1. Introduction 1
1.1 Purpose 1
1.2 Product Scope 1
1.3 Definitions, Acronyms and Abbreviations 1
1.4 References 1
2. Overall Description 1
2.1 Product Perspective 1
2.2 Product Functions 2
2.3 User Classes and Characteristics 2
2.4 Operating Environment 2
3. Requirements Specification 3
3.1 External Interface Requirements 3
3.1.1 User Interfaces 3
3.1.2 Hardware Interfaces 3
3.1.3 Software Interfaces 3
3.1.4 Communications Interfaces 3
3.2 Functional Requirement 3
3.2.1 Use Case 1 3
3.2.2 Use Case 2 (and so on) 4
3.3 Other Nonfunctional Requirements 4
3.3.1 Performance 4
3.3.2 Reliability 4
3.3.3 Safety and Security 4
3.3.4 Adaptability and Portability
4. Application Architecture.
4.1 Application Architecture
4.2 Description
5. Data Design
5.1 Data Description.
5.1.1 Conceptual Data Model
5.1.2 Logical Data Model
5.1.3 Physical Data Model
5.2 Data Dictionary
6. Detailed Design
6.1 Function XX (XX: specific name)
6.2 Function YY (YY: specific name)
7. Test Cases
7.1 Test 1 <name of test>
7.1.1 Drawing the flow graph
7.1.2 Determining a basis set of independent paths
7.1.3 Preparing test cases
7.2 Test 2 <name of test>
7.2.1 Drawing the flow graph
7.2.2 Determining a basis set of independent paths
7.2.3 Preparing test cases.
7.3 Test 3 <name of test>.
7.3.1 Drawing the flow graph
7.3.2 Determining a basis set of independent paths
7.3.3 Preparing test cases
7.4 Test 2 <name of test>
7.4.1 Drawing the flow graph
7.4.2 Determining a basis set of independent paths
7.4.3 Preparing test cases
Revision History
Group Plan
1. Group Organization
2. Plan
Wee Task Member (Name) Deadline Level of Note
k completion
Software Design
6.3 Trần Thị Hồng
Nhan
Unit Testing
- Contact channel:
o Email: chaub2105663@student.ctu.edu.vn
nhanb2111940@student.ctu.edu.vn
thanhb2105663@student.ctu.edu.vn
nhub2111942@student.ctu.edu.vn
- Group meeting:
o Time: Friday, 30 January, 2023
- …
1. Introduction
1. Purpose
The product being specified in this document is a Hire Tutors Website. The document will list
all the needed software for the website.The purpose of the Hire Tutors Web is to provide users
a comprehensive platform to search for tutors and work.
Nowadays, the need for extracurricular studies is growing more and more in demand as a
way for students to enhance and augment their academic training, so that parents want to find
qualified and reliable in-home tutoring services for their child. And the requirement for tutors
to acquire tutoring jobs is becoming highly common among many young pupils. For students
who have graduated and looking for chances, tutoring is regarded as a pretty good and stable
job for them.This is an intermediary website that creates opportunities for both tutors and
parents who are in search of work and those who are looking for tutoring services for their
child.
2. Product Scope
The SRC document includes the software requirements for the creation of all features and
subsystems of the hiring tutors websites. As a result, it is not restricted to a particular area of
the system or subsystem. The goal of this SRS is to give the software development team a
precise specification of the requirements so that the finished product will satisfy all
requirements and expectations.
It is a section of websites pertaining to education that assist tutors in searching for work and
assist parents in finding tutors conveniently and quickly. Especially, the website provides
users with a platform to post detailed information about the expertise of tutors, qualifications
and parents can get in touch with them to find an appropriate tutors.
Users can access the web easily to sign in and login to their account, update their information
as well as hire tutors that fits their children's level and budget. Hire Tutors Website provides
users with optimized websites for searching, making it easier for users to use.
4. References
[1] IEEE Computer Society, IEEE Recommended Practice for Software Requirements
Specifications, IEEE Std 830-1998, 1998.
[2] Karl E. Wiegers, Software Requirements Specification Template, 1999.
[3] Bộ Thông tin và Truyền thông, Hướng dẫn về các yêu cầu phi chức năng chung cho các hệ
thống thông tin cung cấp dịch vụ công trực tuyến, 2013.
[4]T4 tutorials: Example of external interface requirements in software engineering
https://t4tutorials.com/external-interface-requirements-srs/
2. Overall Description
The following SRS contains the detailed product perspective from different stakeholders. It
provides the detailed product functions of Hire Tutors Website with user characteristics
permitted constraints, assumptions and dependencies and requirements subsets.
1. Product Perspective
This product is a new, self-contained product. It is a software based application implementing
a client-server model. This website provides a simple mechanism for users to find suitable
tutors or to find a job as a tutor.
2. Product Functions
Hire Tutors Website offers the following functions for user:
Sign in to the Hire Tutors Web: Allow users to create an account, log in to course and
download materials or register as a tutor.
Log in to the Hire Tutors Web: Users can use an existing account to get access to the
website. They can log into the system by username and password, Facebook or Email
account.
Search for tutors: Allow parents to find a suitable tutor in demand and tuition.
Insert, delete and update the information: Users can add, remove and change their
information upload on the website.
Pay tuition: Support online tuition payments through common payment processors as
Momo, PayPal and digital bank cards,...
Show list of tutors: Display a list of tutors sorted by review, feedback, or popularity.
Show overview of all existing subjects: Provides a general description of each subject
and an organization diagram of the subject’s tutors.
Evaluate the tutors: Parents evaluate the satisfaction of teaching quality as well as give
their feedback for tutors.
Show outstanding tutors, prices, offers: The homepage displays all the active tutors
with tuition fees by week, month, year or can be negotiated by each session.
Insert, delete and update materials and schedule: Allow tutors to post, edit their
teaching materials and schedule.
Contact your own tutor: Parents can contact tutors via chat or call directly just one
click to the chat box.
Integrated Google Maps: Indicate the specific location of the teaching address
according to the system location. Users who click on it will be directed to the exact
location on the Google Maps interface.
4. Operating Environment
This software can be used in laptop, desktop computers and mobile devices. The website can
be downloaded from the CH Play or App Store. It is compatible with various operating
systems, including:
Windows.
iOS .
Android.
This website is supported by a group of browsers:
Cốc Cốc.
Google.
Chrome.
Safari.
Microsoft Edge.
3. Requirements Specification
2. Hardware Interfaces
- Server-side: The web application will be hosted on a web server.
- Client-side: Since the website must run over the internet, all the hardware required to
connect to the internet will be hardware interfaces for the system. For e.g. Modem, WAN –
LAN, Ethernet Cross-Cable.
3. Software Interfaces
The following software components would probably be needed for this website.
Mobile devices operating system: The website must be created to work with a certain
mobile operating system, such as Android, iOS.
Computer devices: The website must be created to work with a certain computer
operating system, such as Window, iOS.
Mobile web development framework: It is possible to construct this website utilizing
frameworks like React Native, Corona, Ionic,...
Computer web development framework: It is possible to construct this website
utilizing frameworks such as Angular, React, Laravel, Vue, Spring,...
Backend server and database: The software links to databases for storage, queries, and
the necessary information. The backend server may store users databases and use
database management systems (DBMS) such as Oracle, MySQL, MS SQL Server,..
API protocols: This website will interface with the backend server and other external
services using protocols like HTTP or HTTPS.
The software connects to the banking system and global Internet network.
The software interacts with the operating system to carry out functions and tasks.
The software communicates with digital bank to identify available payment, validate
the payments and process payment.
The software communicates with Google Maps to indicate the location of the teaching
address.
4. Communications Interfaces
1. Requirement associated with communications functions
Web browser: Website must work good on any version of Google, Chrome,
Safari, Microsoft Edge
Communication standards and Network server communications protocols:
HTTPS, HTTP, FTP
Electronic forms: The website uses HTML Forms to get data and feedback
from tutors and parents
Email: The website must use domain-oriented email address
2. Message formatting: Image, video-based, text, file
3. Communication security or encryption issues: The website using end - to - end
encryption to ensure that only sender and receiver can access to the message
4. Data transfer rate: This website allows user to send file with a maximum file size of
1GB
5. Synchronization mechanisms: users can login by using email or facebook account;
users can save all files to Google Drive
2. Functional Requirement
Sign in to the Hire Tutors Web
User class: Parents and Tutors
Log in to the Hire Tutors Web
User class: Parents and Tutors
Searching for tutors
User class: Parents
Pay tuition
User class: Parents
1. Sign in
Trigger: User
Type: external
Relationship:
+Association: User - Choose Parents or Tutor
+Include: Send verification code - Create new account - Save - Input user’s information -
Choose Parents or Tutor
+Extend:
+Generalization:
Normal flow:
1. Include Choose “Sign in”
2. The User input information
3. The system validates the entered user’s information.
1. The system describes which data are inappropriate and requests the User
with suggestion of changing suitable data
2. The system prompts the User to re-enter the information
3. The User re-enters the information and the system re-validates it
4. If valid information is entered, go to step 6; else go to Step 5.1 or cancel the
change customer information request. If the User entered invalid data or
chose to cancel the change request, there is no change to the Customer’s
record
4. User chooses Save
5. User insert username and password to create new account
6. User choose whether to send the verification code via message or email
7. User inserts the code to verify
8. The system validates the entered code
1. If the verification code is invalid, system will request User to re-enter or
choose to send a new code or choose to receive code through another
method
2. The User re-enter the verification code and the system revalidates it
3. If valid code is entered go to step 8; else go to step 7.1 or cancel the save
User’s information request.
9. The User’s information is stored in the User’s record. The system notify the User
that the registration process is succeeded
Exceptional flows:
At any time, the User may choose to cancel the registration process. At which point, the
processing is discontinued, the User’s record unchanged, and the User is notified that the
request has been canceled.
2. Log in
Brief description: Valid users signed in to the system. This use case allows users to logs
into the Hire Tutor Website.
Normal flow:
1. The use case starts when the user “Sign in” to the system.
2. The “Log in” action is initiated when the user chooses to “Log in” tab on the
navigation bar.
3. System displays a form that allow users to fill in.
4. Users can select the way to log in.
5. The system prompts for log in by username, Facebook or Google.
6. The system validates the entered name and password and logs the user into the
system.
7. The system displays the user’s main page and the use case ends.
Alternate/Exceptional flows: If in the basic flow the system cannot find the name or the
password is invalid, the system describes the reasons why the user failed
authentication.The system prompt the user to re-enter the valid information, request for
password reset or choose to cancel the operation, at which point the use case ends.
Brief description: Valid users signed in to the system. Users want to log into the Hire
Tutors Website by Facebook account.
Relationship:
+Association: Tutors, Parents- Log in by Facebook
+Include: None
+Extend: Forgot Password.
+Generalization: None
Normal flow:
1. The user selects log in by Facebook account.
2. System prompts user to Facebook
3. System displays a Facebook log in form that allow user to fill in
4. User input Email or phone number and password
5. Facebook validates the input and logs the user into the user’s main page of Hire
Tutors Website.
6. The system displays the user’s main page and the use case ends.
Brief description: Valid users signed in to the system. Users want to log into the Hire
Tutors Website by username.
Relationship:
+Association: Tutors- Login by username.
+Include: None
+Extend: Forgot Password.
+Generalization: None
Normal flow:
1. The user selects log in by username.
2. System prompts user to username.
3. System displays a form that allow user to fill in
4. User input username and password
5. The system validates the entered name and password and logs the user into the
system.
6. The system displays the user’s main page and the use case ends.
Alternate/Exceptional flows: If in the basic flow the system cannot find the username or
the password is invalid, the system describes the reasons why the user failed
authentication.The system prompt the user to re-enter the valid information, request for
password reset or choose to cancel the operation, at which point the use case ends.
Brief description: Valid users signed in to the system. Users want to log into the Hire
Tutors Website by Email account.
Relationship:
+Association: Tutors, Parents- Log in by Google account.
+Include: None
+Extend: Forgot Password.
+Generalization: None
Normal flow:
1. The user selects log in by Email account.
2. System prompts user to Email.
3. System displays a Email log in form that allow user to fill in.
4. User input Email or phone number and password.
5. Facebook validates the input and logs the user into the user’s main page of Hire
Tutors Website.
6. The system displays the user’s main page and the use case ends.
Brief description: Valid users signed in to the system. Users have lost their password to
log in and request a new one.
Relationship:
+Association: Tutors, Parents- Forgot Password
+Include: Create new password.
+Extend: None.
+Generalization: None
Normal flow:
1. The use case starts when the user clicks “Forgot Password” on the form.
2. System displays a form that requests user input email or phone number.
3. User input Email or phone number.
4. Systems validate the input and send a code to the user’s email or phone number.
5. Users input the code that they just received to the verification form.
6. System verifies that the credentials that are supplied through email or phone
number are valid.
7. System move to create a new password form.
Relationship:
+Association: Tutors, Parents- Create new password
+Include: None
+Extend: None
+Generalization: None
Normal flow:
1. The use case starts when the system confirms a code is valid .
2. System displays a form that requests user input a new password twice.
3. User enters a new password and requests that the system saves the entered
values.
4. System updates the password of an existing account with the new value that is
supplied by the user.
5. The use case ends.
Alternate/Exceptional flows: At any time, the user may choose to cancel the password
creation. At which point, the processing is discontinued, the user password remains
unchanged, and the user is notified that the account management request has been canceled.
3. Use case 3
Use Case: Searching for tutors ID: U008
Brief description: Valid customer logged on to the system. They want to find tutor
information based on three conditions.
Trigger: Customer
Type: <external/internal>
Relationship:
+Association: Pảent– Searching for tutors
+Include: Log in, Sign in
+Extend: Choose grade, choose subject, choose province
+Generalization: None
Normal flow:
1. Include “Login” and “Sign in”.
2. The system displays the tuition payment interface
Sub 1: If the parents choose not full 3 extend part, the system will filter the
remaining qualified tutor to output on the screen
Sub 2: If the name of tutor input is valid the system will display name of
tutors available on the screen
Sub 3: If information is valid. Then show the name of the tutor on the
screen. The name of the tutor is sorted by user rating.
3. The tutor is shown on the screen
Sub 1: The customer can see the tutor information by pressing the
view
button displayed on the screen if the tutor is still have available grade, the
customers can register for this grade. Otherwise, it will not be able to
register.
Alternate/Exceptional flows:
1. If three conditions is empty the report as it not found and request parent to choose
again
2. If the name of tutor is invalid, the report is request parent to enter name of tutor
again
4. Pay tuition
Trigger: Parents
Type: external
Relationship:
+Association: Parents - Choose Subject to pay
+Include: Log in
+Extend: Pay by bank, pay by cash
+Generalization: None
Normal flow:
1. Include “Log in”.
2. The system displays the tuition payment interface.
3. Parents choose the subject to pay and click the pay button.
4. Parents select payment methods:
Sub 1: If parents choose to pay by cash then the system shows a guideline of
how to pay by cash.
Sub 2: If parents choose to pay by the bank then the system shows a form to
input the information of the bank account. After that, the system shows the
code of the transaction.
5. Modify the status from unpaid to fully paid if the transaction is
successful.
Exceptional flows:
1. If the parent bank account information is incorrect, the system will print an error
message and ask the parent to re-enter the information until it is correct.
2. If the parent has not paid the full tuition fee, the system will print a reminder that
the tuition fee is not enough and ask the parent to transfer it back. Modify the status
from unpaid to not enough.
3. Nonfunctional Requirements
1. Performance
Timing requirements: The time allowed for the system to response to the information
that has received to the processing request from the user is 3 seconds and 5 seconds at the
latest.; the time allow to fully display the static portal is 3 seconds The time allowed to send
informational search results is 10 (s);
Maximum capacity: The ability to guarantee the simultaneous access of 200 service
users; ensure the ability to execute 10 transactions/second; ensure that at least 90% of
transactions are successful/per minute.
3.3.2 Reliability
Availability: The availability of system should be at 99% year-on-year, excluding the
planned maintenance time; the unavailable time of system must be less than 1
hour/month excluding the system maintenance time;
Resilience: in any event (data, physical server, application server), the time allowed
for the system to recover to the normal operation is 4(h);
3.3.3 Safety and Security
Security: the level to which a system ensures the data access is allowed only for the
correspondingly authorized objects.
Parents have the right to login, register as well as pay tuition fees, search for
tutor’s name and also update personal information such as address, phone number
When registering an account as a tutor, they will be granted the right to update
and change personal information as well as uploading some personal certificates for increased
reliability
Integrity: This web does not allow the username and password to be transmitted over
the network environment without being encrypted.
Portability: The system supports hardware platforms of some popular vendors such as
IOS, HP, Dell ...; The system supports hardware platforms of some popular vendors
such as Mac, HP, Dell ...; Supports displacement from a platform running on Linux to
a platform running on Windows Server easily and do not incur additional costs or
insignificant funds.
Adaptability: The system supports multi-channel access with different display screen
sizes, such as supporting access through personal computers, smartphones Minh,
mobile device,....Database tables allow field expansion attributes up to 50 fields.
4.2 Description
From the illustration, the client side includes users: parents and tutors. They can use
desktops, laptops or smartphones to access the website through browsers such as
Chrome, Microsoft Edge. The main components of the application architecture is the
server side. The server side retrieves data from the client side through the Internet
network and stores these data in the database.
The third side includes Digital Bank and Google map are integrated in the database. The
Digital Bank account will be used for payment and the Google Map will be used for
indicate the location of teaching address.
5. Data design
5.1 Data Description
5.1.1 Conceptual Data Model
-PARENT entity
PID: Parent’s ID
PNAME: Parent’s name
PPHONE: Parent’s phone number
PADDRESS: Parent’s address
-HIRE entity
PID: Parent’s ID
TID: Tutor ID
SID: Student ID
DSTART, DEND: Day start, day end
TIME AMOUNT: Time for whole course
S-TUTOR entity
TID: Tutor’s ID
TNAME: Tutor’s name
TDoB: Tutor’s day of birth
TADDRESS: Tutor’s address
TCERTIFICATION: Tutor’s certificate
TGENDER: Tutor’s gender
Since the PROVINCE entity is connected to the TUTOR, the TID will be displayed at the top
of the entity and the next, we have 63 province of VietNam
-SUBJECT entity
SID: Subjectt’s ID
SNAME: Subject’s name
SGRADE: Subject’s grade
-TEACH entity
TEACH entity is an intermediary entity between SUBJECT and TUTORS so we have
SID and TID at the top
Number_Acccount: Tutors’s number account
6. Detailed Design
6.1 Sign in
1 Form
Data to be used: list the tables in a database or the data structures needed by this
function.
No. Table name / Method
Data
structure Add Modify Delete Query
1 Full name x
2 Gender x
3 Role x
4 Day of birth x
5 Month of birth x
6 Year of birth x
- Process: describe the algorithm for each event via diagrams (flowchart) < 1.1 >
1 Form
1 Email x
2 Phone x
1 Form
1 City x
No. Table name / Method
Data
structure Add Modify Delete Query
2 District x
3 Ward x
4 Address x
1 Form
1 Certification x
2 Certification’s file x
Controller type Default value Note
No.
1 Form
1 Username x
2 Password x
No. Controller Default value Note
type
1 Form
1 SMS Message x
2 Email x
No. Controller Default value Note
type
1 Form
1 Verification code x
2 Verify x
Controller type Default value Note
No.
1 Form
1 Go to home page x
6.2 Log in
1 Form
- Data to be used: list the tables in a database or the data structures needed by this
function.
1 Login x
2 Username x
3 Password x
- Process: describe the algorithm for each event via diagrams (flowchart) < 1.1 >
1 Form
- Data to be used: list the tables in a database or the data structures needed by this
function.
No. Table name / Method
Data
structure Add Modify Delete Query
1 Email x
2 Phone number x
3 Password x
- Process: describe the algorithm for each event via diagrams (flowchart) < 1.1 >
1 Form
- Data to be used: list the tables in a database or the data structures needed by this
function.
No. Table name / Method
Data
structure Add Modify Delete Query
1 Password x
1 Form
1 Code x
2 Verify x
- Process: describe the algorithm for each event via diagrams (flowchart) < 1.1 >
1 Form
- Data to be used: list the tables in a database or the data structures needed by this
function.
1 Home page x
- Process: describe the algorithm for each event via diagrams (flowchart)
6.3 Searching tutor
7 Text box Searching follow Enter name’s tutor and it does not necessarily
name accompany the above 3 conditions
1 Province x
2 Subject
x
3 Grade x
1 Form
2 Button Pay Click to open the tuition payment interface.
3 Button Not It means that the tuition fee paid for the subject is not
enough.
1 Form
1 Form
2 Textbox Enter OTP code Paste the copied OTP or enter from the
here… keyboard.
1 Form
1 Form
- Data to be used: list the tables in a database or the data structures needed by this
function.
1 Subjects x
2 Tutors x
3 Pay x
- Process: describe the algorithm for each event via diagrams (flowchart) < 1.1 >
7. Test Case
Test Check if the input information are valid or not. Check the verification
description code to create account
Pre-requisite: None
Post-requisite: None
T001_T
C03 1234 Wrong Wrong No
code. code.
Please Please
check check
again again
T001_T
C04 Anothe Anothe Yes
r code r code
has has
been been
sent sent
T001_T
C04 Ung nhu.ct@gmail 0912345 57 3456 Create Create Yes
Kha .com 678 CMT accoun accoun
nh 8, t t
Nhu P.An succee succee
Thoi, ded ded
Q.Bi
nh
Thuy
,
TPC
T
Test Check an existing account (username and password) to logs into the
description Hire Tutors Website.
Date of 9/4/2023
creation:
Pre-requisite: None
Post-requisite: None
Pre-requisite: None
Post-requisite: None
Flow graph
T003_TC0
3 Tran Tran Van A Tran Van A Yes
Van A
Test description Pay tuition with two methods: bank and cash.
Date of 27-03-2023
creation:
Post-requisite: None
T004_TC0
3 Ban Agribank 223322 32f329 Ask Ask failure
k reinput reinput
(Limit OTP OTP
time > code code
0)
T004_TC0
5 Ban TP bank 9998798A Ask Ask failure
k reinput reinput
Account Account
number number
# Test Case Input Data Expecte Actual Status
d Output Output
p bank name account OTP
number code