LỜI CẢM ƠN Khóa luận tốt nghiệp với đề tài “Xây dựng hệ thống hỗ trợ hướng dẫn viên du lịch trực tuyến” là kết quả, tâm huyết và sự tích lũy kiến thức của nhóm chúng em trong suốt 4 năm
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Trang 2ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
TRẦN VĂN HÙNG – 17520555
KHÓA LUẬN TỐT NGHIỆP
XÂY DỰNG HỆ THỐNG HỖ TRỢ HƯỚNG DẪN VIÊN DU LỊCH TRỰC TUYẾN
Building online tourist guide support system
KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM
GIẢNG VIÊN HƯỚNG DẪN ThS NGUYỄN THỊ THANH TRÚC
Trang 3THÔNG TIN HỘI ĐỒNG CHẤM KHÓA LUẬN TỐT NGHIỆP
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số
Trang 4ĐHQG TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC
CÔNG NGHỆ THÔNG TIN
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc Lập – Tự Do – Hạnh Phúc
TP HCM, ngày……tháng……năm 2020
NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP
(CỦA CÁN BỘ HƯỚNG DẪN)
Tên khóa luận:
XÂY DỰNG HỆ THỐNG HỖ TRỢ HƯỚNG DẪN VIÊN DU
Đánh giá Khóa luận:
1 Về cuốn báo cáo:
Trang 5Một số nhận xét về hình thức cuốn báo cáo:
………
………
………
………
2 Về nội dung nghiên cứu: ………
………
………
………
3 Về chương trình ứng dụng: ………
………
………
………
4 Về thái độ làm việc của sinh viên: ………
………
………
………
Đánh giá chung: Khóa luận đạt/không đạt yêu cầu của một khóa luận tốt nghiệp
kỹ sư/cử nhân, xếp loại Giỏi/Khá/Trung bình
Trang 6Điểm từng sinh viên:
Trần Văn Hùng:……/10
Người nhận xét
(Ký tên và ghi rõ họ tên)
NGUYỄN THỊ THANH TRÚC
Trang 7ĐHQG TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC
CÔNG NGHỆ THÔNG TIN
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc Lập – Tự Do – Hạnh Phúc
TP HCM, ngày……tháng……năm 2020
NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP (CỦA CÁN BỘ PHẢN BIỆN)
Tên khóa luận:
XÂY DỰNG HỆ THỐNG HỖ TRỢ HƯỚNG DẪN VIÊN DU
Đánh giá Khóa luận:
5 Về cuốn báo cáo:
Trang 8Một số nhận xét về hình thức cuốn báo cáo:
………
………
………
………
6 Về nội dung nghiên cứu: ………
………
………
………
7 Về chương trình ứng dụng: ………
………
………
………
8 Về thái độ làm việc của sinh viên: ………
………
………
………
Đánh giá chung: Khóa luận đạt/không đạt yêu cầu của một khóa luận tốt nghiệp
kỹ sư/cử nhân, xếp loại Giỏi/Khá/Trung bình
Trang 9Điểm từng sinh viên:
Trần Văn Hùng:……/10
Người nhận xét
(Ký tên và ghi rõ họ tên)
Trang 10LỜI CẢM ƠN
Khóa luận tốt nghiệp với đề tài “Xây dựng hệ thống hỗ trợ hướng dẫn viên du lịch trực tuyến” là kết quả, tâm huyết và sự tích lũy kiến thức của nhóm chúng em trong suốt 4 năm học tại trường đại học Công nghệ Thông tin ĐHQG TPHCM Với
đề tài này, chúng em mong muốn giá trị mà nó mang lại cho xã hội sẽ thay cho lời cảm ơn đến với tất cả những người đã hỗ trợ, giúp đỡ và ủng hộ chúng em hoàn thành khóa luận
Nhóm chúng em xin cảm ơn tập thể quý thầy cô Trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM, đặc biệt là quý thầy cô khoa Công Nghệ Phần Mềm đã trao cho chúng em những kiến thức giá trị làm nền tảng để thực hiện khóa luận này
Đặc biệt, nhóm chúng em xin gửi lời cảm ơn chân thành và trân trọng nhất tới
cô Nguyễn Thị Thanh Trúc, giáo viên hướng dẫn đã trực tiếp theo dõi, góp ý, hỗ trợ
và đưa ra những lời khuyên quý giá cho chúng em trong suốt quá trình thực hiện khóa luận
Cảm ơn giảng viên phản biện và các thầy cô trong hội đồng chấm luận văn với những lời khuyên, góp ý quý báu và bổ ích Từ đó bài luận văn của chúng em được trở nên hoàn thiện hơn
Lời cuối, chúng em xin gửi tất cả sự biết ơn và trân trọng của mình đến với những người thân, bạn bè đã ủng hộ và động viên chúng em trong những giai đoạn đầy khó khăn và thử thách khi thực hiện khóa luận này
TP HCM, 30 tháng 06 năm 2021
Sinh viên
Trần Văn Hùng
Trang 11ĐỀ CƯƠNG CHI TIẾT TÊN ĐỀ TÀI:
XÂY DỰNG HỆ THỐNG HỖ TRỢ HƯỚNG DẪN VIÊN DU LỊCH TRỰC
TUYẾN
Cán bộ hướng dẫn: TS Nguyễn Hà Giang, ThS Nguyễn Thị Thanh Trúc
Thời gian thực hiện: Từ ngày 01/03/2021 đến ngày 26/06/2021
Sinh viên thực hiện:
Trần Văn Hùng - 17520555
Nội dung đề tài: (Lý do chọn đề tài, mô tả chi tiết mục tiêu, phạm vi, đối tượng sử dụng,
phương pháp thực hiện, nền tảng công nghệ)
- Nhưng trên thị trường Việt Nam hiện nay chưa có một hệ thống hỗ trợ hướng dẫn viên du lịch hoàn chỉnh Các website hay ứng dụng về du lịch hay hướng dẫn du
Trang 12lịch trên thị trường hiện nay đều không có nhiều tính năng hỗ trợ cho các hướng dẫn viên du lịch, các thông tin có ích thường nằm rải rác ở các website, ứng dụng khác nhau và hầu như không có chức năng giúp hướng dẫn viên du lịch quản lý được lịch trình chuyến du lịch mà mình hướng dẫn
- Để giúp cho những hướng dẫn viên du lịch có thể tìm hiểu, cập nhật nhanh chóng các thông tin về địa điểm, các hoạt động du lịch của các địa điểm du lịch (giao thông, thời tiết, địa điểm, phong tục, tập quán); quản lý, lên kế hoạch cho Tour du lịch hiệu quả, nhanh chóng; cung cấp các kỹ năng xử lý tình huống cho các hướng dẫn viên; theo dõi các chính sách, tin tức, sự kiện liên quan đến ngành du lịch Hệ thống hướng hỗ trợ hướng dẫn viên du lịch trực tuyến được xây dựng để giải quyết những vấn đề trên
Mục tiêu:
- Xây dựng hệ thống cung cấp các thông tin, quảng bá cho các địa điểm du lịch giúp các hướng dẫn viên du lịch có thể cập nhật thông tin mới nhất về các địa điểm du lịch
- Cung cấp các kĩ năng xử lý tình huống cơ bản mà các hướng dẫn viên thường gặp trong quá trình làm việc
- Hệ thống cung cấp các bài viết liên quan đến chính sách, tin tức sự kiện liên quan đến ngành du lịch
- Hệ thống cung cấp chức năng quản lý lịch trình, thông tin các chuyến du lịch của hướng dẫn viên du lịch
- Các hướng dẫn viên du lịch có thể sử dụng hệ thống hỗ trợ hướng dẫn viên du lịch trực tuyến nhằm giải quyết những khó khăn trong quá trình học tập, làm việc
- Ứng dụng sử dụng những công nghệ mới, phù hợp đáp ứng khả năng mở rộng và tương tác cao
- Ứng dụng có giao diện trực quan, phù hợp với nhu cầu của đối tượng người dùng
Phạm vi:
Trang 13- Phạm vi nghề nghiệp: hướng dẫn viên du lịch
- Phạm vị nội dung:
- Ngôn ngữ sử dụng cho việc xây dựng mô hình, xử lý dữ liệu: PHP
- Hệ quản trị cơ sở dữ liệu: PHP MySql
- Web Framework sẽ sử dụng trong quá trình xây dựng hệ thống:
- Lên kế hoạch và thực hiện cũng như nhờ sự tư vấn của giáo viên hướng dẫn
- Tham khảo ý kiến, góp ý của các hướng dẫn viên du lịch
- Tham khảo các trang web và ứng dụng các hướng dẫn viên du lịch thường xuyên
sử dụng nhằm tìm hiểu, nắm bắt các chức năng, thói quen của người sử dụng
- Thu thập, xây dựng cơ sở dữ liệu các thông tin về các địa điểm du lịch, bài viết, tin bài, sự kiện liên quan đến ngành du lịch
- Tìm hiểu, xây dựng cơ sở dữ liệu về các kỹ năng xử lý tình huống trong công việc đối với các hướng dẫn viên du lịch
- Tìm hiểu cách xây dựng, xử lý, phê duyệt thông tin quảng bá, sự kiện du lịch với các địa điểm du lịch
- Tìm hiểu về cách quản lý, lên lịch trình cho các chuyến du lịch
- Về mặt công nghệ xây dựng JSON API và quản lý dữ liệu bằng Drupal 8, giao diện mobile cho người sử dụng React Native
Nền tảng công nghệ:
Trang 14- Front-end: React Native, Drupal 8
- Back-end: Drupal 8
- Database: PHP MySql
Kết quả mong đợi:
- Biết sử dụng các phương pháp crawl để lấy dữ liệu từ website
- Xây dựng mô hình tổ chức thông tin các địa điểm du lịch, quảng bá địa điểm du lịch, quản lý bài viết, tin tức, sự kiện ngành du lịch
- Xây dựng hệ thống quản lý lịch trình du lịch dễ dàng theo dõi, hiệu quả cho các hướng dẫn viên du lịch
- Xây dựng hệ thống các kỹ năng xử lý tình huống trong trong trình làm việc
- Hệ thống quản lý thông tin chính xác, cập nhật thường xuyên, tìm kiếm thông tin
dễ dàng
- Có thêm kiến thức về lập trình web, mobile
- Website, ứng dụng hoạt đông tốt, giao diện trực quan và thân thiện với người dung
Thách thức:
- Chưa có nhiều kiến thức về lập trình mobile và xây dựng JSON API
- Đề tài có hướng đi mới, chưa có website tương tự ở thị trường Việt Nam
Kế hoạch thực hiện:
Giai đoạn Thời gian Công việc Phân công
Giai đoạn 1: Khảo
sát, nghiên cứu
01/03/2021
- 21/03/2021
- Lựa chọn đề tài
- Phát biểu bài toán
- Khảo sát các ứng dụng, website ngành
du lịch
Hùng
Trang 15- Tìm hiểu về các công nghệ sử dụng trong khóa luận
Giai đoạn 2: Phân
tích hệ thống
22/03/2021
- 22/04/2021
- Phân tích, xác định chức năng
- Đặc tả chức năng
- Vẽ lưu đồ
- Xây dựng cơ sở dữ liệu
- Thiết kế wire - frames
- Xây dựng giao diện ứng dụng
- Hiện thực hóa ứng dụng, website dựa theo các tính năng đã phân tích
- Kiểm thử các chức năng ứng dụng
- Hoàn thành báo cáo khóa luận
Hùng
Trang 17MỤC LỤC
Chương 1 TỔNG QUAN ĐỀ TÀI 3
Giới thiệu đề tài 3
1.1.1 Hiện trạng và nhu cầu ở Việt Nam 3
1.1.2 Lý do chọn đề tài 3
Khảo sát hiện trạng và các ứng dụng tương tự 4
1.2.1 Huongdanvien.vn 4
Mục tiêu và ý nghĩa đề tài 5
1.3.1 Mục tiêu 5
1.3.2 Đối tượng người dùng 6
1.3.3 Ý nghĩa thực tiễn 6
1.3.4 Kết quả dự kiến 6
Chương 2 CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ 7
Phương pháp và thuật toán sử dụng 7
2.1.1 Crawler và web Scaping 7
2.1.2 HighChart map 8
Công nghệ sử dụng 12
2.2.1 Drupal CMS 12
2.2.2 JSON API module 16
2.2.3 React native 20
Chương 3 PHÂN TÍCH VÀ THIẾT KỂ HỆ THỐNG 24
Phân tích yêu cầu hệ thống 24
3.1.1 Yêu cầu chức năng 24
Trang 183.1.2 Mô tả chức năng 25
3.1.3 Yêu cầu về tính năng 26
3.1.4 Yêu cầu phi chức năng 26
Thiết kế cơ sở dữ liệu 27
3.2.1 Lược đồ cơ sở dữ liệu 27
3.2.2 Mô tả các bảng dữ liệu 28
Thiết kế kiến trúc hệ thống 36
Chương 4 CÀI ĐẶT VÀ PHÁT TRIỂN HỆ THỐNG 38
Sơ đồ Use case 38
4.1.1 Sơ đồ Use Case tổng quát 38
4.1.2 Danh sách actor 39
4.1.3 Danh sách use case 39
4.1.4 Đặc tả use case 42
Sequence diagram 66
4.2.1 Sequence diagram “Đăng nhập” 66
4.2.2 Sequence diagram “Đăng xuất” 66
4.2.3 Sequence diagram “Quản lý tài khoản” 67
4.2.4 Sequence diagram “Quản lý địa điểm” 68
4.2.5 Sequence diagram “Quản lý tin tức” 69
4.2.6 Sequence diagram “Quản lý cách cư xử” 70
4.2.7 Sequence diagram “Xem thông tin địa điểm” 71
4.2.8 Sequence diagram “Xem tin tức mới” 72
Trang 194.2.10 Sequence diagram “Quản lý tour du lịch” 74
4.2.11 Sequence diagram “Quản lý du khách” 75
4.2.12 Sequence diagram “Quản lý hoạt động” 76
4.2.13 Sequence diagram “Crawl bài viết” 77
4.2.14 Sequence diagram “Bản đồ covid” 78
Giao diện ứng dụng 79
4.3.1 Màn hình Tổng quan 79
4.3.2 Danh sách các màn hình 81
4.3.3 Màn hình mobile 83
4.3.4 Màn hình trên website quản lý 94
Chương 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 106
Kết quả đạt được 106
Thuận lợi và khó khăn 106
5.2.1 Thuận lợi 106
5.2.2 Khó khăn 107
5.2.3 Hạn chế 107
5.2.4 Hướng phát triển 107
TÀI LIỆU THAM KHẢO 108
Trang 20DANH MỤC HÌNH
Hình 2.1: Kỹ thuật Crawler 7
Hình 2.2: Function crawl bài viết trong Drupal 8
Hình 2.3: Sample data 9
Hình 2.4: Hàm tạo HighChart map cơ bản 10
Hình 2.5 Kết quả sau khi vẽ HighChart map 11
Hình 2.6: Logo Drupal CMS 12
Hình 2.7: JSON API module 16
Hình 2.8: React Native 20
Hình 2.9: Cách thức hoạt động Reat Native 22
Hình 3.1: Lược đồ cơ sở dữ liệu 27
Hình 4.1: Sequence diagram đăng nhập 66
Hình 4.2: Sequence diagram đăng xuất 66
Hình 4.3: Sequence diagram quản lý tài khoản 67
Hình 4.4: Sequence diagram quản lý địa điểm 68
Hình 4.5: Sequence diagram quản lý tin tức 69
Hình 4.6: Sequence diagram quản lý cách cư xử 70
Hình 4.7: Sequence diagram xem thông tin địa điểm 71
Hình 4.8: Sequence diagram xem tin tức 72
Hình 4.9: Sequence diagram xem cách ứng xử 73
Hình 4.10: Sequence diagram quản lý tour du lịch 74
Hình 4.11: Sequence diagram quản lý du khách 75
Hình 4.12: Sequence diagram quản lý hoạt động 76
Hình 4.13: Sequence diagram crawl bài viết 77
Hình 4.14: Sequence diagram bản đồ covid 78
Hình 4.15: Sơ đồ liên kết màn hình trên mobile 79
Trang 21Hình 4.17: Màn hình splash 83
Hình 4.18: Màn hình login 83
Hình 4.19: Màn hình sign in 84
Hình 4.20: Màn hình forgot password 84
Hình 4.21: Màn hình sign up 85
Hình 4.22: Màn hình verify code 85
Hình 4.23: Màn hình home 86
Hình 4.24: Màn hình place 86
Hình 4.25: Màn hình place detail 87
Hình 4.26: Màn hình news 87
Hình 4.27: Màn hình news detail 88
Hình 4.28: Màn hình tour 88
Hình 4.29: Màn hình tour detail 89
Hình 4.30: Màn hình traveler 89
Hình 4.31: Màn hình activity 90
Hình 4.32: Màn hình behavior 90
Hình 4.33: Màn hình behavior detail 91
Hình 4.34: Màn hình more 91
Hình 4.35: Màn hình account 92
Hình 4.36: Màn hình change password 92
Hình 4.37: Màn hình about 93
Hình 4.38: Màn hình sign out 93
Hình 4.39: Màn hình covid map 94
Hình 4.40: Màn hình danh sách địa điểm 94
Hình 4.41: Màn hình thêm địa điểm 95
Hình 4.42: Màn hình chỉnh sửa địa điểm 96
Hình 4.43: Màn hình xóa địa điểm 97
Hình 4.44: Màn hình danh sách bài viết 98
Hình 4.45: Màn hình thêm bài viết 98
Trang 22Hình 4.46: Màn hình chỉnh sửa bài viết 99 Hình 4.47: Màn hình xóa bài viết 100 Hình 4.48: Màn hình danh sách cách ứng xử 101 Hình 4.49: Màn hình thêm cách ứng xử 102 Hình 4.50: Màn hình chỉnh sửa cách ứng xử 103 Hình 4.51: Màn hình xóa cách ứng xử 104 Hình 4.52: Màn hình crawl bài viết 105
Trang 23DANH MỤC BẢNG
Bảng 2.1: GET, POST, PATCH, DELETE cơ bản 19 Bảng 3.1: Danh sách các thuộc tính đối tượng Permission 28 Bảng 3.2: Danh sách các thuộc tính đối tượng Role 28 Bảng 3.3: Danh sách thuộc tính đối tượng User 29 Bảng 3.4: Danh sách thuộc tính đối tượng Place 30 Bảng 3.5: Danh sách thuộc tính đối tượng News 31 Bảng 3.6: Danh sách thuộc tính đối tượng Behavior 32 Bảng 3.7: Danh sách thuộc tính đối tượng Tour 33 Bảng 3.8: Danh sách thuộc tính dữ liệu đối tượng Activity 34 Bảng 3.9: Danh sách thuộc tính đối tượng Traveler 35 Bảng 3.10: Sơ đồ kiến trúc 36 Bảng 4.1: Sơ đồ Use case 38 Bảng 4.2: Danh sách actor 39 Bảng 4.3: Danh sách Use case 41 Bảng 4.4: Đặc tả use case đăng nhập 43 Bảng 4.5: Đặc tả use case đăng xuất 44 Bảng 4.6: Đặc tả use case quản lý tài khoản 46 Bảng 4.7: Đặc tả use case quản lý địa điểm 48 Bảng 4.8: Đặc tả use case quản lý tin tức 50 Bảng 4.9: Đặc tả use case quản lý cách ứng xử 52 Bảng 4.10: Đặc tả use case xem thông tin địa điểm 53 Bảng 4.11: Đặc tả use case xem tin tức mới 54 Bảng 4.12: Đặc tả use case xem cách ứng xử 55 Bảng 4.13: Đặc tả use case quản lý tour du lịch 57 Bảng 4.14: Đặc tả use case quản lý du khách 60 Bảng 4.15: Đặc tả use case quản lý hoạt động 63 Bảng 4.16: Đặc tả use case crawl bài viết 64
Trang 24Bảng 4.17: Đặc tả use case bản đồ covid 65 Bảng 4.18: Danh sách các màn hình 82
Trang 25DANH MỤC TỪ VIẾT TẮT
STT Từ viết tắt Tên đầy đủ Diễn giải
1 UI User Interface Là những gì chúng ta nhìn thấy và giao
3 Covid Covid-19 Vius corona 2019 gây bệnh phổi cấp
bắt nguồn từ Vũ Hán, Trung Quốc
4 SMTP Simple Mail Transfer
Protocol
Giao thức truyền tải thư tín đơn giản
Là một chuẩn truyền tải thư điện tử qua mạng Internet
Kit
Là một module giao diện người dùng, giúp xây dựng các loại nội dung của riêng họ - mà không cần kiến thức về Drupal
Một cách để tạo các loại nội dung mới với các trường tùy chỉnh một cách dễ dàng, kéo và thả
Trang 26TÓM TẮT KHÓA LUẬN
Khóa luận với đề tài “Xây dựng hệ thống hỗ trợ hướng dẫn viên du lịch trực tuyến” tập trung vào nghiên cứu, phân tích thực trạng và áp dụng các công nghệ phù hợp để xây dựng nên một ứng dụng mobile hướng đến các hướng dẫn viên du lịch
Đề tài được bắt đầu từ việc tìm hiểu thực trạng, đưa ra các vấn đề còn tồn đọng của các công cụ hỗ trợ hướng dẫn viên, mục đích để tối ưu hóa và đưa ra giải pháp phù hợp nhất cho các hướng dẫn viên tại Việt Nam Chúng em cũng nghiên cứu và áp dụng các công nghệ mới, hiện đại và phù hợp để giúp tối ưu ứng dụng nhằm nâng cao trải nghiệm người dùng
Mô hình phát triển theo Agile được áp dụng cho khóa luận, để linh hoạt hơn trong việc phát triển các tính năng mới cũng như sửa chữa các tính năng cũ dễ thay đổi Kết quả thu được trong giai đoạn thiết kế được thể hiện trên sơ đồ Use case, sơ đồ tuần tự toàn hệ thống
và bản thiết kế wireframe cho giao diện trên công cụ figma.com
Phần cuối của khóa luận là trình bày kết quả đã đạt được vào cuốn báo cáo, đưa ra kết luận
và hướng phát triển cho ứng dụng trong tương lai
Trang 27Nội dung khóa luận được trình bày trong 5 chương
Chương 01: Tổng quan đề tài
Trình bày sơ bộ về đề tài, lý do thực hiện và ý nghĩa thực tiễn
Chương 02: Cơ sở lý thuyết và công nghệ
Trình bày các phương pháp, thuật toán và công nghệ được ứng dụng để phát triển khóa luận
Chương 03: Phân tích và thiết kế hệ thống
Phân tích các yêu cầu và thiết kế cơ sở dữ liệu, kiến trúc cho hệ thống
Chương 04: Cài đặt và phát triển hệ thống
Trình bày đặc tả các chức năng ứng dụng, giao diện của hệ thống
Chương 05: Kết luận và hướng phát triển
Những thuận lợi, khó khăn trong quá trình phát triển đề tài và nêu ra hướng phát triển trong tương lai
Trang 28Chương 1 TỔNG QUAN ĐỀ TÀI
Giới thiệu đề tài
1.1.1 Hiện trạng và nhu cầu ở Việt Nam
Có thể nói, nghề hướng dẫn viên du lịch là một trong những ngành nghề đòi hỏi vốn kiến thức rất sâu rộng về địa điểm du lịch, kỹ năng giao tiếp xử lý tình huống, kỹ năng quản lý Tour du lịch, những kỹ năng này cần liên tục trao dồi và thực hành, nhưng trong tình hình dịch bệnh COVID-19 diễn biến rất phức tạp như hiện nay ngành du lịch lại bị ảnh hưởng rất nghiêm trọng, điều đó dẫn đến những khó khăn cho những người làm trong ngành du lịch trong đó đặc biệt là những hướng dẫn viên du lịch
Nhưng trên thị trường Việt Nam hiện nay chưa có một hệ thống hỗ trợ hướng dẫn viên
du lịch hoàn chỉnh Các website hay ứng dụng về du lịch hay hướng dẫn du lịch trên thị trường hiện nay đều không có nhiều tính năng hỗ trợ cho các hướng dẫn viên du lịch, các thông tin có ích thường nằm rải rác ở các website, ứng dụng khác nhau và hầu như không có chức năng giúp hướng dẫn viên du lịch quản lý được lịch trình chuyến du lịch
mà mình hướng dẫn
Để giúp cho những hướng dẫn viên du lịch có thể tìm hiểu, cập nhật nhanh chóng các thông tin về địa điểm, các hoạt động du lịch của các địa điểm du lịch (giao thông, thời tiết, địa điểm, phong tục, tập quán); quản lý, lên kế hoạch cho Tour du lịch hiệu quả, nhanh chóng; cung cấp các kỹ năng xử lý tình huống cho các hướng dẫn viên; theo dõi các chính sách, tin tức, sự kiện liên quan đến ngành du lịch Hệ thống hướng hỗ trợ hướng dẫn viên du lịch trực tuyến được xây dựng để giải quyết những vấn đề trên
1.1.2 Lý do chọn đề tài
Đề tài “Xây dựng hệ thống hỗ trợ hướng dẫn viên du lịch online” được lên ý tưởng và thực hiện với mục đích quan trọng nhất là tạo ra một công cụ hỗ trợ các hướng dẫn viên du lịch
Trang 29Hiện nay trên thị trường ứng dụng, đặc biệt là trên thị trường ứng dụng trong nước chưa
có ứng nào thực sự hỗ trợ các hướng dẫn viên du lịch khi thực hiện các công việc của mình Các hướng dẫn viên du lịch khi có nhu cầu tìm hiểu thông tin hay cập nhật thông tin liên quan đến ngành du lịch sẽ cần tìm thông tin ở các nguồn cung cấp rải rác khác nhau
Từ những khảo sát và đánh giá trên, ta có thể thấy sẽ thật tuyệt vời khi các hướng dẫn viên có thể được tiếp cận với một công cụ phù hợp để có thể quản lý, hỗ trợ công việc của mình Từ đó nhóm chúng em quyết định thực hiện đề tài này, mong muốn đóng góp một phần công sức của mình vào nên du lịch của nước nhà
Khảo sát hiện trạng và các ứng dụng tương tự
1.2.1 Huongdanvien.vn
Hình 1.1: Giao diện website huowngdanvien.vn Huongdanvien.vn là một trang web cung cấp thông tin về các địa điểm, chính sách, thông tin về các cơ sở đào tạo, hướng dẫn viên Cung cấp các tin tức, sự kiện liên quan đến ngành du lịch, trực thuộc Bộ văn hóa thể thao và du lịch
Trang 30Ưu điểm
Cung cấp đầy đủ thông liên quan đến cơ sở, chính sách, cơ sở đào tạo của ngành du lịch
Các bài viết về tin tức, sự kiện được cập nhật thường xuyên
Chưa hỗ trợ hướng dẫn viên quản lý các tour du lịch
Mục tiêu và ý nghĩa đề tài
1.3.1 Mục tiêu
Xây dựng hệ thống cung cấp các thông tin, quảng bá cho các địa điểm du lịch giúp các
hướng dẫn viên du lịch có thể cập nhật thông tin mới nhất về các địa điểm du lịch, cung
cấp các kĩ năng xử lý tình huống cơ bản mà các hướng dẫn viên thường gặp trong quá
trình làm việc
Hệ thống cung cấp các bài viết liên quan đến chính sách, tin tức sự kiện liên quan đến
ngành du lịch, bản đồ covid để hướng dẫn viên du lịch phòng chống dịch bệnh trong bối
cảnh dịch bệnh covid rất phức tạp
Hệ thống cung cấp chức năng quản lý lịch trình, thông tin các chuyến du lịch của hướng
dẫn viên du lịch
Các hướng dẫn viên du lịch có thể sử dụng hệ thống hỗ trợ hướng dẫn viên du lịch trực
tuyến nhằm giải quyết những khó khăn trong quá trình học tập, làm việc
Ứng dụng sử dụng những công nghệ mới, phù hợp đáp ứng khả năng mở rộng và tương
tác cao, có giao diện trực quan, phù hợp với nhu cầu của đối tượng người dùng
Trang 311.3.2 Đối tượng người dùng
Ứng dụng hướng đến đối tượng là các hướng dẫn viên du lịch
1.3.3 Ý nghĩa thực tiễn
Ứng dụng sẽ cung cấp môi trường để các hướng dẫn viên du lịch tham khảo thông tin
về các địa điểm du lịch, tin tức – sự kiện ngành du lịch, quản lý thông tin các tour du lịch… Nhằm tiết kiệm thời gian tìm hiểu, cập nhật thông tin, quản lý dễ dàng hơn cho các hướng dẫn viên
1.3.4 Kết quả dự kiến
Xây dựng một ứng dụng hoàn chỉnh, đầy đủ chức năng như đã thiết kế: Xem thông tin địa điểm, tin tức sự kiện, bản đồ Covid, quản lý tour du lịch, quản lý tài khoản
Sản phẩm có độ hoàn thiện cao, ít lỗi, độ phản hồi tốt, có khả năng mở rộng và sẵn sàng
đưa vào môi trường thực tế
Trang 32Chương 2 CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ
Phương pháp và thuật toán sử dụng
2.1.1 Crawler và web Scaping
Crawl là một kĩ thuật để thu thập dữ liệu từ các website
Web Sacping là kĩ thuật thu nhập thông tin từ các website nhưng chỉ chắt lọc những thông tin cần thiết
Hình 2.1: Kỹ thuật Crawler Crawl giúp ta cập nhật các thông tin mới từ các website khác, lưu trữ, nghiên cứu Crawl data với Drupal:
• Lấy html string từ link
• Lấy element data bằng crawler với selector
• Chỉnh sửa data theo nhu cầu sử dụng
• Lưu data vào Entity
Trang 33Hình 2.2: Function crawl bài viết trong Drupal
2.1.2 HighChart map
HighChart map là một thư viện cho phép chúng ta vẽ bản đồ các quốc gia theo dạng SVG hoặc GeoJson
Bản đồ được vẽ bằng HighChart map được hiển thị một cách trực quan
Phù hợp với các data theo từng vùng miền, quốc gia
HighChart map rất phù hợp để hiển thị số ca mắc Covid theo từng tỉnh của Việt Nam HighChart map với Drupal:
• Download thư viện js HighChart map
• Tạo routing và controller render page chứa HighChart map
• Viết function lấy data, vẽ HighChart
Ví dụ: Để lấy được thông tin thông về các ca bệnh covid tại Việt Nam, sử dụng crawl
để lấy thông tin các ca bệnh của từng tỉnh
Truy vấn data về ca bệnh covid → truyền data vào HighChart map để có được bản đồ covid
Trang 34Cấu trúc data: data = [[‘province_code’: ‘number of cases’],…]
Hình 2.3: Sample data
Trang 35Hình 2.4: Hàm tạo HighChart map cơ bản
Trang 36Kết quả thu được
Hình 2.5 Kết quả sau khi vẽ HighChart map
Trang 37Công nghệ sử dụng
2.2.1 Drupal CMS
Hình 2.6: Logo Drupal CMS CMS là một phần mềm có chức năng quản lý các tiến trình tạo và chỉnh sửa các nội dung số mà không cần phải biết lập trình, hoặc chỉ cần có một số những kiến thức cơ bản là đều có thể quản lý được Thông thường CMS sẽ có một giao diện trực quan để người dùng thao tác mọi phần liên quan của website
Những thao tác được thực hiện CMS chủ yếu là: tạo và chỉnh sửa nội dung, định dạng văn bản, thêm hình và videos, tìm kiếm truy vấn thông tin
Drupal là một CMS mã nguồn mở PHP miễn phí giúp phát triển web thương mại điện
tử hoặc blog cá nhân Drupal được tạo ra từ năm 2000 bởi một lập trình viên người Bỉ Dries Buytaert Drupal 8 hiện là nền tảng mã nguồn mở được sử dụng nhiều nhất hiện nay để xây dựng các trải nghiệm người dùng trực tuyến, đặc biệt là trong các thiết kế
website chuyên nghiệp
Ưu điểm
Drupal được xây dựng như một CMS, nhưng nó linh hoạt và có thể mở rộng hơn nhiều
để tùy chỉnh, vì vậy, Drupal có thể xây dựng bất kỳ trang web nào dưới dạng CMS và
xa hơn cả CMS, Drupal không bị giới hạn: từ trang đích, danh sách, thương mại điện tử, B2B, B2C, C2C, CRM, ERP, POS, Elearning, Chính phủ,
Drupal cung cấp một kiến trúc mạnh mẽ như một Framework để xây dựng, tùy chỉnh bất cứ thứ gì mà Framework có thể, bất kỳ tính năng mở rộng nào, tính năng “Out of the
Trang 38box” đều có thể được xây dựng và đặt vào trang web / ứng dụng Drupal một cách dễ dàng dưới dạng mô-đun / chủ đề / mở rộng
Khi so sánh các Framework, có thể dễ dàng thấy rằng Drupal nhanh hơn so với bất kỳ Framework nào trong việc phát triển một trang web / ứng dụng đầy đủ
Khi so sánh CMS, nhiều người dễ hiểu lầm rằng Drupal phức tạp hơn WordPress, do đó việc phát triển một trang web Drupal lâu hơn Tuy nhiên, đó là một sự hiểu lầm lớn về Drupal vì:
• Đối với trang web nhanh / nhỏ, đối với các nhà phát triển cùng cấp trong Drupal
& WordPress, Drupal ngang bằng với WordPress với cả cách tiếp cận phát triển
từ đầu hoặc theo chủ đề
• Đối với phức hợp trung bình của trang web / ứng dụng, các dự án lâu dài, Drupal tốt hơn nhiều so với WordPress vì kiến trúc bền vững của nó
• Đối với một ứng dụng lớn, không thể sử dụng được WordPress, nhưng Drupal có thể được sử dụng như một Framework
Nhược điểm
Mỗi trang trong Drupal được tạo bởi sự kết hợp của nhiều khái niệm như: mô-đun, chủ
đề, cấu hình, thực thể, nút, phân loại, vùng, blog, trường, biểu mẫu, hiển thị, JS, CSS,…
do đó sẽ khá khó khăn trong việc tiếp cận đối với người mới bắt đầu
Chúng ta có thể tạo các trang web Drupal dễ dàng, nhưng để làm cho nó đi xa nhất, dễ bảo trì nhất, có thể bổ sung thêm nhiều tính năng hơn, để sử dụng nó trong một thời gian dài, nó cần một mức độ kiến trúc cao như Framework
Nếu bạn không phải là nhà phát triển Drupal, cũng như bạn không muốn học Drupal một cách nghiêm túc, hãy cẩn thận khi sử dụng Drupal để xây dựng trang web trừ khi trang web của bạn chính xác là một chủ đề Drupal mà bạn đã tìm thấy
Module
Trang 39Module là phần mềm (mã) mở rộng các tính năng Drupal và/hoặc các chức năng Các module core được tích hợp trong bộ tải về của Drupal, và bạn có thể bật chức năng của của nó mà không cần cài đặt phần mềm bổ sung Các module đóng góp được tải về trong mục download các module của drupal.org, và cài đặt trong thư mục cài đặt Drupal của bạn Bạn cũng có thể tạo ra các module riêng của bạn, điều này đòi hỏi một sự hiểu biết thấu đáo về Drupal, lập trình PHP, và các module của Drupal API
User, Permission, Role
Mỗi người truy cập vào trang web của bạn, cho dù họ có tài khoản và đăng nhập hoặc ghé thăm trang web nặc danh, được xem là một người sử dụng Drupal Mỗi người sử dụng có số ID, và người người sử dụng không phải vô danh có tên người dùng và địa chỉ email Các thông tin khác cũng có thể được liên kết với người sử dụng bởi các module
Người dùng vô danh có ID=0 Người sử dụng có ID=1 là tài khoản người dùng bạn tạo
ra khi bạn cài đặt Drupal và là người dùng đặc biệt có quyền làm mọi thứ trên trang web Những người dùng khác được gán quyền thông qua Role
Node
Một Node trong Drupal là một thuật ngữ chung cho một phần của nội dung trên trang web của bạn (Lưu ý rằng sự từ "Node" không phải là từ có ý nghĩa trong toán học như một phần của mạng.)
Một số Node default của drupal: user, article, taxonomy…
Taxonomy
Drupal có một hệ thống phân loại nội dung, mà được gọi là Taxonomy
Taxonomy có thể được tự định nghĩa và thêm Terms cho mỗi Taxonomy
Taxonomy có thể là ngang hàng hoặc phân cấp, có thể cho phép lựa chọn một hoặc nhiều, và cũng có thể được "free tagging" (có nghĩa là khi tạo hoặc chỉnh sửa nội dung, bạn có thể thêm terms mới) Mỗi Taxonomy có thể được gắn với một hoặc nhiều loại
Trang 40nội dung, và theo cách này, các Node trên trang web của bạn có thể được nhóm lại thành các loại, được dán nhãn, hoặc được phân loại trong bất kỳ cách nào bạn chọn
Database
Drupal lưu trữ thông tin trong cơ sở dữ liệu, mỗi loại thông tin có bảng cơ sở dữ liệu riêng của mình Ví dụ, các thông tin cơ bản về các Node trên trang web của bạn được lưu trữ trong bảng Node, và nếu bạn sử dụng module CCK để thêm các trường vào các Node của bạn, nó được lưu trữ trong các bảng riêng biệt
Comment và User cũng có các bảng cơ sở dữ liệu riêng của nó, và Role, Permission, và các thiết lập khác cũng được lưu trữ trong các bảng cơ sở dữ liệu