Tải bản đầy đủ (.pdf) (142 trang)

Website du lịch và dịch vụ bán sản phẩm

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.96 MB, 142 trang )

BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỒ HỒ CHÍ MINH
KHOA CƠNG NGHỆ THƠNG TIN

BÁO CÁO KHĨA LUẬN TỐT NGHIỆP
ĐỀ TÀI
WEBSITE DU LỊCH VÀ DỊCH VỤ BÁN SẢN PHẨM
Chuyên ngành đào tạo: KỸ THUẬT PHẦN MỀM
Giảng viên hướng dẫn: ThS. NGUYỄN VĂN THẮNG
Lớp: DHKTPM12A
Họ và tên sinh viên 1: PHẠM THANH DUY
Mã số sinh viên 1: 16043751
Họ và tên sinh viên 2: TRỊNH ĐỨC DUY
Mã số sinh viên 2: 16018731

Thành phố Hồ Chí Minh, tháng 7 năm 2020


INDUSTRIAL UNIVERSITY OF HO CHI MINH CITY
FACULTY OF INFORMATION TECHNOLOGY

TRINH DUC DUY
PHAM THANH DUY

WEBSITE TRAVEL AND TRAVEL
PRODUCT SALE SERVICE
Major: Software engineer

Supervisor: MSc. Nguyen Van Thang

HO CHI MINH CITY, 2020




Title: WEBSITE TRAVEL AND TRAVEL PRODUCT SALE SERVICE.
Abstract:
- Reason for writing: Today, tourism services are very developing so attract many
people traveling in domestic and foreign tourist destinations. But most travelers do
not fully understand the basic information about the places in their travel as well
as to prepare the necessary equipment for the trip. In addition, travelers need to
have a forum where they can share travel experiences, photos, emotions when
traveling, evaluate travel destinations, travel products and products and plan travel
for yourself in the future. Therefore, building a website travel and travel product
sale service is a necessity for tourists today.
- Problems: Viewers can manage the cart and see information about tourist
destinations, products, review posts and comments. Members can login, create
account, update personal information, order products, view purchase history,
manage post, review places or products, create schedule, see the schedule created.
Admin can manage products, approve member posts, revenue statistics and
product selling statistics.
- Methods: Using HTML, CSS, JavaScript, Bootstrap combine with ReactJS
framework to create interface for website, NodeJS Platform to implement features
for website, database NoSQL MongoDB, Socket.io Library to perform real-time
interactions and deploying website on service cloud computing Heroku.
- Results: View introductory information about the tourist destinations, products,
review posts, comments, register a member, log in, manage the cart, order
products, review place or product, create and view schedule, update personal
information, search information about places, products, review posts, manage
(add, edit, delete) products, approve member posts, revenue statistics and product
selling statistics.
- Conclusion: Adding expansion operations: create collection, manage places,
integrating the services of renting hotels, renting tourist cars, booking air tickets,

train tickets, bus tickets and allow members participate in the schedules created.


LỜI CẢM ƠN
Website du lịch và dịch vụ bán sản phẩm là nội dung đề tài mà nhóm chúng
em đã chọn để nghiên cứu, phát triển cũng như là làm khóa luận tốt nghiệp sau 4 năm
theo học ngành Kỹ thuật phần mềm tại Khoa Công nghệ thông tin - Trường Đại học
Cơng nghiệp Thành phố Hồ Chí Minh.
Đầu tiên, nhóm em xin được gửi lời cảm ơn đến các Thầy, Cô Khoa Công
nghệ thông tin trường Đại học Công nghiệp Thành phố Hồ Chí Minh đã truyền đạt
những kiến thức chuyên ngành cũng như là những kỹ năng mềm để chúng em có
được những hành trang, trang bị đầy đủ nhất về các kiến thức để có thể thực hiện tốt
khóa luận tốt nghiệp cũng như là trên con đường sự nghiệp trong tương lai.
Ngoài ra, chúng em xin trân trọng cảm ơn thầy hướng dẫn ThS. Nguyễn Văn
Thắng – giảng viên bộ môn Kỹ thuật phần mềm, thầy đã tận tình hướng dẫn, chỉ bảo
nhóm trong q trình tìm hiểu, nghiên cứu cũng như trong việc hồn thành đề tài khóa
luận tốt nghiệp.
Tuy nhiên, do giới hạn kiến thức và khả năng lý luận của bản thân chúng em
cịn nhiều thiếu sót và hạn chế nên khơng thể hồn thành khóa luận một cách tốt nhất,
nhóm chúng em kính mong nhận được sự chỉ dẫn và đóng góp của các Thầy, Cơ để
bài khóa luận của nhóm chúng em được hoàn thiện hơn.
Cuối cùng, chúng em xin chân thành cảm ơn và gửi lời chúc sức khỏe tốt đẹp
nhất tới các Q Thầy, Cơ!
Tp. Hồ Chí Minh, ngày 01 tháng 7 năm 2020
Sinh viên thực hiện

Phạm Thanh Duy

Trịnh Đức Duy



Báo cáo khóa luận tốt nghiệp chuyên ngành Kỹ thuật phần mềm

