0% found this document useful (0 votes)
17 views77 pages

Support Management and Provide Travel Services System-DesignDocument

Uploaded by

Saphine
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views77 pages

Support Management and Provide Travel Services System-DesignDocument

Uploaded by

Saphine
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 77

Support Management and provide

travel services system


Software Design Document

SE1704-NETG6

Project Code MyTravel

Document Code SE1704-NETG6 - v1.0

Group Member Dương Trung Hiếu - HE 153278

Đỗ Trung Hiếu - HE 153215

Nguyễn Đức Anh - HE 172449

Supervisor Mr. Nguyễn Văn Sang

– Hanoi, May 2023 –

I. Overview
1. Database Design
II. Code Designs
1. Login
a. Screen Design
c. Class Specifications
d. Sequence Diagram(s)
2. Register
a. Screen Design
b. Class Diagram
c. Class Specifications
d. Sequence Diagram(s)
3. Change Password
a. Screen Design
b. Class Diagram
c. Class Specifications
AccountDAO Class
d. Sequence Diagram(s)
4. Forgot password
a. Screen Design
b. Class Diagram
c. Class Specifications
d. Sequence Diagram(s)
5. View profile details
a. Screen Design
b. Class Diagram
c. Class Specifications
d. Sequence Diagram(s)
6. Update Profile
a. Screen Design
b. Class Diagram
c. Class Specifications
d. Sequence Diagram(s)
7. View List Profile
a. Screen Design
b. Class Diagram
c. Class Specifications
d. Sequence Diagram(s)
8. Logout
a. Screen Design
b. Class Diagram
c. Class Specifications
d. Sequence Diagram(s)
9. View Restaurant Detail
b. Class Diagram
c. Class Specifications
d. Sequence Diagram(s)
10. Edit a Restaurant
Screen Design
Class Diagram
Class Specifications
Sequence Diagram(s)
11. View List Vehicle
Screen Design
Class Diagram
Class Specifications
Sequence Diagram(s)
a. Screen design
12. Add a Vehicle
a. Screen Design
b. Class Diagram
c. Class Specifications
d. Sequence Diagram(s)
13. Edit a Vehicle
a. Screen Design
b. Class Diagram
c. Class Specifications
d. Sequence Diagram(s)
14.View List Staff
a. Screen Design
b. Class Diagram
c. Class Specifications
d. Sequence Diagram(s)
15. View Staff Detail
a. Screen design
b. Class Diagram
c. Class Specifications
d. Sequence Diagram(s)
16. Add a Staff
a. Screen Design
b. Class Diagram
c. Class Specifications
d. Sequence Diagram(s)
17. Search Tour
a.Screen Design
b.Class Diagram
c. Class Specifications
d. Sequence Diagram(s)
18. Book Tour
a.Screen Design
b.Class Diagram
c. Class Specifications
d. Sequence Diagram(s)
19. Create Tour
a.Screen Design
b.Class Diagram
c. Class Specifications
d. Sequence Diagram(s)
20. View Tour List
a.Screen Design
b.Class Diagram
c. Class Specifications
d. Sequence Diagram(s)
21. View Booking List
a.Screen Design
b.Class Diagram
c. Class Specifications
d. Sequence Diagram(s)
22. Add Hotel Info
a.Screen Design
b.Class Diagram
c. Class Specifications
d. Sequence Diagram(s)
23. View List Hotel
a.Screen Design
b.Class Diagram
c. Class Specifications
d. Sequence Diagram(s)

I. Overview
1. Code Packages/Namespaces

Package descriptions & package class naming conventions

No Package Description

01 BackEnd It handles requests from the frontend and performs complex


operations, including user authentication, session state
management, database manipulation, and logic processing.

02 FrontEnd The frontend is the part of the application responsible for


displaying the user interface and interacting directly with the
user. It is where users interact with the application, enter data,
perform actions, and see the results.

2. Database Design

2.1 Database Schema


Table Description

No Table Description
01 User - The "User" table stores information about the users
of the system.
- Primary key: email
- Foreign key: tour_id references Tour(id)
booking_id references Booking(id)

02 Tour - The "Tour" table represents various tour packages