NHẬN XÉT VÀ ĐÁNH GIÁ CỦA GIÁO VIÊN HƯỚNG DẪN
1. Thơng tin sinh viên làm khóa luận:
Họ và tên sinh viên 1: Phạm Thanh Duy
Mã số sinh viên 1: 16043751
Họ và tên sinh viên 2: Trịnh Đức Duy
Mã số sinh viên 2: 16018731
Khoa: Công nghệ thông tin
Chuyên ngành: Kỹ thuật phần mềm
Lớp: DHKTPM12A
2. Tên đề tài: Website du lịch và dịch vụ bán sản phẩm
3. Tổng quan về khóa luận:
Số chương: 4

Số trang: 125

Số bảng biểu: 36

Số hình vẽ: 118

Số tài liệu tham khảo: 11
4. Nhận xét (thái độ làm việc, kết quả đạt được, hạn chế):
……………………………………………………………………………………..
……………………………………………………………………………………..
……………………………………………………………………………………..
……………………………………………………………………………………..
……………………………………………………………………………………..
……………………………………………………………………………………..

……………………………………………………………………………………..


Báo cáo khóa luận tốt nghiệp chuyên ngành Kỹ thuật phần mềm

……………………………………………………………………………………..
……………………………………………………………………………………..
5. Đề nghị:
Được bảo vệ khóa luận trước bộ mơn:

Khơng được bảo vệ:

Tp. Hồ Chí Minh, ngày

tháng

năm 2020

Giảng viên hướng dẫn
(Ký và ghi rõ họ tên)


Báo cáo khóa luận tốt nghiệp chuyên ngành Kỹ thuật phần mềm

NHẬN XÉT VÀ ĐÁNH GIÁ CỦA GIÁO VIÊN PHẢN BIỆN
1. Thơng tin sinh viên làm khóa luận:
Họ và tên sinh viên 1: Phạm Thanh Duy
Mã số sinh viên 1: 16043751
Họ và tên sinh viên 2: Trịnh Đức Duy
Mã số sinh viên 2: 16018731

Khoa: Công nghệ thông tin
Chuyên ngành: Kỹ thuật phần mềm
Lớp: DHKTPM12A
2. Tên đề tài: Website du lịch và dịch vụ bán sản phẩm
3. Nhận xét (kết quả đạt được, hạn chế):
……………………………………………………………………………………..…
……….………………………………………………………………………….……
……………….……………………………………………………………….………
……………………….…………………………………………………….…………
……………………………….………………………………………….……………
………………………………………..………………………………………………
………………………………………………..………………………………………
………………………………………………………………….
4. Đề nghị:
Bảo vệ trước hội đồng:
Không được bảo vệ:

Đánh giá qua hình thức Poster:


Báo cáo khóa luận tốt nghiệp chuyên ngành Kỹ thuật phần mềm

Tp. Hồ Chí Minh, ngày

tháng

Giảng viên phản biện 1
(Ký và ghi rõ họ tên)

Giảng viên phản biện 2

(Ký và ghi rõ họ tên)

năm 2020


Báo cáo khóa luận tốt nghiệp chuyên ngành Kỹ thuật phần mềm

MỤC LỤC
CHƯƠNG 1 : GIỚI THIỆU ........................................................................................1
1.1 Tổng quan .........................................................................................................1
1.2 Mục tiêu đề tài ..................................................................................................2
1.3 Phạm vi đề tài ...................................................................................................2
1.4 Mô tả yêu cầu chức năng ..................................................................................4
CHƯƠNG 2 : CƠ SỞ LÝ THUYẾT ..........................................................................6
2.1 ReactJS [1] ........................................................................................................6
2.2 NodeJS [2] ........................................................................................................8
2.3 MongoDB [3] ..................................................................................................10
2.4 Cloud Computing với Heroku [4] ...................................................................12
CHƯƠNG 3 : PHÂN TÍCH VÀ THIẾT KẾ ............................................................14
3.1 Phân tích yêu cầu bằng UML .........................................................................14
3.1.1 Usecase tổng quát ....................................................................................14
3.1.2 Danh sách tác nhân và mô tả ...................................................................15
3.1.3 Danh sách các tình huống hoạt động (Use cases) ...................................15
3.1.4 Tình huống hoạt động..............................................................................17
3.2 Class diagram ..................................................................................................87
3.3 Deployment diagram.......................................................................................88
CHƯƠNG 4 : HIỆN THỰC VÀ KẾT LUẬN ..........................................................89
4.1 Chi tiết cài đặt cấu hình phần mềm ................................................................89
4.2 Giao diện của hệ thống ...................................................................................89
4.3 Test case ........................................................................................................102

4.3.1 Thử nghiệm chức năng Đăng nhập. ......................................................102
4.3.2 Thử nghiệm chức năng Tạo bài đăng. ...................................................104
4.3.3 Thử nghiệm chức năng Cập nhật thông tin cá nhân. .............................106
4.3.4 Thử nghiệm chức năng Tạo lịch trình cho chuyến đi............................109
4.3.5 Thử nghiệm chức năng Chọn mua sản phẩm và thanh toán. ................113
4.4 Kết luận .........................................................................................................122
4.4.1 Kết quả đạt được....................................................................................122
4.4.2 Hạn chế của đồ án .................................................................................123


Báo cáo khóa luận tốt nghiệp chuyên ngành Kỹ thuật phần mềm

4.4.3 Hướng phát triển ....................................................................................123
TÀI LIỆU THAM KHẢO .......................................................................................124
PHỤ LỤC ................................................................................................................125


Báo cáo khóa luận tốt nghiệp chuyên ngành Kỹ thuật phần mềm

DANH MỤC CÁC HÌNH VẼ
Hình 2.1. Nodejs Development ...................................................................................8
Hình 2.2. Cloud Computing với Heroku ...................................................................12
Hình 3.1. Sơ đồ use case tổng quát ...........................................................................14
Hình 3.2. Acivity diagram UC01_Đăng nhập...........................................................18
Hình 3.3. Sequence diagram UC01_Đăng nhập ......................................................19
Hình 3.4. Acivity diagram UC02_Đăng ký tài khoản...............................................21
Hình 3.5. Sequence diagram UC02_Đăng ký tài khoản ...........................................22
Hình 3.6. Activity diagram UC03_Tìm kiếm địa điểm ............................................24
Hình 3.7. Sequence diagram UC03_Tìm kiếm địa điểm ..........................................25
Hình 3.8. Activity diagram UC04_Xem danh sách địa điểm du lịch .......................26

Hình 3.9. Sequence diagram UC04_Xem danh sách địa điểm du lịch .....................27
Hình 3.10. Activity diagram UC05_Xem chi tiết thơng tin địa điểm .......................28
Hình 3.11. Sequence diagram UC05_Xem chi tiết thơng tin địa điểm.....................28
Hình 3.12. Activity diagram UC06_Tìm kiếm sản phẩm .........................................29
Hình 3.13. Sequence diagram UC06_Tìm kiếm sản phẩm .......................................30
Hình 3.14. Activity diagram UC07_Xem danh sách sản phẩm ................................31
Hình 3.15. Sequence diagram UC07_Xem danh sách sản phẩm ..............................31
Hình 3.16. Activity diagram UC08_Xem thơng tin sản phẩm .................................32
Hình 3.17. Sequence diagram UC08_Xem thơng tin sản phẩm ...............................33
Hình 3.18. Activity diagram UC09_Xem danh sách bài đăng .................................34
Hình 3.19. Sequence diagram UC09_Xem danh sách bài đăng ...............................34
Hình 3.20. Activity UC09.1_Xem nội dung bình luận .............................................35
Hình 3.21. Sequence diagram UC09.1_Xem nội dung bình luận .............................36
Hình 3.22. Activity UC10.1_Xem danh sách giỏ hàng ............................................37
Hình 3.23. Sequence diagram UC10.1_Xem danh sách giỏ hàng ............................37


Báo cáo khóa luận tốt nghiệp chuyên ngành Kỹ thuật phần mềm

Hình 3.24. Activity UC10.2_Thêm sản phẩm vào giỏ hàng .....................................39
Hình 3.25. Sequence diagram UC10.2_Thêm sản phẩm vào giỏ hàng ....................40
Hình 3.26. Activity UC10.3_Cập nhật giỏ hàng .......................................................42
Hình 3.27. Sequence diagram UC10.3_Cập nhật giỏ hàng ......................................43
Hình 3.28. Activity UC10.4_Xóa sản phẩm trong giỏ hàng .....................................44
Hình 3.29. Sequence diagram UC10.4_Xóa sản phẩm trong giỏ hàng ....................45
Hình 3.30. Activity UC11_Đặt hàng ........................................................................46
Hình 3.31. Sequence diagram UC11_Đặt hàng ........................................................47
Hình 3.32. Activity UC12_Thanh tốn sản phẩm .....................................................48
Hình 3.33. Sequence diagram UC12_Thanh tốn sản phẩm ....................................49
Hình 3.34. Activity diagram UC13.1_Đăng bài .......................................................50

Hình 3.35. Sequence diagram UC13.1_Đăng bài .....................................................51
Hình 3.36. Activity diagram UC13.3_Xóa bài đăng.................................................52
Hình 3.37. Sequence diagram UC13.3_Xóa bài đăng ..............................................53
Hình 3.38. Activity UC14_Tương tác bài đăng ........................................................54
Hình 3.39. Sequence diagram UC14_Tương tác bài đăng........................................54
Hình 3.40. Activity diagram UC15_Đánh giá điểm đến du lịch ..............................56
Hình 3.41. Sequence diagram UC15_Đánh giá điểm đến du lịch ............................56
Hình 3.42. Activity diagram UC16.1_Tạo lịch trình cho chuyến đi .........................59
Hình 3.43. Sequence diagram UC16.1_Tạo lịch trình cho chuyến đi ......................61
Hình 3.44. Activity diagram UC16.2_Xem lịch trình đã tạo ....................................62
Hình 3.45. Sequence diagram UC16.2_Xem lịch trình đã tạo ..................................62
Hình 3.46. Activity UC17_Xem lịch sử đặt/thanh tốn ............................................63
Hình 3.47. Sequence diagram UC17_Xem lịch sử đặt/thanh tốn ...........................64
Hình 3.48. Activity diagram UC18.1_Thêm sản phẩm ............................................65
Hình 3.49. Sequence diagram UC18.1_Thêm sản phẩm ..........................................66


Báo cáo khóa luận tốt nghiệp chuyên ngành Kỹ thuật phần mềm