available in the system
- Primary key: id
- Foreign key: hotel_id references Hotel(id)
Restaurant_id references Restaurant(id)
Vehicle_id references Vehicle(id)
Staff_id references Staff(id)
03 Hotel - The “Hotel” table contains information about various
hotels, including their names, addresses, contact
details, facilities, and other relevant information.
- Primary key: id
04 Booking - The "Booking" table represents individual bookings
made by users for hotel accommodations.
- Primary key: id
- Foreign key: email references User(email)
tour_id references Tour(id)
Hotel_id references Hotel(id)
Vehicle_id references Vehicle(id)
Restaurant_id references Restaurant(id)
05 Restaurant - The "Restaurant" table stores information related to
the restaurants owned or operated by the business.
- Primary key: id
06 Vehicle - The "Vehicle" table stores information about vehicles
used for tours or transportation services offered by
the travel management system
- Primary key: id
07 Staff - The "Staff" table contains information about the staff
members employed by the travel management
system, such as tour guides, drivers, and
administrative personnel.
- Primary key: id
08 Feedback - The "Feedback" table is used to collect feedback
from travelers who have used the services provided
by the travel management system.
- Primary key: email
II. Code Designs
1. Login
a. Screen Design
Object/Control
Type Required Description
No Name Length

1
username <input> Not empty 30
Your username

2
password <input> Not empty 30
Your password

Click button to
3
Sign in <button> x
x login

Click if you
4
Forgot Password <a> x
x
want to reset
password

Click if you want


Change Password <a> x to change
5 x
password

Click if you want


Remember me <checkbox> x to remember
6 x
password

Click if you want


Login with google button x login with google
7 x
account

Click if you want


Login with x
8 button x login with
FaceBook
FaceBook

x
Click if you want
9 Sing up button x to signup account
b. Class Diagram

c. Class Specifications
LoginManual

No Method Description

01 HandleLoginReq The LoginManual class represents the login


uest(data: information from the user side. It includes two
LoginManual): properties Email and Password to store email
Task<ActionRes and password sent from the user side.
ult<SampleData
Model>>

d. Sequence Diagram(s)
2. Register
a. Screen Design
Object/Control Type Require Description
No Name d Length

Image Not empty Upload Image


1

First Name <input> Not empty Enter your first


2 30 name

Last Name <input> Not empty Enter your last


3 30 name

Gender radio Not empty Choose gender


4

Phone Number <input> Not empty Input Phone


5 10 Number

Role dropdown Not empty Select


6 Role(Touris or
Agents)

email <input> Not empty Enter email


7 30

password <input> Not empty Enter password


8 30
re_password <input> Not empty Enter
9 30 re_password

close <button> Click button to


10 close

Sign up <button> Click button to


11 login

b. Class Diagram

c. Class Specifications

AccountDAO Class

No Method Description

1 CheckRegister( Show the form register after click on register


) button

Check validate to decide register fail or


success

RegisterController Class

No Method Description
01 handleRequest() Process User Register Account

02 HttpGet() Run processRequest()

03 HttpPost() Run processRequest()

d. Sequence Diagram(s)

3. Change Password

a. Screen Design
Object/Control Type Required Description
No Name Length

Email <input> Not empty Enter email


1 50

Old Password <input> Not empty Enter old


2 30 password

New Password <input> Not empty Enter new


3 30 password

Repeat Password <input> Not empty Enter


4 30 re_password

b. Class Diagram
c. Class Specifications

AccountDAO Class

No Method Description

1 -Show the form register after click on


ChangePassword()
change password in side edit profile in
home screen

-Check validate to decide change password


fail or success

LoginController Class

No Method Description

01 processRequest() Process User changePassword

02 doGet() Run processRequest()

03 doPost() Run processRequest()

4. Forgot password
a. Screen Design

Object/Control Type Require Description


No Name d Length

Email input Yes


1 100

Send new pass button


2

b. Class Diagram

c. Class Specifications

UserController
No Method Description

1 checkUser() - Check if email exists in the User table

- Table:User

- Criteria: email = email

- Exception:If return empty table then return null

LoginController Class

No Method Description

01 processRequest() Process User ResetPassword

02 doGet() Run processRequest()

03 doPost() Run processRequest()

5. View profile details


a. Screen Design
Object/Control Type Require Description
No Name d Length
UserID <th> View userID
1

AccountID <th> View AccountID


2

Name <th> View Name


3

Phone <th> View Phone


4

Email <th> View Email


5

Gender <th> View Gender


6

CMT <th> View CMT


7

b. Class Diagram
c. Class Specifications

UserDAO class

No Method Description

01 ViewProfileCustomer() print out all customer information

d. Sequence Diagram(s)
6. Update Profile
a. Screen Design

Object/Control Type Require Description


No Name d Length
Name <input> x Your name
1 30

Image <input> x picture


2 x

Email <input> Not empty Your email


3 30

Phone <input> Not empty Your phone


4 30