Hình 3.50. Activity diagram UC18.2_Cập nhật sản phẩm .......................................68
Hình 3.51. Sequence diagram UC18.2_Cập nhật sản phẩm .....................................68
Hình 3.52. Activity diagram UC18.3_Xóa sản phẩm ...............................................69
Hình 3.53. Sequence diagram UC18.3_Xóa sản phẩm .............................................70
Hình 3.54. Activity diagram UC19.1_ Đánh giá sản phẩm ......................................71
Hình 3.55. Sequence diagram UC19.1_ Đánh giá sản phẩm ....................................72
Hình 3.56. Activity diagram UC20_Thống kê sản phẩm bán chạy ..........................73
Hình 3.57. Sequence diagram UC20_Thống kê sản phẩm bán chạy ........................74
Hình 3.58. Activity diagram UC21_Thống kê doanh thu .........................................75
Hình 3.59. Sequence diagram UC21_Thống kê doanh thu.......................................76
Hình 3.60. Activity diagram UC22_Duyệt bài đăng ................................................77

Hình 3.61. Sequence diagram UC22_Duyệt bài đăng ..............................................78
Hình 3.62. Activity diagram UC23_Gửi email thơng báo ........................................79
Hình 3.63. Sequence diagram UC23_Gửi email thơng báo ......................................80
Hình 3.64. Activity UC24_Liên kết ví điện tử paypal ..............................................81
Hình 3.65. Sequence diagram UC24_Liên kết ví điện tử paypal .............................81
Hình 3.66. Activity diagram UC25_Liên kết mạng xã hội .......................................83
Hình 3.67. Sequence diagram UC25_Liên kết mạng xã hội .....................................84
Hình 3.68. Activity diagram UC26_Cập nhật thơng tin cá nhân ..............................85
Hình 3.69. Sequence diagram UC26_Cập nhật thơng tin cá nhân ............................86
Hình 3.70. Class entity diagram ................................................................................87
Hình 3.71. Deployment diagram ...............................................................................88
Hình 4.1. Giao diện trang chủ ...................................................................................89
Hình 4.2. Giao diện đăng nhập..................................................................................90
Hình 4.3. Giao diện đăng ký tài khoản .....................................................................90
Hình 4.4. Giao diện xem danh sách địa điểm ...........................................................91


Báo cáo khóa luận tốt nghiệp chuyên ngành Kỹ thuật phần mềm

Hình 4.5. Giao diện trang cá nhân.............................................................................92
Hình 4.6. Giao diện xem chi tiết và bình luận bài đăng ............................................93
Hình 4.7. Giao diện tạo lịch trình ..............................................................................94
Hình 4.8. Giao diện chọn địa điểm vào lịch trình .....................................................95
Hình 4.9. Giao diện xem lịch trình đã tạo .................................................................96
Hình 4.10. Giao diện xem chi tiết lịch trình đã tạo ...................................................97
Hình 4.11. Giao diện xem chi tiết sản phẩm .............................................................99
Hình 4.12. Giao diện xem giỏ hàng ..........................................................................99
Hình 4.13. Giao diện xác nhận đặt hàng ...................................................................99
Hình 4.14. Giao diện xem lịch sử đặt/mua hàng .....................................................100
Hình 4.15. Giao diện trang cộng đồng ....................................................................101

Hình 4.16. Giao diện thử nghiệm chức năng Đăng nhập. .......................................102
Hình 4.17. Alert thơng báo ‘Tài khoản khơng tồn tại’. ...........................................103
Hình 4.18. Alert thơng báo ‘Sai mật khẩu’. ............................................................103
Hình 4.19. Thơng báo ‘Tài khoản và mật khẩu khơng được rỗng’. ........................104
Hình 4.20. Giao diện thử nghiệm chức năng Tạo bài đăng. ...................................104
Hình 4.21. Alert thơng báo ‘Ảnh khơng được để rỗng’. .........................................105
Hình 4.22. Thơng báo ‘File ảnh khơng hợp lệ’. ......................................................105
Hình 4.23. Thơng báo ‘Nội dung khơng được để trống’. .......................................106
Hình 4.24. Alert thơng báo ‘Bài đã đăng thành cơng’. ...........................................106
Hình 4.25. Giao diện thử nghiệm chức năng Cập nhật thông tin cá nhân. .............107
Hình 4.26. Thơng báo ‘Tên và email khơng được rỗng’. .......................................107
Hình 4.27. Alert thơng báo ‘Cập nhật thơng tin thành cơng’. ................................108
Hình 4.28. Giao diện thử nghiệm chức năng Tạo lịch trình cho chuyến đi (1). .....109
Hình 4.29. Giao diện thử nghiệm chức năng Tạo lịch trình cho chuyến đi (2). ....110
Hình 4.30. Alert thơng báo ‘Tên hành trình khơng rỗng’. ......................................111


Báo cáo khóa luận tốt nghiệp chuyên ngành Kỹ thuật phần mềm

Hình 4.31. Alert thơng báo ‘Bạn chưa chọn địa điểm’. ..........................................111
Hình 4.32. Alert thơng báo ‘Chưa chọn địa điểm cho ngày đã chọn’. ...................112
Hình 4.33. Alert thơng báo ‘Tạo lịch trình thành cơng’. ........................................113
Hình 4.34. Giao diện thử nghiệm chức năng Chọn mua sản phẩm. .......................114
Hình 4.35. Giao diện thử nghiệm Giỏ hàng khi đã đăng nhập và chưa đăng nhập.115
Hình 4.36. Giao diện thử nghiệm Xác nhận đơn đặt hàng. .....................................115
Hình 4.37. Giao diện thử nghiệm Xem lịch sử đặt/mua hàng. ...............................115
Hình 4.38. Alert thơng báo ‘Khơng tìm thấy thơng tin sản phẩm’. ........................116
Hình 4.39. Alert thơng báo ‘Xác nhận xóa sản phẩm’. ...........................................117
Hình 4.40. Alert cảnh báo ‘Số lượng sản phẩm khơng vượt q 10’. ....................118
Hình 4.41. Giao diện Thanh tốn bằng hình thức Paypal. ......................................119

Hình 4.42. Alert thơng báo ‘Hủy thanh tốn bằng hình thức Paypal’. ...................120
Hình 4.43. Alert thơng báo ‘Đã đặt hàng thành cơng’. ...........................................121
Hình 4.44. Alert thơng báo ‘Xác nhận hủy đơn hàng’. ...........................................121
Hình 4.45. Alert thơng báo ‘Xác nhận đơn hàng thành công’. ...............................121


Báo cáo khóa luận tốt nghiệp chuyên ngành Kỹ thuật phần mềm

DANH MỤC CÁC BẢNG BIỂU
Bảng 3.1 Danh sách tác nhân và mơ tả .....................................................................15
Bảng 3.2 Danh sách các tình huống trong hệ thống..................................................15
Bảng 3.3 Đặc tả use case UC01_Đăng nhập .............................................................17
Bảng 3.4 Đặc tả use case UC02_Đăng ký tài khoản .................................................19
Bảng 3.5 Đặc tả use case UC03_Tìm kiếm địa điểm................................................22
Bảng 3.6 Đặc tả use case UC04_Xem danh sách địa điểm du lịch ..........................25
Bảng 3.7 Đặc tả use case UC05_Xem chi tiết thông tin địa điểm ............................27
Bảng 3.8 Đặc tả use case UC06_Tìm kiếm sản phẩm ..............................................28
Bảng 3.9 Đặc tả use case UC07_Xem danh sách sản phẩm .....................................30
Bảng 3.10 Đặc tả use case UC08_Xem thông tin sản phẩm .....................................31
Bảng 3.11 Đặc tả use case UC09_Xem danh sách bài đăng .....................................33
Bảng 3.12 Đặc tả use case UC09.1_Xem nội dung bình luận ..................................34
Bảng 3.13 Đặc tả use case UC10.1_Xem danh sách giỏ hàng .................................36
Bảng 3.14 Đặc tả use case UC10.2_Thêm sản phẩm vào giỏ hàng ..........................38
Bảng 3.15 Đặc tả use case UC10.3_Cập nhật giỏ hàng ............................................40
Bảng 3.16 Đặc tả use case UC10.4_Xóa sản phẩm trong giỏ hàng ..........................43
Bảng 3.17 Đặc tả use case UC11_Đặt hàng..............................................................45
Bảng 3.18 Đặc tả use case UC12_Thanh toán sản phẩm ..........................................47
Bảng 3.19 Đặc tả use case UC13.1_Đăng bài...........................................................49
Bảng 3.20 Đặc tả use case UC13.3_Xóa bài đăng ....................................................51
Bảng 3.21 Đặc tả use case UC14_Tương tác bài đăng .............................................53

Bảng 3.22 Đặc tả use case UC15_Đánh giá địa điểm ...............................................54
Bảng 3.23 Đặc tả use case UC16.1_Tạo lịch trình cho chuyến đi ............................56
Bảng 3.24 Đặc tả use case UC16.2_Xem lịch trình đã tạo .......................................61
Bảng 3.25 Đặc tả use case UC17_Xem lịch sử đặt/thanh toán .................................62


Báo cáo khóa luận tốt nghiệp chuyên ngành Kỹ thuật phần mềm

Bảng 3.26 Đặc tả use case UC18.1_Thêm sản phẩm................................................64
Bảng 3.27 Đặc tả use case UC18.2_Cập nhật sản phẩm...........................................66
Bảng 3.28 Đặc tả use case UC18.3_Xóa sản phẩm ..................................................68
Bảng 3.29 Đặc tả use case UC19.1_Đánh giá sản phẩm ..........................................70
Bảng 3.30 Đặc tả use case UC20_Thống kê sản phẩm bán chạy .............................72
Bảng 3.31 Đặc tả use case UC21_Thống kê doanh thu ............................................74
Bảng 3.32 Đặc tả use case UC22_Duyệt bài đăng ....................................................76
Bảng 3.33 Đặc tả use case UC23_Gửi email thông báo ...........................................78
Bảng 3.34 Đặc tả use case UC24_Liên kết ví điện tử paypal ...................................80
Bảng 3.35 Đặc tả use case UC25_Liên kết mạng xã hội ..........................................82
Bảng 3.36 Đặc tả use case UC26_Cập nhật thông tin cá nhân .................................84


Báo cáo khóa luận tốt nghiệp chuyên ngành Kỹ thuật phần mềm

CHƯƠNG 1: GIỚI THIỆU
1.1 Tổng quan
Ngày nay, xã hội ngày càng phát triển mạnh mẽ về mọi mặt, đặc biệt là công
nghệ thông tin, hầu hết các ứng dụng tin học đã được áp dụng trong mọi nghiên cứu
khoa học cũng như đời sống xã hội. Nó đã trở thành cơng cụ hữu ích để điều hành,
quản lý, lưu trữ và xử lý thông tin đem lại hiệu quả cao. Cùng với sự bùng nổ internet
toàn cầu cũng như sự phát triển khơng có điểm dừng của ngành cơng nghệ thông tin