Cmt <input> x Your ID card


4 12

Address <input> x Your address


4 50

b. Class Diagram

c. Class Specifications

UserDAAO class

No Method Description

01 editReceptionnist() Change the personal information of the


receptionist

LoginController class
No Method Description

01 processRequest() Process User ResetPassword

02 doGet() Run processRequest()

03 doPost() Run processRequest()

d. Sequence Diagram(s)

7. View List Profile


a. Screen Design

Object/Control Type Require Description


No Name d Length

Name <input> x Your name


1 30

Image <input> x picture


2 x

Email <input> Not empty Your email


3 30

Phone <input> Not empty Your phone


4 30

RoleID <input> x Your ID card


5 12

Action button x Your address


6 50

b. Class Diagram
c. Class Specifications

UserDAO class

No Method Description

01 editReceptionnist() Change the personal information of the


receptionist

LoginController class

No Method Description

01 processRequest() Process User ResetPassword

02 doGet() Run processRequest()

03 doPost() Run processRequest()

d. Sequence Diagram(s)
8. Logout
a. Screen Design

Object/Control Type Require Description


No Name d Length
Logout button x Logout
1

b. Class Specifications

UserDAO class

No Method Description

01 editReceptionnist() Change the personal information of the


receptionist

LoginController class

No Method Description

01 processRequest() Process User ResetPassword

02 doGet() Run processRequest()

03 doPost() Run processRequest()

c. Sequence Diagram(s)
9. Feedback
a. Screen Design

Object/Control Type Require Description


No Name d Length

Logout button x Logout


1

10. View List Feedback


a. Screen Design

Object/Control Type Require Description


No Name d Length

b. Class Specifications

UserDAO class

No Method Description

LoginController class
No Method Description

11. View List Restaurant

a. Screen Design

Object/Control Type Require Description


No Name d Length
Name <input> x Restaurant’s name
1 50

Image <input> x Restaurant’s picture


2 Max

Description <input> Restaurant’s note


3 50

Address <input> x Restaurant’s address


4 100

Phone <input> x Restaurant’s phone


5 10

Price <input> x Average price per


6 50 dish

Rate <input> x Rate star on


7 1 Restaurant

b. Sequence Diagram(s)

12. View Restaurant Detail


a. Screen design

b. Sequence Diagram(s)

13. Add a Restaurant

a. Screen Design
Object/Control Type Require Description
No Name d Length

Name <input> x Enter Restaurant’s


1 50 name

Image <input> x Upload Restaurant’s


2 Max picture

Description <input> Enter Restaurant’s


3 50 note

Address <input> x Enter Restaurant’s


4 100 address

Phone <input> x Enter Restaurant’s


5 10 phone

Price <input> x Enter Average price


6 50 per dish
Rate <input> x Choose Rate star on
7 1 Restaurant

b. Class Diagram
c. Sequence Diagram(s)

14. Edit a Restaurant

a. Screen Design
Object/Control Type Require Description
No Name d Length

Name <input> x Enter Restaurant’s


1 50 name

Address <input> x Enter Restaurant’s


2 100 address

Phone <input> x Enter Restaurant’s


3 10 phone

Price <input> x Enter Average price


4 50 per dish

Rate <input> x Choose Rate star on


5 1 Restaurant

Description <input> Enter Restaurant’s


6 50 note

b. Class Diagram
c. Sequence Diagram(s)

15. View List Vehicle

a. Screen Design

Object/Control Type Require Description


No Length
Name d
Name <input> x Vehicle’s name
1 50

Type <input> x Vehicle’s type


2 50

Price <input> x Car rental price


3 50

Image <input> x Vehicle’s picture


4 Max

Rate <input> x Rate star on Vehicle


5 1

Description <input> Vehicle’s note


6 50

b. Class Diagram
c. Sequence Diagram(s)

16. View Vehicle Detail

a. Screen design
b. Sequence Diagram(s)

17. Add a Vehicle

a. Screen Design
Object/Control Type Require Description
No Name d Length

Name <input> x Enter Vehicle’s


1 50 name

Type <input> x Choose Vehicle’s


2 50 type

Price <input> x Enter Car rental price


3 50

Image <input> x Upload Vehicle’s


4 Max picture

Rate <input> x Choose Rate star on


5 1 Vehicle

Description <input> Enter Vehicle’s note


6 50

b. Class Diagram
c. Sequence Diagram(s)

18. Edit a Vehicle

a. Screen Design
Object/Control Type Require Description
No Name d Length

Name <input> x Enter Vehicle’s


1 50 name