với xã hội ngành du lịch cũng không ngừng phát triển đặc biệt là các dịch vụ du lịch
và bán sản phẩm du lịch.
Việt Nam nói riêng và cả thế giới nói chung đã được thiên nhiên ưu đãi ban tặng
cho rất nhiều danh lam thắng cảnh cũng như là các địa điểm du lịch đẹp, hấp dẫn, đa
dạng và phong phú. Hiện nay trên thực tế dịch vụ du lịch đang rất phát triển vì thế
thu hút được nhiều người đi du lịch ở các điểm du lịch trong và ngoài nước. Nhưng
hầu hết những người đi du lịch chưa nắm bắt được đầy đủ các thông tin cơ bản về
những địa điểm trong chuyến du lịch của mình cũng như là để chuẩn bị các đồ dùng
cần thiết, thiết yếu trong chuyến đi du lịch. Vì thế sẽ gây ra tâm lý hoang mang và bỡ
ngỡ cho chuyến đi du lịch của mình. Trước những yêu cầu thực tế đó việc xây dựng
một website du lịch và dịch vụ bán sản phẩm du lịch là nhu cầu cần thiết đối với
khách du lịch hiện nay.
Website du lịch và dịch vụ bán sản phẩm du lịch tuy khơng cịn mới mẻ nhưng
vẫn rất cần thiết để cải thiện ngành du lịch hiện nay ngày càng phát triển hơn. Nhờ
vào hệ thống website khách du lịch có thể tiếp cận các thông tin cơ bản về những địa
điểm du lịch cũng như là chuẩn bị các vật dụng cần thiết cho chuyến đi của mình một
cách nhanh chóng. Thơng qua hệ thống website khách du lịch cũng có thể đăng bài,
bình luận và đánh giá địa điểm trong chuyến du lịch của mình để chia sẻ kinh nghiệm
hoặc khi khách du lịch đó có hiểu biết về địa điểm đó. Từ những chuyến đi và kinh
nghiệm thực tế được các khách du lịch chia sẻ từ đó bạn cũng có thể dễ dàng tạo lịch

Phạm Thanh Duy - 16043751
Trịnh Đức Duy - 16018731

1


Báo cáo khóa luận tốt nghiệp chuyên ngành Kỹ thuật phần mềm

trình cho chuyến đi của mình ngay trên website. Ngồi ra khách du lịch cũng cịn có

thể mua các đồ dùng cần thiết cho chuyến đi du lịch và thanh tốn các đồ dùng đó
thơng qua website.
Thơng qua website thì việc quản lý các địa điểm và sản phẩm dịch vụ cũng dễ
dàng được quản lý hơn. Việc website cho phép thống kê được các địa điểm được yêu
thích nhất, các sản phẩm dịch vụ được bán chạy nhất và doanh thu thu được từ việc
bán sản phẩm sẽ giúp cho chúng ta có những chiến lược kinh doanh phù hợp hơn.
Vì thế tài liệu này sẽ trình bày, phân tích chi tiết về hệ thống website du lịch và
dịch vụ bán sản phẩm. Các chương được trình bày trong tài liệu nhằm mục đích làm
rõ hơn các lý thuyết và công nghệ cần thiết để xây dựng nên đề tài, các phân tích thiết
kế chi tiết và chi tiết cài đặt cấu hình phần mềm hệ thống sẽ giúp chúng ta đánh giá
được đề tài về độ bảo mật, sự ràng buộc và độ tin cậy của hệ thống.
1.2 Mục tiêu đề tài
-

Tạo ra website du lịch và dịch vụ bán sản phẩm cho phép người dùng nắm bắt

thông tin cơ bản và chuẩn bị đồ dùng cần thiết cho chuyến đi, đăng bài, tạo bộ sưu
tập, bình luận, tạo lịch trình các chuyến đi của chính mình.
-

Thơng báo thông tin địa điểm thông qua lịch được đặt sẵn thơng qua email.

-

Website có thêm dịch vụ mua sản phẩm liên quan, cần thiết cho chuyến đi du

lịch của mình.
1.3 Phạm vi đề tài
 Thực hiện các chức năng:
- Khách vãng lai:

+ Đăng nhập/Đăng ký.
+ Tìm kiếm và xem chi tiết thơng tin địa điểm.
+ Tìm kiếm và xem thông tin sản phẩm dịch vụ.
+ Xem bài đăng.
+ Xem nội dung bình luận.
Phạm Thanh Duy - 16043751
Trịnh Đức Duy - 16018731

2


Báo cáo khóa luận tốt nghiệp chuyên ngành Kỹ thuật phần mềm

+ Quản lý giỏ hàng (xem, thêm, xóa, cập nhật).
- Thành viên: thực hiện được các chức năng của khách vãng lai và thực hiện
thêm các chức năng:
+ Cập nhật thơng tin cá nhân.
+ Đặt/Thanh tốn sản phẩm dịch vụ.
+ Xem lịch sử đặt/thanh toán sản phẩm.
+ Quản lý bài đăng (đăng bài, xóa bài).
+ Tương tác bài đăng.
+ Đánh giá địa điểm/sản phẩm.
+ Tạo lịch trình các chuyến đi.
+ Xem lịch trình đã tạo.
- Admin (Quản lý): thực hiện được các chức năng của guest (khách vãng lai),
các chức năng của member (thành viên) và thực hiện thêm các chức năng:
+ Quản lý sản phẩm dịch vụ.
+ Thống kê sản phẩm được bán chạy nhất, doanh thu sản phẩm.
+ Duyệt bài đăng.
- Hệ thống:

+ Gửi email thông báo tạo lịch trình chuyến đi.
+ Tích hợp với các mạng xã hội (Facebook, Google).
+ Liên kết ví điện tử (Paypal).
+ Tạo công cụ Crawl Data các địa điểm, sản phẩm từ các trang khác.
 Thực hiện với các công nghệ:
- Front-end: Sử dụng HTML, CSS, JavaScript, Bootstrap kết hợp với
framework ReactJS để tạo giao diện cho website.
- Back-end: Sử dụng NodeJS Platform để thực hiện và triển khai các chức năng
cho website.
- Database: Sử dụng cở sở dữ liệu NoSQL MongoDB.

Phạm Thanh Duy - 16043751
Trịnh Đức Duy - 16018731

3


Báo cáo khóa luận tốt nghiệp chuyên ngành Kỹ thuật phần mềm

- Sử dụng Socket.io Library để thực hiện các tương tác trên thời gian thực.
- Triển khai website sử dụng dịch vụ điện tốn đám mây Heroku.
1.4 Mơ tả yêu cầu chức năng
-

Khách vãng lai: có thể vào trang website tìm kiếm các địa điểm du lịch. Có

thể chọn một địa điểm để xem thông tin chi tiết về khu vực, hình ảnh, mơ tả, các
điểm đến du lịch,… Ngồi ra, khách vãng lai cịn có thể nhìn thấy những bài đăng
của những người khác khi họ chia sẻ những kinh nghiệm và các đồ dùng cần thiết
về chuyến đi. Thơng qua những chia sẻ đó, khách vãng lai có thể dựa vào đó và

tìm kiếm những sản phẩm để xem qua và lựa chọn sản phẩm phù hợp cho chuyến
đi và thêm chúng vào giỏ hàng của mình. Trong trường hợp khách vãng lai muốn
mua thì cần phải đăng nhập vào hệ thống để thanh toán. Nếu chưa có tài khoản
đăng nhập thì họ có thể đăng ký tài khoản hoặc sử dụng liên kết mạng xã hội
(facebook, google) của mình để trở thành thành viên của website.
-

Thành viên: Sau khi trở thành thành viên của website, người dùng có thể thực

hiện các chức năng tạo lịch trình cho chuyến đi của mình. Lịch trình được tạo bao
gồm các thông tin cơ bản như tên chuyến đi, thời gian, điểm đến, điểm đi. Sau đó
lịch trình sẽ được thông báo qua gmail cho người dùng để tiện theo dõi, ngồi ra
người dùng cũng có thể coi trực tiếp lịch trình đã tạo ngay trên website. Để thực
hiện được việc mua sản phẩm trên website thì người dùng phải hồn tất việc thanh
tốn. Người dùng có thể thanh tốn bằng hai cách: thanh toán trực tiếp khi nhận
được hàng hoặc thanh toán qua cổng điện tử paypal, sau khi xác nhận đã nhận
được đơn hàng thì người dùng có thể đánh giá chất lượng của sản phẩm đó. Người
dùng có thể bình chọn đánh giá những địa điểm mà người dùng muốn đánh giá
trên website. Ngoài ra nếu người dùng muốn bày tỏ cảm xúc hoặc chia sẻ kinh
nghiệm của mình về chuyến đi người dùng có thể đăng bài chia sẻ lên website.
Những thành viên khác có thể xem các bài chia sẻ trên website và bình luận ý kiến

Phạm Thanh Duy - 16043751
Trịnh Đức Duy - 16018731

4


Báo cáo khóa luận tốt nghiệp chuyên ngành Kỹ thuật phần mềm


của mình về nội dung của người viết. Người dùng cũng có thể thực hiện cập nhật
thơng tin cá nhân của mình ngay trên website.
-

Admin: Thực hiện chức năng quản lý thông tin của các sản phẩm trên hệ thống

và duyệt bài đăng của các thành viên trên website. Bên cạnh đó cịn có chức năng
thống kê các sản phẩm bán chạy, doanh thu thu được trong ngày/tháng/năm.
-

System: Gửi thơng tin về lịch trình mà người dùng đã tạo đến gmail mà thành

viên đã đăng ký để dễ dàng theo dõi lịch trình chuyến đi của mình. Hệ thống cho
phép người dùng đăng nhập bằng tài khoản mạng xã hội thông qua các API của
trang mạng xã hội (facebook, google) cung cấp. Khi người dùng thực hiện thanh
toán bằng paypal thì hệ thống sẽ gọi đến cổng thanh tốn thơng qua API được
cung cấp để người dùng có thể thanh tốn. Bên cạnh đó cịn có các con bot tự
động crawl dữ liệu các địa điểm, sản phẩm từ các trang liên quan về website.

Phạm Thanh Duy - 16043751
Trịnh Đức Duy - 16018731

5


Báo cáo khóa luận tốt nghiệp chuyên ngành Kỹ thuật phần mềm

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 ReactJS [1]
ReactJS là một thư viện UI phát triển tại Facebook để hỗ trợ việc xây dựng