Type <input> x Choose Vehicle’s


2 50 type

Price <input> x Enter Car rental price


3 50

Rate <input> x Choose Rate star on


4 1 Vehicle

Description <input> Enter Vehicle’s note


5 50

b. Class Diagram
c. Sequence Diagram(s)

19.View List Staff

a. Screen Design
Object/Control Type Require Description
No Name d Length

Name <input> x Staff’s name


1 50

Phone <input> x Staff’s phone


2 10

Image <input> x Staff’s picture


3 Max

Email <input> x Staff’s email


4 50

roleStaff <input> x Role of Staff


5 50

Rate <input> x Rate star on Staff


6 1

Description <input> Staff’s note


7 50

b. Class Diagram
c. Sequence Diagram(s)

20. View Staff Detail

a. Screen design
b. Class Diagram

c. Sequence Diagram(s)
21. Add a Staff

a. Screen Design

Object/Control Type Require Description


No Name d Length

Name <input> x Enter Staff’s name


1 50

Phone <input> x Enter Staff’s phone


2 10

Image <input> x Upload Staff’s picture


3 Max

Email <input> x Enter Staff’s email


4 50

roleStaff <input> x Choose Role of Staff


5 50

Rate <input> x Choose Rate star on


6 1 Staff

Description <input> Enter Staff’s note


7 50
b. Class Diagram

d. Sequence Diagram(s)
22. Edit a Staff
a. Screen Design

Object/Control Type Require Description


No Name d Length

Name <input> x Enter Staff’s name


1 50

Phone <input> x Enter Staff’s phone


2 10

Email <input> x Enter Staff’s email


3 50

roleStaff <input> x Choose Role of Staff


4 50

Rate <input> x Choose Rate star on


5 1 Staff

Description <input> Enter Staff’s note


6 50

b. Sequence Diagram(s)
23. Search Tour

a.Screen Design

Object/Control Type Require Description


No Name d Length
Enter Name <input> x Enter Tour’s name
1 50

Search <button> x Search Tour’s


2 N/A

Image <image> x Display image


3 Max

Tour Name <text> x Display Tour’ name


4 50

Description <text> x Display Tour’s


5 200 description

View Detail <button> x Display tour’s detail


6 N/A

b.Class Diagram

c. Class Specifications

TourControllers Class
No Method Description

01 SearchTour() searchValue: SearchValue: A private attribute that


holds the search criteria for tours

getSearchValue():List<Tour>: A public method that


returns a list of tours matching criteria

02 GetTours() Return a list of tours matching criteria

d. Sequence Diagram(s)
24. Book Tour

a.Screen Design
b.Class Diagram

c. Class Specifications
No Method Description

01 Booking() Allow tourist to create new Booking object

02 BookingConfirm Confirms the booking, indicating that has been


successfully processed

d. Sequence Diagram(s)
25. Create Tour

a.Screen Design

b.Class Diagram
c. Class Specifications

No Method Description

01 createTour() Allow admin to create new tour

02 Tour Return new list of tour

d. Sequence Diagram(s)
26. View Tour List

a.Screen Design

b.Class Diagram
c. Class Specifications

No Method Description

01 viewTourList() Allow tourist to view list tour

d. Sequence Diagram(s)
27. View Booking List

a.Screen Design

b.Class Diagram

c. Class Specifications
No Method Description

01 viewBookingList() Allow travel agent to view booking list

d. Sequence Diagram(s)
28. Add Hotel Info

a.Screen Design
b.Class Diagram

c. Class Specifications

No Method Description

01 addHotelInfo() Allow travel agent/ admin to add hotel information

02 Hotel Display new list Hotel


d. Sequence Diagram(s)

29. View List Hotel

a.Screen Design
b.Class Diagram

c. Class Specifications

No Method Description

01 viewListHotel() Allow all user to see list of hotel


d. Sequence Diagram(s)

30. View List Tour History

a.Screen Design
b.Class Diagram

c. Class Specifications

No Method Description

01 getTourHistory() Allow all user to see tours booked

d. Sequence Diagram(s)
31. View Tour Details

a.Screen Design

b.Class Diagram
c. Class Specifications

No Method Description

01 getTourHistory() Allow all user to see tours booked

d. Sequence Diagram(s)
32. Edit Tour Details

a.Screen Design
b.Class Diagram
d. Sequence Diagram(s)

33. Edit Hotel Info

a.Screen Design
b.Class Diagram
d. Sequence Diagram(s)

34. View Detail Booking

a.Screen Design
b.Class Diagram

d. Sequence Diagram(s)

You might also like