những thành phần (components) UI có tính tương tác cao, có trạng thái và có thể tái
sử dụng lại được.
Một trong những điểm hấp dẫn của ReactJS là thư viện này khơng chỉ hoạt động
trên phía client, mà cịn được render trên server và có thể kết nối với nhau. ReactJS
so sánh sự thay đổi giữa các giá trị của lần render này với lần render trước và cập nhật
ít thay đổi nhất trên DOM.
Virtual DOM: Cơng nghệ DOM ảo giúp tăng hiệu năng cho ứng dụng. Việc
chỉ node gốc mới có trạng thái và khi nó thay đổi sẽ tái cấu trúc lại toàn bộ, đồng
nghĩa với việc DOM tree cũng sẽ phải thay đổi một phần, điều này sẽ ảnh hưởng đến
tốc độ xử lý của ứng dụng. ReactJS sử dụng Virtual DOM (DOM ảo) để cải thiện vấn
đề này. Virtual DOM là một object Javascript, mỗi object chứa đầy đủ thông tin cần
thiết để tạo ra một DOM, khi dữ liệu thay đổi nó sẽ tính tốn sự thay đổi giữa object
và tree thật, điều này sẽ giúp tối ưu hoá việc re-render DOM tree thật. ReactJS còn
sử dụng cơ chế one-way data binding – luồng dữ liệu 1 chiều. Dữ liệu được truyền từ
parent đến child thông qua props. Luồng dữ liệu đơn giản giúp chúng ta dễ dàng kiểm
soát cũng như sửa lỗi. Với các đặc điểm ở trên, ReactJS dùng để xây dựng các ứng
dụng lớn mà dữ liệu của chúng thay đổi liên tục theo thời gian. Dữ liệu thay đổi thì
hầu hết kèm theo sự thay đổi về giao diện. Ví dụ như trên Facebook: Newsfeed của
bạn cùng lúc sẽ có các status khác nhau và mỗi status lại có số like, share, comment
liên tục thay đổi. Khi đó ReactJS sẽ rất hữu ích để sử dụng.
JSX: Là một dạng ngôn ngữ cho phép viết các mã HTML trong Javascript. JSX
có các đặc điểm sau:

Phạm Thanh Duy - 16043751
Trịnh Đức Duy - 16018731

6


Báo cáo khóa luận tốt nghiệp chuyên ngành Kỹ thuật phần mềm


+ Nhanh hơn (Faster): JSX thực hiện tối ưu hóa trong khi biên dịch sang mã
Javacsript. Các mã này cho thời gian thực hiện nhanh hơn nhiều so với một mã tương
đương viết trực tiếp bằng Javascript.
+ An toàn hơn (Safer): Ngược với Javascript, JSX là kiểu statically-typed,
nghĩa là nó được biên dịch trước khi chạy, giống như (Java, C++). Vì thế các lỗi sẽ
được phát hiện ngay trong quá trình biên dịch.
+ Dễ dàng hơn: JSX kế thừa dựa trên Javascript, vì vậy rất dễ dàng để cho các
lập trình viên Javascripts có thể sử dụng.
Components: ReactJS được xây dựng xung quanh các component, chứ không
dùng template như các framework khác. Trong ReactJS, chúng ta xây dựng trang web
sử dụng những thành phần (component) nhỏ. Chúng ta có thể tái sử dụng một
component ở nhiều nơi, với các trạng thái hoặc các thuộc tính khác nhau, trong một
component lại có thể chứa thành phần khác. Mỗi component trong ReactJS có một
trạng thái riêng, có thể thay đổi và ReactJS sẽ thực hiện cập nhật component dựa trên
những thay đổi của trạng thái. Mọi thứ ReactJS đều là component. Chúng sẽ giúp bảo
trì mã code khi làm việc với các dự án lớn. Một react component đơn giản chỉ cần
một method render. Có rất nhiều methods khả dụng khác, nhưng render là method
chủ đạo.
Props và State:
+ Props: giúp các component tương tác với nhau, component nhận input gọi
là props, và trả thuộc tính mơ tả những gì component con sẽ render. Props là bất biến.
+ State: thể hiện trạng thái của ứng dụng, khi state thay đổi thì component
đồng thời render lại để cập nhật giao diện.

Phạm Thanh Duy - 16043751
Trịnh Đức Duy - 16018731

7



Báo cáo khóa luận tốt nghiệp chuyên ngành Kỹ thuật phần mềm

2.2 NodeJS [2]

Hình 2.1. Nodejs Development
NodeJS là một nền tảng dựa vào Chrome Javascript runtime để xây dựng các
ứng dụng nhanh, có độ lớn. NodeJS sử dụng các phần phát sinh các sự kiện (eventdriven), mơ hình non-blocking I/O để tạo ra các ứng dụng nhẹ và hiệu quả cho các
ứng dụng về dữ liệu thời gian thực chạy trên các thiết bị phân tán.
NodeJS là một mã nguồn mở, đa nền tảng cho phát triển các ứng dụng phía
Server và các ứng dụng liên quan đến mạng. Ứng dụng Node.js được viết bằng
Javascript và có thể chạy trong môi trường NodeJS trên hệ điều hành Window,
Linux,...
NodeJS cũng cung cấp cho chúng ta các module Javascript đa dạng, có thể đơn
giản hóa sự phát triển của các ứng dụng web sử dụng NodeJS với các phần mở rộng.
NodeJS hoạt động với một luồng duy nhất và có khả năng asynchronous (bất
đồng bộ). Không giống như server được viết bằng PHP thì mỗi ơng request đến server
thì server sẽ tạo ra một thread để xử lý trong khi đó server node xử lý mọi hành động
trong một thread duy nhất. Với cách thiết kế như vậy NodeJS sẽ hỗ trợ trang web một
số điều như:

Phạm Thanh Duy - 16043751
Trịnh Đức Duy - 16018731

8


×