Xây dựng website gợi ý điểm du lịch áp dụng thuật toán k láng giềng gần nhấtLỜI CẢM ƠN Lời đầu tiên, nhóm hai thành viên chúng em xin gửi lời cảm ơn chân thànhđến Khoa hệ thống thông tin
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HOC CONG NGHE THONG TIN
KHOA HE THONG THONG TIN
PHAM THI BiCH NGAN
TRAN MAI NGOC THIEU
KHOA LUAN TOT NGHIEP
THUAT TOAN K LANG GIENG GAN NHAT
Buiding a website for suggesting tourist attractions applying
k-nearest neighbor - knn
KY SU HE THONG THONG TIN
TP HO CHÍ MINH, 2021
Trang 2ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA HỆ THÓNG THÔNG TIN
PHẠM THỊ BÍCH NGÂN - 16520794
TRAN MAI NGỌC THIỆU — 16521172
KHÓA LUẬN TÓT NGHIỆP
XÂY DUNG WEBSITE GOI Ý DIEM DU LICH ÁP DỤNG
THUẬT TOÁN K LÁNG GIÊNG GẢN NHẤT
Buiding a website for suggesting tourist attractions applying
k-nearest neighbor -knn
KY SU HE THONG THONG TIN
GIANG VIEN HUONG DAN
ThS Mai Xuân Hùng
ThS Vũ Minh Sang
TP HÒ CHÍ MINH, 2021
Trang 3Xây dựng website gợi ý điểm du lịch áp dụng thuật toán k láng giềng gần nhất
THÔNG TIN HỘI ĐÒNG CHÁM KHÓA LUẬN TÓT NGHIỆP
Hội đồng cham khóa luận tốt nghiệp, thành lập theo Quyết định số ngày
¬— ens của Hiệu trưởng Trường Đại học Công nghệ Thông tin.
| = — Chủ tịch.
PA —= nent eee e ee eeeee ea eneneeeneee ea — Thu ky.
Bo — eee e eee eee teeta eeeeeeee ene eeeeaenaes — Ủy viên
— ccc e cee ne cece eee tne eee eee eene ene ened — Uy vién
Pham Thị Bích Ngân_ Trần Mai Ngọc Thiệu
Trang 4Xây dựng website gợi ý điểm du lịch áp dụng thuật toán k láng giềng gần nhất
LỜI CẢM ƠN
Lời đầu tiên, nhóm hai thành viên chúng em xin gửi lời cảm ơn chân thànhđến Khoa hệ thống thông tin cũng như trường Đại học công nghệ thông tin đã tạođiều kiện tốt nhất cho chúng em thực hiện và hoàn thành khóa luận tốt nghiệp này.Ngoài ra, xin cảm ơn quý thầy cô trong khoa đã tận tình giảng dạy, trang bị cho chúng
em những kiến thức quý báu trong những năm học vừa qua
Thứ hai, chúng em xin gửi lời cảm ơn chân thành đến thầy ThS.Mai Xuân Hùng - đãtận tình hướng dẫn chúng em trong suốt thời gian thực hiện đề tài Khoảng thời gianlàm khóa luận, thầy luôn cố gang muốn nhóm hoàn thiện một cách tốt nhất, và động
viên các thành viên trong nhóm, kip thời hồ trợ nêu có sai sót xảy ra.
Thời gian hoàn thành khóa luận là khoảng thời gian khó khăn, thử thách và cam go
với các thành viên trong nhóm Tuy nhiên, nhờ sự giúp đỡ của các thầy cô, bạn bè
nhóm đã vượt qua giai đoạn này, đó là nguồn động lực to lớn, chỗ dựa tinh than vững
chắc không chỉ trong học tập, mà còn trong mọi hoạt động cuộc sông thường ngày.
Dé giờ đây, các thành viên trong nhóm đã hoàn thành khóa luận tốt nghiệp, đánh dau
cho sự hoàn thành chương trình bậc đại học, sẵn sàng cống hiến cho tố quốc, cho đất
nước.
Một lan nữa xin cảm ơn và rat mong nhận được sự góp ý chân thành thay cô.
TP.Hồ Chí Minh, ngày 04 tháng 01 năm 2021
Nhóm sinh viên thực hiện
Phạm Thị Bích Ngân
Trần Mai Ngọc Thiệu
Trang 5Xây dựng website gợi ý điểm du lịch áp dụng thuật toán k láng giềng gần nhất
1.5 Ý nghĩa của đề tài - 5c St ETEEE 2212112111121 011111 Eeye
1.6 Đối tượng, phạm vi, phương pháp nghiên cứu 5-5 2552
1.7 Bố cục báo cáo -:-©:- 2s 2s k2 2211211211221121121121111211211 2111111 eeChương 2 CƠ SỞ LÝ THUYÊTT s s- 5° 52s se ssssssesseEsesessessersevse
2.1 Bài báo nghiên cứu hệ thống gợi ý - 2-2 5© 2+E2EEeExezxrrrerrxerseee
2.2 Tìm hiểu hệ thống gợi ý du lịch - 2 - 5s E+£+E+EzEerxerxerxerxrrszes
2.2.1 Giới thiệu hệ thống gợi ý - 2: 52+2S+22Ec2EEEEEESEkerkrrrrerkerred
Trang 6Xây dựng website gợi ý điểm du lịch áp dụng thuật toán k láng giềng gần nhất
Chương 3 PHAN TÍCH THIET KE HỆ THÓNG «25s 19
kh) cac năaODiOOD 19
3.1.1 Các yêu cầu chức năng: - ¿22 s+SkeEE2EE2EEEEEeEErErrkerkerree 19
3.1.2 Yêu cầu phi chức MAN? 0 csssesssssssssessssssscssecssecsessseeasecsseeseessecs 203.2 Phan tích thiết kế hệ thống 0 c ccccccccccescsecsecseessessessessssssessessessessesssesseeses 21
3.2.1 Các chức năng hệ thống - 2-22 5¿+2+t2E+EE+2EEEEEerkrerkrrrrres 21
3.2.2 Các tác nhân hệ thống ¬ 223.2 Sơ đồ Use case o.ccccccccccscssssssessessessssssessessssssessecsessussssssessecsessussseesessessussseeseeses 28
3.3 Đặc ta Usecase và sơ đồ hoạt động -2- 22 SsccteEEerkrrrrkerkerree 30
3.3.1 Sơ đồ hoạt động quản lý đặt tour - 2 2 sse+sz+£e+zxerxerxee 303.3.2 Sơ đồ hoạt động đặt tour du lịch -¿2 s+xzszz+zxerxersee 33
3.3.3 Sơ đồ hoạt động hủy fOuF + E+SE+EE+EE+EcErEerkerkerkerkrree 353.3.4 Sơ đồ hoạt động xác nhận thanh toán 2-2-2 2 s52 37
3.3.5 Sơ đồ hoạt động đánh giá t0urr 2: 2 5+2cx+2z++zxesrxsrxees 39
3.3.6 Sơ đồ hoạt động bình luận - - 2 + s+S++E++EE+ErEerkerxerxrrkrree 41
3.3.7 Sơ đồ hoạt động liên hệ đặt khách sam oo esseeseesesseeeee 43
3.3.9 Sơ đồ hoạt động tìm kiếm thông tin khách du lich - 41
3.3.10 Sơ đồ hoạt động cập nhật thông tin khách du lịch - 493.4 Sơ đồ tuần tự - 2c 2t 2 2 2221221221211 1101112112101 eeree 52
3.4.1 Sơ đồ tuần tự đặt tour du lịch - 5: 2522cc+cezxcrkerkerxerxrrxeree 52
3.4.2 Sơ đồ tuần tự hủy t0uT 2-5-2222 E2 2 EEEEerErrrrkerrerkee 533.4.3 Sơ đồ tuần tự xác nhận thanh toán 2 2 sccs+xe+E+rxerxerxee 533.4.4 So đồ tuần tự đánh gid fOurr - 2 s22 2 erkerkrrrkrrkerkerree 54
3.4.5 Sơ đồ tuần tự bình luận - ess essessessessessestssessessesseaee 553.4.6 Sơ đồ tuần tự liên hệ đặt khách sạn - 2 2 se cccxerxerseree 56
3.4.7 Sơ đồ tuần tự thống kê doanh thu 2-52 52©52+£z+£xerxersez 57
3.4.8 Sơ đồ tuần tự tìm kiếm thông tin khách du lịch - 583.4.9 Sơ đồ tuần tự cập nhật thông tin khách du lich 59
Trang 7Xây dựng website gợi ý điểm du lịch áp dụng thuật toán k láng giềng gần nhất
3.7 Cơ sở Co (| 55c 2s E2 E211271127121121171.211211.11 1.111 ye 60
3.7.1 Mô hình cơ sở dữ liệu - G22 3221121131111 xxx 60
3.7.2 Tổ chức dữ liệu - 2-22 22+2E2EE22E2271 2212112711211 211.21 crree 603.7.3 Mô tả các kiểu dữ liệu - 2 5222x22E2ESEEEEkrEEerkrerkrrrrees 62
3.8 Thiết kế giao diện và xử lý -5-©52 22c 2k2 22c 75
3.8.1 Sơ đồ màn hình - 2-2 +z+x++E£EE+£EE2EEE2EE271E221211 21 75
3.8.2 Mô tả các màn hình - << 1 1E 12231 11H ng ke reg 78
Chương 4 CÀI ĐẶT VÀ KIEM THỦ <2 sssssssessesssessessss 92
4.1 Kiến trúc hệ thống - 2-5252 EEEEEEEEEE1011211211211 211111111111 924.2 Cài đặt thuật toán trên hệ thống website -52©55ccccccces 92
AQ cố 924.2.2 Các bước triển khai - 2-2 5 s31 2EEEEEEEEEEEEEEEEEEErkrrkrrkerkee 934.3 Quy trình chọn điểm lân cận k 2 2 + £+££+£x+zEtzxezrezrxerxeres 95
4.3.1 Độ do RMSE — Root mean squared ErTOF -. «+-<<<<<<++ 95
4.3.2 Chọn điểm lân cận Kio ccccccccccccccccccccsscscesessessessessessessesescsessessessessesseaee 964.4 Cài đặt và triển khai websife - ¿St E2 1E Ekerkrrrree 98
4.4.1 Công cụ sử dụng etc c c1 St TH TH HH HH ng re 98
4.4.2 Triển khai websife - 2-52 2112717112112 1712121111 98
Chương 5 KET LUẬN VA HUONG PHAT TRIÉN 5-s-s 104
5.1 Kết quả dat được 2-52-5222 2E EE21211211 7121121121111 crkee 104
5.2 Ưu điểm của hệ thống - 2: SE SE+EE£E2EE2EEEEEEEEEEEEEEEEEEEErrrree 104
5.3 Hạn chế của hệ thống - 2-22 2¿©222E+2EESEE2EEEEEEEEEEEEerrrerkree 104
5.4 Hướng phát triẾn - ¿5S StềEE9EEEE12112112171 71211111111 xe 104
Tài liệu tham khảo so - <5 << 5 s5 9 0001000820 106
Trang 8Xây dựng website gợi ý điểm du lịch áp dụng thuật toán k láng giềng gần nhất
DANH MỤC HÌNH
Hình 1.1: Giao diện website 1VIVU.COIM 5G 2021221111122 129 11 ng ng vn 4 Hình 1.2: Giao diện website dulichv1ef.COIM.VI c5 553322233 veseeeesree 4 Hình 1.3: Giao diện website TraveÏ.COI.VII 2c Ă 5233222211111 se, 4 Hình 2.1: Vi dụ giải thuật lọc nội dung < 3x 3+ SEsesreseeerererssre 10
Hình 2.2: Ham Cosine tính độ tương tự dựa trên người dùng [2] 11
Hình 2.3: Công thức dự đoán đánh gia của người dùng lên mục tin [2] 12
Hình 2.4: Công thức Cosine tính độ tương tự dựa trên mục tin [2] 12
Hình 2.5: Công thức dự đoán đánh giá của người dùng lên mục tin [2] 13
Hình 2.6: Ví dụ áp dụng lọc cộng tác theo mô hình k láng giềng vào hệ thống website gợi ý điểm du lịCHh ¿- ¿5c SkSx+EE2EE2EE2EE2EEEEEEEEE1EE1111211 212111111 cxe 13 Hình 3.1: Sơ đồ Usecase khách du lịch ¿ +:+c+++txvtsrrxvesrrrrvrsrrrerrre 28 Hình 3.2: Sơ đồ Usecase Quản lý -¿- 2-52 ©S22E22EE‡EEEEEEEEEEEEEEEErEErrkerkerkrrex 29 Hình 3.3: Sơ đồ Usecase nhân viên công †y 2-2 5¿©++2++x++zxzrxrrxecree 29 Hình 3.4: Sơ đồ hoạt động quản lý đặt tOu - 2-2 22+££+£++£EezE+zre+rxerxezez 30 Hình 3.5: Sơ đồ hoạt động đặt tour du lịch - 2 2s + z+£+£££xezxerxerxerszxez 33 Hình 3.6: Sơ đồ hoạt động hủy tOUT - 2 2S S£SE£EE£EE+EE+EE+EEZEEEEerEerkerxrrkrree 35 Hình 3.7: Sơ đồ hoạt động xác nhận thanh toán - c5 + sssessrresersee 37 Hình 3.8: Sơ đồ hoạt động đánh giá tOUT -2¿ 2 5£ S+2£+2E£tEE++rxezrxerxeeree 39 Hình 3.9: Sơ đồ hoạt động bình luận - 2 2 ++E2E++EE+EE+EEzEEzExsrxerrerer 41 Hình 3.10: Sơ đồ hoạt động liên hệ đặt khách sạn - - 55+ S+ccs+cxssexsseseeres 43 Hình 3.11: Sơ đồ hoạt động thống kê doanh thu 2 2£ ++22££+£++zxzzszzsz 45 Hình 3.12: Sơ đồ hoạt động tìm kiếm thông tin khách du lịch - 41
Hình 3.13: Sơ đồ hoạt động cập nhật thông tin khách du lịch - -‹- 49 Hình 3.14: Sơ đồ tuần tự hủy tOU - ¿+ 5¿22x+2EE£EE+2EE+2EEvEEEEEEerkrrrkerkrcrke 53 Hình 3.15: Sơ đồ tuần tự xác nhận đã thanh toán -¿- + x+z++E+E+zEerxzzezxez 53 Hình 3.16: Sơ đồ tuần tự đánh giá tour c.cecccccecccscesccseesessessessessessesesesssessessessesneaee 54
Trang 9Xây dựng website gợi ý điểm du lịch áp dụng thuật toán k láng giềng gần nhất
Hình 3.17: Sơ đồ tuần tự bình luận ¿¿-+22+cerrtEEkirrrttiirrrriirrerieg 55Hình 3.18: Sơ đồ tuần tự liên hệ đặt khách sạn ccccccceveecrrrrree 56Hình 3.19: Sơ đồ tuần tự thống kê doanh thu 2 2¿¿2+25++zxz+zxzx+zzs+ 57Hình 3.20: Sơ đồ tuần tự tìm kiếm thông tin khách du lịch -s- 58
Hình 3.21: Sơ đồ tuần tự cập nhật thông tin khách du lịch - 5-5252 59
Hình 3.22: Mô hình cơ sở dữ liệu 5 <5 E2 2111131122111 kkereerzze 60
Hình 3.23: Sơ đồ màn hình hệ thống website -2 2¿25¿©2++2x+2cxe+zxrrreeree 75
Hinh 3.24: Màn hình trang đăng ky - - - 5s Tnhh HH HH it 78
Hình 3.25: Màn hình trang đăng nhập - - 5 5< +22 E32 **EsErseerrrereererrrre 79
Hình 3.26: Màn hình trang địa điểm miền Bắc ¿ 2¿©22©5z+cxe2zxczxecree 80
Hình 3.27: Màn hình trang chỉ tiết địa điểm - 2-2 2 2+£+E+EezEerxerxrrsree 81
Hình 3.28: Man hình trang tour miền Bac c.ccsccssceseeseesessessessessessessesssesessessessesseese 82Hình 3.29: Màn hình trang thông tin chỉ tiẾt tOur ¿-¿©+2©5+2cs+2zxzs+scs+ 83
Hinh 3.30: Màn hình trang khách sạn oo eee eeceeeseeseeseeseeeeseceesesesecseseseeaeeaeeas 84
Hình 3.31: Màn hình trang chỉ tiết khách sạn 2-2 52222 E+£E+zE£+E++rxerxzez 85
Hình 3.32: Màn hình trang liên hỆ - - - 5 2 322333 E*2E2EEEEEEeereerrereerrrrrre 86
Hình 3.33: Màn hình trang hồ sơ người đùng - 2-2 +2 x+£x+zE++£++rxerxezez 87
Hình 3.34: Màn hình dashbOaTd s6 E193 E931 19111 11931 19111 1 vn 88
Hình 3.35: Màn hình trang quản lý địa điểm du lịch 2- 5c ©5z22s+cs+zxzs+ 89
Hình 3.36: Màn hình trang quản ly đặt t†OUT Ăn nghiep 90
Hình 3.37: Màn hình thống kê doanh thu theo năm 2-2 52522222 91Hình 4.1 Kiến trúc hệ thống - 2- 2-2 2 £+E£+E£+E£EE#EEEEESEEEEEEEEEEEEEEEEEEkerkrrkrree 92Hình 4.2: Quy trình áp dụng thuật toán lọc cộng tác theo mô hình k láng giềng vàoSOL Y dia To uYNNg - 93Hình 4.3: Dữ liệu đánh giá địa điểm [5] ccecceccccccsscsssessessessesssessesseesssssesseesesssseseeseees 93Hình 4.4: Danh sách địa điểm 0027 94Hình 4.5: Quy trình áp dụng thuật toán lọc cộng tác theo mô hình k láng giềng vào
GOL Y COUT n d 94 Hình 4.6: Dữ liệu đánh giá tour [Š ] - 5 211 2119311911191 9 11H ng rên 95
Trang 10Xây dựng website gợi ý điểm du lịch áp dụng thuật toán k láng giềng gần nhất
Hình 4.7: Danh sách tour 1 Ý c5 S3 TH TH TH TH TH TH HH tiệt 95
Hình 4.8: Công thức RSÌMEE x9 HH TH Hà HH Hàn HH nh gkp 96
Hình 4.9: Tach ra 2 phần dữ liệu - 2-22 5¿+2E+2EE+EEESEE+2EEEEEEEEEEerkrrrrerrrcree 96
Hình 4.10: Bộ dữ liệu train và t€S£ Ă 2213112211111 21111 91111951111 g2 key 96 Hình 4.11: Tính toán RMSTE chư 97
Hình 4.12: Ket quả - 2-52 SE SE‡EEỀEEEEEEEE2E1211217171711111111115 1111111 Le 97
Trang 11Xây dựng website gợi ý điểm du lịch áp dụng thuật toán k láng giềng gần nhất
2.1: Vi dụ lọc cộng tác sử dụng ma trận Khách du lich x Dia điểm 9
2.2: So sánh các hệ quan tri cơ sở tt liệu - 5 + *+kssseesseree 15 3.1: Bang mô tả các chức năng dành cho quản ly 5 55+ <+<<+ 23 3.2: Bảng mô tả chức năng dành cho nhân viên công ty - ‹‹ 24 3.3: Bảng mô tả chức năng dành cho khách du lịch - - - «5+ 26
3.4: Bảng đặc tả Usecase quản lý đặt fOUT - - - + s + sseerssreererrrre 31 3.5: Bảng đặc tả Usecase đặt tour du lỊCh - 5c + + s++xssexssxeereserss 34
3.6: Bảng đặc tả Usecase hỦy {OUT - -. c3 133211339111 11 8111 ke 36 3.7: Đặc tả UseCase xác nhận thanh toán <5 5225 + +++++<+seeveess 38 3.8: Bảng đặc tả Usecase đánh g1á †OUT - - c 5 3+1 vikrsereeserrsee 40 3.9: Bảng đặc tả Usecase bình luận .- - 2-1 SE sskrerrrireskrre 42
3.10: Bảng đặc tả Usecase liên hệ đặt khách sạn - - -+++-x+++ 44
3.11: Đặc tả Usecase thong kê doanh thu 2-2 2 2+££+s£E+£x+rssrsee 463.12: Bảng đặc tả Usecase tìm kiếm thông tin khách du lịch 48
3.13: Bảng đặc tả Usecase cập nhật thông tin khách du lịch 50
3.14: Mô ta bảng Nhân vIÊn - 22c 32212213231 EEEEErrrerrkrrrkrre 62
3.15: Mô tả bảng khách du lịCH -.- 5 5c 3+ * SE St E+EEsEEsersererreeeserrrerere 63
3.16: Mô tả bang tài khoản - - c c 3211321131111 EEEEkrrrkrrre 64
3.17: Mô tả bảng miễn - ¿2-2 5E S£+SE£EE+E2E£EEEEEEEEEEEEEEEEE2171 21212 xe, 643.18: Mô ta bảng địa điểm du lịch - ¿5c 5 xSE+£++E+E2Eerkerkerkerxerxee 653.19: Mô tả bảng địa điểm tOUT 2-22 55¿2S+‡2E+2EE+2EEEEEEEEEerxrsrkrrrrsrki 65
3.20: MG ta Dang 10 66
3.21: Mô tả bang địa diém tour c.ceececcecescssssssesessessessessessesesseseesessessessesseaees 66
3.22: Mô tả bang tour ngày khởi hanh eee eee eseeseeeeceeceeeeeeseeeeeeeeeaes 67
3.23: Mô tả bảng tour lịch trình - c5 5313 EEEEEEeereerrrsrrrrrkrrre 67
3.24: Mô tả bang dat VỀ ẦOUT Gv HH Hư 68
3.25: Mô tả bảng đánh giá địa điểm 22-55c2cx2terkerkrrrkerrrsres 69
3.26: Mô tả bảng đánh gid {OUT 5 5 S3 3 9191 vn ng HH ng ưy 69
Trang 12Xây dựng website gợi ý điểm du lịch áp dụng thuật toán k láng giềng gần nhất
3.27: Mô tả bảng bình luận - - 5 5 25 +1 HH HH ngư 70
3.28: Mô tả bảng thông báO - c3 91121119111 1111111 1 11x ng re, 70
3.29: Mô tả bảng liên hệ - - G3 3 2H TH HH ng HH ng 71
3.30: Mô tả bang khách sạn - - c2 32312211211 111111 1 1 1x re, 72
3.31: Mô tả bảng khuyến mãi - 2 2 2+ +E£EE+EE£EESEE2EEEEEEerEerkerkerree 72
3.32: Mô tả bảng hoạt động nhân ViEN 5 c5 + * + xsseseereeee 73 3.33: Mô ta bảng phòng khách sạn - - 5< xxnnnnHn ng, 74
3.34: Mô tả bảng đặt phòng - - 5 sàn HH Hàng ng HH ng 74
3.35: Bảng danh sách các màn hình hệ thống - 2-22 22 2+2 76
3.36: Mô tả màn hình trang đăng ký - - -5Ă + tk ng ng re, 78
3.37: Mô tả màn hình trang đăng nhập - 55 52+ 3+ setrrsrrerrrrrrs 79
3.38: Mô tả màn hình trang địa điểm miền Bắc ¿2 55s 5+: 803.39: Mô tả màn hình trang chi tiết dia Gi cecccccseesseeseestesseesseesseens 813.40: Mô tả màn hình trang tour miền BAC cccccsssesssessesseesseesseestesseesseesseens 82
3.41: Mô tả màn hình trang khách sạn 55 55+ + *++ssersereerseersrs 84
3.42: Mô ta màn hình trang chi tiết khách sati ceccceecesceseesseseeseeseeeeseeeeees 85
3.43: Mô tả màn hình trang liên hệ - - +55 +22 **+*£++v+eersereerseersxs 86
3.44: Mô tả màn hình trang hồ sơ người ding 2-2-5 s2 s+zxscs+z 873.45: Mô tả màn hình trang quản lý địa điểm du lịch -: : 89
3.46: Mô tả màn hình trang quản lý dat tOUT «5£ << << x+se+sss 90
3.47: Mô tả màn hình thống kê doanh thu theo năm 2-5-5: 914.1: Bang mô ta quá trình kiểm thử eesessessessesesssseesesseesesseesees 99
Trang 13Xây dựng website gợi ý điểm du lịch áp dụng thuật toán k láng giềng gần nhất
DANH MỤC TU VIET TAT
STT Từ viết tat Nội dung
I | API Application Programming Interface
2 | CSDL Co sở dữ liệu
3 | RDBMS Relational Database Management System
4 | RMSE Root Mean Squared Error
5 RS Recommender Systems
6 | UML Unified Modeling Language
7 | JSX JavaScript XML
Trang 14Xây dựng website gợi ý điểm du lịch áp dụng thuật toán k láng giềng gần nhất
Đề tài xây dựng một website gợi ý điểm du lịch, tour, khách sạn và đặt tour
đáp ứng các chức năng như website đặt tour online hiện nay, ngoài ra hệ thống còn
bồ sung hệ khuyến nghị dé đưa ra gợi ý địa điểm, tour du lịch, giúp khách du lịch tìm
được địa điểm, tour phù hợp với sở thích của mình một cách nhanh chóng và tiện lợi
nhất
Sau quá trình tìm hiểu, nhóm tác giả đã lên kế hoạch đề thực hiện dé tài như sau:
Y Tìm hiểu quy trình hoạt động các website du lịch
Tìm kiểu về ReactJS, Ant Design, PHP
Xây dung use case và những lược đồ cần thiết cho hệ thống
Xây dựng những tính năng của hệ thống từ đơn giản đến phức tạpTìm hiểu — Các thuật toán gợi ý
S\N SA Thực nghiệm hệ thong và hoàn thành các nội dung.
Trang 15Xây dựng website gợi ý điểm du lịch áp dụng thuật toán k láng giềng gần nhất
MỞ DAU
Trong bối cảnh ngày nay, nhu cầu du lịch trở thành một phần không thể thiếutrong cuộc sống của con người Khi cuộc sống vật chất, tiện nghi đầy đủ đã trở nênquen thuộc với nhiều người thì nhu cầu khám phá những vùng đất mới, tiếp xúc vớinhững nền văn hóa mới dang trở thành xu hướng phổ biến Trước tình hình đó, tạinhiều địa phương đã hình thành rất nhiều điểm du lịch và dần trở thành ngành kinh
tế mũi nhọn của địa phương
Cùng với đó công nghệ phát triển nhanh tại đây cũng kéo theo nhu cầu sử dụng côngnghệ dé đáp ứng tính tiện lợi, nhanh chóng dé giúp mọi người tiếp cận được thôngtin địa điểm và tour du lịch nhiều hơn
Hiểu được điều đó, dé giúp mọi người có thé nhanh chóng tìm kiếm thông tin địa
điểm du lịch muốn đến chỉ cần đặt tour trên website sẽ được công ty xác nhận ngaythông qua đặt tour online, không cần phải đến trực tiếp công ty Hơn thế nữa, nếuchúng ta lo lắng về việc di chuyên, ăn uống thì có thể chọn hình thức du lịch theotour Đề mọi người đỡ mất thời gian tìm kiếm thông tin địa điểm, tour phù hợp thì ởlần tiếp theo, mọi người sẽ được gợi ý địa điểm, tour mình cần xem mà không tốnnhiều thời gian
Từ những thực tế trên, nhóm tác giả quyết định thực hiện đề tài xây dựng hệthong website goi y diém du lich áp dụng thuật toán lọc cộng tác theo mô hình k lánggiềng gần nhất Đồng thời, nhóm mong muốn du lịch ngày càng phát triển mạnh mẽ
hơn đê cho tat cả mọi người, mọi nhà có một trải nghiệm mới ở những địa điêm mới.
Trang 16Xây dựng website gợi ý điểm du lịch áp dụng thuật toán k láng giềng gần nhất
Chương 1 TONG QUAN DE TÀI
Chương này mô ta tổng quan về nhu cau du lịch hiện nay thông qua các website
du lịch có sẵn Qua đó mô tả bài toán gặp phải, khảo sát nghiên cứu Cuối cùng đưa
ra hướng giải quyết đề tài
1.1 Đặt vấn đề
Du lịch dần trở thành những chuyến đi không thê thiếu trong các kỳ nghỉ lễ,hay thi thoảng đi xa giải trí của nhiều người dần trở thành ngành kinh tế mũi nhọntrong cả nước Theo thong ké hang năm, lợi nhuận từ ngành du lịch mang lai rat rao
Vì vậy, các doanh nhân đã không ngần ngại hình thành công ty du lịch Điều đó làm
cho thị trường du lịch ngày càng cạnh tranh cao, nên bắt buộc các công ty du lịch phải
có những chiến lược bán tour hiệu quả qua các kênh internet và website du lịch làkhông thể thiếu Chính vì thé, thiết kế một website trở nên đặc biệt quan trọng dé thuhút khách du lịch một cách dé dang với mức chi phí thấp Một website du lịch khôngđơn thuần là việc quản lý địa điểm, tour, khách du lịch, mà website có đủ đa dạng,chuyên nghiệp, sử dụng đơn giản không Nếu tất cả công việc này được thực hiện thủcông như sử dụng công cụ văn phòng Microsoft excel, World, cần gian và công đòihỏi nhiều nhân lực, thời gian và công sức, mà sự chính xác và hiệu quả không cao.Ngoài ra, còn có một số khó khăn về van đề lưu trữ khá đồ sộ, dễ bị that lạc, tốnkém, Bên cạnh đó, chúng ta không quảng bá được công ty và không được nhiều
người biết đến Trong khi đó, tất cả các nghiệp vụ đó có thể tin học hóa một cách dễdàng Với ứng dụng công nghệ thông tin ,từ khâu quản lý đến quảng bá thu hút khách
du lịch một cách đơn giản, thuận tiện, nhanh chóng và hiệu quả hơn rất nhiều
Do đó, nhóm tác giả quyết định chọn đề tài “Xây dựng hệ thống website gợi ý
điểm du lịch” dé có thé giúp ich phần nào đó quảng bá du lịch nước nhà và hơn thénữa có thê giúp cho khách du lịch có cái nhìn khách quan về du lịch trong nước
Trang 17Xây dựng website gợi ý điểm du lịch áp dụng thuật toán k láng giềng gần nhất
1.2 Khảo sát một số website du lịch
iVIVU Tours Vémaybay Anudéng
* Tkai nghiệm kỷ nghỉ tuyệt vời
ComBffẨfliách sạn - vé máy bay - đưa đón sân bay giá tốt nhất
MùaHoa:raM: Giác MacH MacH
8 Tim tour TRONG NƯỚC (a) Tim tour NƯỚC NGOÀI és Combo KÍCH CẦU “@ Quản Lý ĐẶT TOUR
Hình 1.2: Giao diện website dulichviet.com.vn
travelf#fcom.vn Dulịch Kháchsạn Vậnchuyển Tintức Khuyếnmại VietravelPlus Liênhệ
đnozÐTS2531A
TÌM TOUR TÌM TOUR DU LỊCH TÌM KIẾM HỘI VIÊN
“TRONG NƯỚC _ NƯỚC NGOÀI GIÁ TỐT “Tự CHỌN _ “BOOKING | “THAN THIẾT ` fa]
Hinh 1.3: Giao dién website Travel.com.vn
Trang 18Xây dựng website gợi ý điểm du lịch áp dụng thuật toán k láng giềng gần nhất
1.3 Nhận xét website
Qua tìm hiểu các website nhóm tác giả nhận thấy rằng hầu hết các website có ưu
điểm như:
- Giao diện gần gũi, sinh động, dễ sử dụng
- _ Được thiết kế dé hoạt động trên nhiều nền tảng thiết bị khác nhau
- _ Không chi tập trung vào việc gợi ý địa điểm, tour du lịch ngoài ra cung cấp
nhiều dịch vụ khác như khách sạn, thuê xe, ăn uống.
- Dap ứng day đủ các chức năng của một hệ thống
=> Qua đó giúp nhóm xác định được các chức năng áp dụng vào hệ thống và mang
đến cho người dùng những gợi ý tốt nhất
- Tu đó, phân tích yêu cầu, xác định các chức năng cần có cho hệ thống, sau đó sẽ
đi đến thiết kế cơ sở dữ liệu cho đề tải
- _ Xây dựng chức năng gợi ý địa điểm cho website
1.5 Ý nghĩa của đề tài
s* Ý nghĩa thực tiễn
Đề tài xây dựng hệ thống website gợi ý du lịch “Travel For You” là một website
tìm ra gợi ý cho người dùng những địa điểm, tour du lịch Đối với công ty, doanh
nghiệp website giúp quản lý địa điểm, tour, khách sạn, khách du lịch, nhân sự, đặttour, thong kê doanh thu một cach dé dang, thuận tiện trong các vấn đề tìm kiếm,thêm mới, cập nhật, xóa, Đối với khách du lịch giúp xem thông tin điểm đến, tour,khách sạn và để lại đánh giá, bình luận các tour đã trải nghiệm
Trang 19Xây dựng website gợi ý điểm du lịch áp dụng thuật toán k láng giềng gần nhất
s* Ý nghĩa khoa học
Đề tài xây dựng hệ thống website gợi ý du lịch tuy không phải là một đề tài khá
xa lạ đối với mọi người Ngoài ra, đề tài cũng cấp thêm một chức năng mới như: ápdụng thuật toán gợi ý vào hệ thống dé đưa ra được những địa điểm hoặc tour tương
tự với người dùng đã chọn trong quá khứ Từ đó, khách du lịch thuận tiện trong việc
lựa chọn một địa điểm hoặc tour phù hợp với những ưu đãi hấp dẫn
1.6 Đối tượng, phạm vi, phương pháp nghiên cứu
s* Đối tượng nghiên cứu
- _ Khách du lịch, quản ly và nhân viên của một công ty du lịch.
- Những van dé liên quan đến du lịch như: dia điểm, tour, khách sạn, đặt tour, đánh
giá, bình luận,
- _ Hệ thống các thuật toán gợi ý trong khai thác dữ liệu
*
> ~ Phạm vi nghiên cứu
- Hệ thống nghiên cứu tập trung vào những van đề phục vụ nhu cầu khách du lịch
Vì vậy, hệ thống website tập trung vào thông tin địa điểm, tour, khách sạn, đánhgiá, bình luận của khách và gợi ý điểm du lịch, tour du lịch
-_ Hệ thống còn hạn chế một số chức năng chưa được đáp ứng như: thanh toán bằng
hình thức thẻ ngân hàng, cung cấp các dịch vụ ăn uống, thuê xe.
* > ~ Phạm vi công nghệ
Hệ thống viết bằng ngôn ngữ lập trình Javascript, PHP, HTML5, CSS, sử dungframework ReactJS Thư viện hỗ trợ thiết kế giao diện Ant design, Bootstrap
Chạy trên hệ quan tri cở sở dữ liệu MySQL.
* > » Phuong pháp nghiên cứu:
- Phuong pháp khảo sát phân tích dựa trên tai liệu thu thập, doc hiểu thông tin từ
các tài liệu giáo trình liên quan đến hệ thống gợi ý, dựa trên nhu cầu người dùng,
dựa trên các website sẵn có.
- Thu thập dữ liệu từ các website: Booking.com, dulichviet.com.vn, mytour.vn,
fiditour.com, saigontourist.net, ivivu.com,
Trang 20Xây dựng website gợi ý điểm du lịch áp dụng thuật toán k láng giềng gần nhất
1.7 Bố cục báo cáo
Chương 1: Tổng quan đề tài
Chương này trình bày tông quan nội dung đề tài khóa luận Phát biéu van dé
và mục tiêu của nhóm mong muốn hướng đến đề thực hiện trong hệ thống Xác
định đối tượng, phạm vi, phương pháp nghiên cứu đề tài.
Chương 2: Cơ sở lý thuyết
Giới thiệu về hệ thống gợi ý, các kỹ thuật trong hệ thống gợi ý lọc cộng tác,
áp dụng thuật toán gợi ý vào đề tài Tìm hiểu về một số ngôn ngữ và hệ quản trị
cơ sở dữ liệu như: SQL Server, MySQL, Oracle, hệ quan trị sẽ được sử dung
trong hệ thông; PHP, ReactJS, Ant design.
Chương 3: Phân tích thiết kế hệ thống
Xác định các chức năng, tác nhân hệ thống, phân tích thiết kế hệ thống, thiết
kế cơ sở đữ liệu, thiết kế giao diện website
Chương 4: Cài đặt và kiểm thử
Chương này trình bày quá trình cài đặt thuật toán, tóm tắt quá trình triểnkhai kiểm thử
Chương 5: Kết luận và hướng phát triển
Tổng kết khóa luận, nêu ưu, khuyết điểm và hướng phát triển
Trang 21Xây dựng website gợi ý điểm du lịch áp dụng thuật toán k láng giềng gần nhất
Chương 2 CƠ SỞ LÝ THUYET
Chương này nói về cơ sở lý thuyết của khóa luận bao gồm hệ thống gợi ý, các
nhóm giải thuật gợi ý như lọc cộng tác, lọc nội dung và các kỹ thuật lọc cộng tác.
Cùng với đó tìm hiểu một số hệ quản tri co sở dữ liệu và các ngôn ngữ được sử dụngchính trong hệ thống
2.1 Bài báo nghiên cứu hệ thống gợi ý
- Hệ thống gợi ý : Kỹ thuật và ứng dụng (Nguyễn Thái Nghe)
- Một tiếp cận trong xây dựng hệ thống gợi ý theo ngữ cảnh (Nguyễn Thái Nghe)
2.2 Tìm hiểu hệ thống gợi ý du lịch
2.2.1 Giới thiệu hệ thống gợi ý
Hệ thong gợi y (Recommender Systems — RS) là một dạng của hệ thông lọcthông tin (information filtering), được sử dụng đề dự đoán sở thích hay xếp hạng màngười đùng có thê dành cho một mục tin nào đó mà họ chưa xem xét tới trong quá
khứ.[5]
Trong những năm gan đây, hệ thống gợi ý đã trở nên pho biến và được sử dụng trong
nhiều lĩnh vực khác nhau như truyền hình, tin tức, thương mại điện tử và mạng xã
hội, Ví dụ phổ biến và dễ gap nhat la gol ý kết ban trên Facebook dựa vào các đặc
điểm như sống cùng vị trí, bạn chung, cùng sở thích, quan tâm tới một lĩnh vực nào
đó trên Facebook.
Hệ thống gợi ý quan tâm đến ba thông tin chính là người dung(user), mục tin(item),
và phản hồi (feedback) của người dùng trên mục tin đó
s* Nhóm giải thuật lọc cộng tác
Nhóm giải thuật lọc cộng tác (Collaborative Filtering): Hệ thống gợi ý mục tin
dựa trên sự tương tự giữa người dùng hoặc mục tin.
Trang 22Xây dựng website gợi ý điểm du lịch áp dụng thuật toán k láng giềng gần nhất
Bảng 2.1: Ví dụ lọc cộng tác sử dung ma trận Khách du lịch x Dia điểm
Phan Thiết Đà Nẵng Đà Lạt
Khách du lịch 1 1 0 5
Khach du lich 2 4 2 2
Khach du lich 3 0 0 3
Trong bảng trên, đánh giá của khách du lich 1 đôi với địa diém Phan Thiết là 1, Da
Lạt là 5, Đà Nẵng chưa được đánh giá
= Đâu vào cua bai toán là ma trận thê hiện những hành vi quá khứ - ma trận khách
du lịch và địa điểm Hàng là khách du lịch, cột là địa điểm, giá trị mỗi ô là đánh
giá của khách du lịch lên địa điểm đó
Dau ra, dự đoán đánh giá của người dùng lên những địa điểm mà họ chưa dé laiđánh giá Hệ thống gợi ý dựa vào đánh giá mà xếp hạng các địa điểm và gợi ý chokhách du lịch Trong ví dụ này, hệ thống gợi ý phải đưa ra dự đoán khách du lịch
1 đánh giá Đà Nẵng là bao nhiêu; khách du lịch 3 đánh giá địa điểm Phan Thiết,
Đà Nẵng là bao nhiêu.
Ưu điểm:
Có thé loc thông tin bat kỳ loại nao như bản tin, sản phẩm, hàng hóa, phim, âm
nhạc, tranh ảnh và sách
Không cần xác định thông tin mô tả yêu cầu: không phải mô tả yêu cau, sở thích
của người dùng một cách tường minh.
Người dùng có thé nhận được những gợi ý bất ngờ
Trang 23Xây dựng website gợi ý điểm du lịch áp dụng thuật toán k láng giềng gần nhất
“+ Nhóm giải thuật lọc nội dung
Nhóm giải thuật lọc trên nội dung (Content-based Filtering): Gợi y các mục tin
dựa vào hồ sơ của người dùng hoặc dựa vao nội dung/thuộc tính của những mục tin
tương tự như mục tin mà người dùng đã chọn trong quá khứ.
Phan Thiết
Thích
Tươngtự —————>
Gợi ý
Hình 2.1: Ví dụ giải thuật lọc nội dung
Trong hình trên, người dùng | thích địa điểm Phan Thiết, Da Lạt; địa điểm Vũng Tàu
có tinh chất tương tự như địa điểm Phan Thiết đều là vùng biển Do đó địa điểm Vũng
Tau được gợi ý cho người dùng 1.
- Thong tin mô tả đối tượng có chất lượng kém và bị lỗi Trong một số trường hợp
những mô tả về nội dung rất khó dé so sánh và rút ra gợi ý như file video, audio,
- _ Phân tích nội dung của các đối tượng sản phẩm rất khó dé đưa ra sản phẩm tương
tự.
10
Trang 24Xây dựng website gợi ý điểm du lịch áp dụng thuật toán k láng giềng gần nhất
2.2.2 Các kỹ thuật lọc cộng tác
- Ky thuật dựa trên bộ nhớ (còn gọi là phương pháp láng giềng -
Neighborhood-based): là dựa trên dữ liệu quá khứ của người dùng “tương tự - similarity” (user-based approach), hoặc là dựa trên dir liệu quá khứ của những item “tương tự” (item-based
approach) [1]
Có 2 cách tiếp cận lọc cộng tác theo mô hình K láng giéng là dựa trên người dùng
(User_kNN) — dự đoán dựa trên sự tương tự giữa các người dùng và dựa trên mục tin (Item_kNN) - dự đoán dựa trên sự tương tự giữa các mục tin.
= Kỹ thuật k láng giéng dựa trên người dùng (User_kNN) xác định độ tương tự giữa
hai người dùng thông qua việc so sánh đánh giá của họ trên cùng mục tin, sau đó
dự đoán xếp hạng trên sản phẩm i bởi người dùng u, dựa vào các xếp hạng nhữngngười dùng tương tự với người dùng u Dé triển khai kỹ thuật này vào hệ thongcần thực hiện các bước sau:
Bước 1: Tính khoảng cách/độ tương tự của toàn bộ người dùng khác với người
Tụ¡ Và Ny; là danh gia của người dùng u và trên mục tin tương ứng
Ly là tập các mục tin được đánh gia bởi cả người dùng u và người dùng uw’
Bước 2: Tìm tập k người dùng có độ tương tự gần giống với ¿ nhất
Bước 3: Tính ước lượng đánh giá của người dùng ¿ với mục tin /theo công thức
Sau:
11
Trang 25Xây dựng website gợi ý điểm du lịch áp dụng thuật toán k láng giềng gần nhất
Ky là số người dùng có độ lân cận gần với người dùng z (k láng giềng của wu)
7, là giá trị đánh giá trung bình trên tat cả item của người dùng u
7,’ là giá trị trung bình trên tất cả các item của người dùng 1"
= Ky thuật k lang giéng dựa trên mục tin (Item_kNN): xác định độ tương tu dựa
trên các mục tin.
Bước 1: Tính độ tương tự của toàn bộ mục tin khác với mục tin i
3;ueU¡¡! Pui: Tui!
Uj;, là tập các người dùng có đánh giá trên cả hai mục tin 7 và i’
Tụ; Và T„¡, là đánh giá của người dùng ¿ và u’ trên mục tin tương ứng.
Bước 2: Tìm tập k mục tin có độ tương tự gần giống với 7 nhất mà người dùng u
đã đánh giá
Bước 3: Tính ước lượng đánh giá của u lên mục tin 7
12
Trang 26Xây dựng website gợi ý điểm du lịch áp dụng thuật toán k láng giềng gần nhất
Ki là số item có độ lân cận gan item /(k lang giéng của /)
7; là giá trị trung bình của tất cả các người dùng trên item 7
7¡' là giá trị trung bình của tat cả các người dùng trên item i’.
- Ky thuật dựa trên mô hình (Model-based): xây dựng các mô hình dự đoán dựa
trên dữ liệu thu thập được trong quá khứ, điên hình là kỹ thuật phân rã ma trận (matrix
factorization).[1]
2.3 Ap dung vào hệ thống gợi ý điểm du lich
Trong bài này, nhóm tác giả sử dụng lọc cộng tác theo mô hình k láng giềng dựa
vào người dùng dé xây dựng hệ thống gợi ý địa điểm cho website
Hình 2.6: Ví dụ áp dụng lọc cộng tác theo mô hình k láng giềng vào hệ thống
website gợi ý điêm du lịch
13
Trang 27Xây dựng website gợi ý điểm du lịch áp dụng thuật toán k láng giềng gần nhất
Ý tưởng chính khi áp dụng thuật toán k láng giềng gần nhất vào hệ thống website
gợi ý điểm du lịch là dựa trên người dùng tương tự Theo như hình trên khách du lịch
1 để lại đánh giá Phan Thiết, Nha Trang, Đà Lạt, Vũng Tàu Khách du lịch 2 đánhgiá Phan Thiết, SaPa, Hạ Long; tương tự khách du lịch 3, 4, 5 ,6, 7, 8 Ta dùng côngthức Cosine để tính độ tương tự giữa khách du lịch 1 với khách du lich 2, 3, 4, 5, 6,7,8 Sắp xếp độ tương tự giữa các khách du lịch theo thứ tự giảm dần; chọn k khách
du lịch có độ tương tự cao nhất với khách du lịch 1 Sau đó dự đoán đánh giá khách
du lịch 1 lên các địa điểm chưa đánh giá, sắp xếp kết quả dự đoán theo thứ tự giảm
dần Lấy ra M địa điểm mà khách du lịch 1 dự đoán đánh giá cao nhất
2.4 Tìm hiểu về hệ quản trị cơ sở dữ liệu
2.4.1 SQL Server
SQL Server là một hệ quan tri cơ sở dữ liệu quan hệ (Relational Database
Management System (RDBMS)) sử dụng câu lệnh SQL để trao đổi dữ liệu giữa máyClient và máy cài SQL Server Một RDBMS bao gồm databases, database engine vàcác ứng dụng dùng đề quản lý đữ liệu và các bộ phận khác nhau trong RDBMS SQLServer được phát triển và tiếp thị bởi Microsoft SQL Server được tối ưu dé có théchạy trên môi trường cơ sở đữ liệu rất lớn, lên đến Tera-Byte và có thé phục vụ cùnglúc cho hàng ngàn user SQL Server cũng có thê kết hợp tốt với các server khác như
Microsoft Internet Information Server (IIS), E-Commerce Server, Proxy Server SQL
Server hoạt động độc quyền trên môi trường Windows trong hơn 20 năm Năm 2016,
Microsoft đã cung cấp phiên bản trên Linux
14
Trang 28Xây dựng website gợi ý điểm du lịch áp dụng thuật toán k láng giềng gần nhất
trang chủ Nó có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32
cho các hệ điều hành dòng Windows,Linux,Mac OS X, Unix,
2.4.3 Oracle Database
Oracle là một hệ quản tri cơ sở đữ liệu quan hệ, được phat trién và phân phối
bởi tập đoàn Oracle Phần mềm này vẫn đang được phát triển tiếp lên những phiênbản cao hơn, và vẫn đang là một trong những phần mềm quản trị database hàng đầuthế giới Phần mềm này được viết bằng Assembly, C và C++
Khác với SQL Server, Oracle hỗ trợ rất nhiều nền tảng khác nhau, có thé chạy
trên Windows, Linux và Unix Do đó doanh nghiệp có thé dé dàng triển khai Oracletrên nền tảng phần cứng sẵn có hoặc các nền tảng quen thuộc của doanh nghiệp mà
không bắt buộc phải thay đồi theo phần mềm Điều nay cũng giúp mở rộng thị trường
của Oracle Database.
2.4.4 Hướng tiếp cận cơ sở dữ liệu
So sánh các hệ cơ sở dữ liệu
Bảng 2.2: So sánh các hệ quản tri cơ sở dữ liệu
SQLServer MySQL Oracle
Kha nang Chu yéu str dung MySQL hoạt động | Tương tự MySQL
tương thích các dự án chạy trên được trên cả nền
Windows tang Windows,
Linux va nhiéu nén
tang khac
Lưu trữ Sử dụng công cụ Được sử dụng các Cơ sở dir liệu được
lưu trữ phi giao công cụ lưu trữ chia sẻ giữa tất cảdịch do Microsoft khác nhau cho các _ các lược đồ và
phát triển bảng khác nhau trên | người dùng Người
cơ sở tốc độ, tính dùng có thể bị giới
năng, độ tin cậy hạn truy cập thông
qua vai trò và quyên
15
Trang 29Xây dựng website gợi ý điểm du lịch áp dụng thuật toán k láng giềng gần nhất
Bảo mật Tiêu chuân EC2 và | Tiêu chuẩn EC2 Giải phải bảo mật
được trang bị thêm Oracle “Defense in
cac tinh nang bao Dept”- bảo vệ dữ
mật tiên tiền thuộc liệu theo chiều sâu:
sở hữu của mã hóa và che giấu
Microsoft dữ liệu, quản lý truy
cập và theo dõi hoạt
động người dùng.
Chi phí Can mua giây phép | Sử dụng giấy phép | Can mua giấy phép
nếu chạy cơ sở đữ | công cộng chung
liệu trên SQL Server
Do sự phổ biến, quen thuộc va sử dung mã nguồn mở của MySQL nên nhóm
quyết định chon MySQL làm hệ quản trị CSDL cho hệ thống.
2.5 Tìm hiểu về PHP
2.5.1 Tổng quan về PHP
PHP là ngôn ngữ lập trình mã nguồn mở phía server được thiết kế để xây dựng
web động PHP cho phép xây dựng ứng dung web tương tác với mọi cơ sở dữ liệu
như: MySQL, Oracle, PHP được tối ưu hóa cho các ứng dụng web, tốc độ nhanh,nhỏ gọn, cú pháp giống C và Java
2.5.2 Đặc điểm của PHP
- PHP rất đơn giản và dé sử dụng
- PHP có thé kết nối cơ sở dữ liệu hiệu quả và giúp quá trình tải ứng dụng nhanh
hơn.
- PHP sẽ bảo mật hơn nếu sử dụng các Framework
- PHP có khả năng tích hợp linh hoạt với các ngôn ngữ lập trình khác.
- PHP là ngôn ngữ nguồn mở và miễn phí.
- PHP rất nhẹ và có nhiều Framework có sẵn dé lập trình website
- PHP giúp cho quá trình phát triển website trở nên nhanh hơn
16
Trang 30Xây dựng website gợi ý điểm du lịch áp dụng thuật toán k láng giềng gần nhất
2.5.3 Ứng dụng PHP
- Phat triển hệ thống quản lý nội dung
- Phat triển trang web
- Phan tích và trình bày dữ liệu.
- Thiét kế đồ họa.
% Uu điểm
- Được sử dụng miễn phi.
- Cấu trúc của PHP cực ky đơn giản
- Các ứng dụng dựa trên PHP có thé chay trén moi hé diéu hanh nhu UNIX, Linux
Với mong muốn xuất hiện một framework có thé phá vỡ những cau trúc phức tap,
cũng như có thể tái sử dụng lại các đoạn code trước kia nhằm proJect hoàn thành
nhanh hơn, ReactJS ra đời.
Một số lý do làm cho ReactJS được giới lập trình ưu ái sử dụng:
- ReactJS cho phép lập trình viên viết ứng dụng trực tiếp trên JavaScript Thêm vào
đó là JSX — một trong những tinh năng làm ReactJS dé dang mà còn thú vị hơn.
Lập trình viên giờ đây có thê tạo nên một tinh năng mới va có thê xem nó xuât
17
Trang 31Xây dựng website gợi ý điểm du lịch áp dụng thuật toán k láng giềng gần nhất
hiện ngay trong thời gian thực, giúp lập trình viên có thé đưa trực tiếp các đoạn
HTML vào JavaScript.[6]
Một ý tưởng khác lam cho ReactJS trở nên độc dao là nó cho phép lập trình viên
pha vỡ những cau tao UI phức tạp thành những component độc lập Lập trình viên
sẽ không phải lo lắng về tổng thé ứng dụng web, giờ đây lập trình viên dé dangchia nhỏ các cau trúc UI/UX phức tạp thành những component đơn giản hon.[6]Components giúp phân chia các UI (giao điện người dùng) thành các phần nhỏ dé
dễ dàng quản lý và tái sử dụng
Props cho phép giao tiếp giữa các component với nhau bằng cách truyền tham số
qua lại giữa các component.
State là một object có thể được sử dụng để chứa dữ liệu hoặc thông tin về
component.
2.7 Tim hiểu Ant Design
Ant Design là một tập hợp các component cua React được xây dựng theo
chuẩn thiết kế của Ant UDE team
Cung cấp hầu hết các component thông dụng trong ứng dụng web hiện đại như
Layout, Button, Icon,
Dưới đây là danh sách các component ma Ant Design hỗ trợ:
Thông thường: Button, Icon, Typography.
Bồ trí: Divider, Grid, Layout, Space
18
Trang 32Xây dựng website gợi ý điểm du lịch áp dụng thuật toán k láng giềng gần nhất
- Điều hướng: Affix, Breadcrumb, Dropdown, Menu, Pagination, PageHeader,
Steps.
- Nhap dữ liệu: AutoComplete, Casader, Checkbox, DatePicker, Form, Input,
InputNumber, Mentions, Radio, Rate, Rate, Select, Slider, Switch, TimePicker,
Transfer, TreeSelect, Upload.
- Hiển thị dữ liệu: Avatar, Badge, Comment, Collapse, Carousel, Card, Calendar,
Description, Empty, List, Popover, Statistic, Tree, Tooltip, Timeline, Tag, Tabs,
Table.
- Phản hồi: Alert, Drawer, Modal, Message, Notification, Progress, Popconfirm,
Result, Spin, Skeleton.
Chuong 3 PHAN TICH THIET KE HE THONG
Chương này phân tích yêu cau chức năng của hệ thống và các tác nhân hệthống thông qua các bản vẽ UML Đồng thời thiết kế, mô tả cơ sở đữ liệu, mô tả màn
hình giao diện.
3.1 Phân tích yêu cầu
3.1.1 Các yêu cầu chức năng:
Giao diện quản lý:
- Quản lý danh sách tai khoản người dùng.
- Quản lý danh sách nhân sự công ty.
- Quan lý địa điểm, tour, khách sạn có thể thêm mới tour, địa điểm, khách sạn vào
danh sách tour, địa điểm, khách sạn và điều chỉnh thông tin địa điểm, tour khách
sạn hoặc có thé xóa thông tin địa điểm, tour, khách sạn ra khỏi danh sách nếu thỏa
yêu cầu
- Quản lý khách du lịch có thé tìm kiếm, cập nhật thông tin khách du lịch hoặc thêm
mới, xóa, khách du lịch ra khỏi danh sách.
- Quan lý việc đặt tour, cập nhật thông tin đặt vé tour du lịch nếu khách du lịch có
nhu cầu
- _ Thống kê doanh thu theo danh sách tour hoặc theo biéu dé
19
Trang 33Xây dựng website gợi ý điểm du lịch áp dụng thuật toán k láng giềng gần nhất
Giao diện nhân viên công ty:
Quản lý danh sách khách du lịch có thé tìm kiếm, cập nhật thông tin khách du lịch
và thêm mới khách du lịch vào danh sách.
Quản lý việc đặt tour, cập nhật thông tin đặt vé tour, xác nhận đã thanh toán va
Giao diện người dùng:
Hiển thị được danh sách địa điểm du lịch và gợi ý các địa điểm du lịch đến với
từng khách du lịch.
Hiển thị danh sách tour du lịch và gợi ý các tour du lịch phù hợp với sở thích của
mỗi khách du lịch.
Hiển thị thông tin khách sạn
Cho phép khách du lịch đăng ký thành viên.
Cho phép khách du lịch xem thông tin địa điểm, các tour có trong địa điểm đó,
tìm kiếm địa điểm
Cho phép khách du lịch xem thông tin tour, đặt tour, tim kiếm tour muốn đặt
Cho phép khách du lịch đánh giá, bình luận tour đã di.
Cho phép khách du lịch xem thông tin đặt vé tour.
Cho phép khách du lịch xem khuyến mãi các tour
Cho phép khách du lịch liên hệ với công ty.
3.1.2 Yêu cầu phi chức năng:
Yêu cầu về giao diện: Giao diện quản lý gần gũi, đơn giản Giao diện người
dùng thân thiện, sinh động, tương tác tốt
Yéu cau về chat lượng:
20
Trang 34Xây dựng website gợi ý điểm du lịch áp dụng thuật toán k láng giềng gần nhất
- Tinh tiện dụng: Hệ thống có giao diện trực quan, thân thiện va dễ sử dụng
- Tính hiệu quả: Website thể hiện trực quan các trạng thái thông tin, giúp người
- Thống kê thao danh sách tour
- Thống kê theo biéu đồ
Hệ thống dành cho nhân viên công ty:
Trang 35Xây dựng website gợi ý điểm du lịch áp dụng thuật toán k láng giềng gần nhất
- Hiền thị danh sách địa điểm
- Hiền thị danh sách tour
- Hién thị danh sách tour khuyến mãi
- Hiển thị danh sách khách sạn
- Cho phép đăng ký thành viên, đăng nhập tai khoản
- Khách du lịch xem thông tin dia điểm, tour, khách sạn
- Khách du lịch xem địa điểm gợi ý và xem các tour có trong địa điểm đó
- Khách du lịch xem thông tin tour gợi ý và có thé đặt tour
- Khách du lịch có thể đánh giá, bình luận tour đã đi
- Hiển thị thông báo sau khi đặt tour, thanh toán, kết thúc tour
- Thay đổi mật khẩu
- Khách du lịch liên hệ đặt khách sạn
- Cập nhật hồ sơ người dùng
3.2.2 Các tác nhân hệ thống
Dựa vào phân tích hệ thống, nhóm tác giả có thể xác định được các tác nhân chính
của hệ thống như sau:
- Tac nhân quản lý: Thực hiện các chức năng tìm kiếm, thêm, xóa, cập nhật thông
tin địa điểm, tour, thống kê doanh thu, tài khoản Đề thực hiện các chức năng quảntrị viên bắt buộc đăng nhập trước khi xử lý
- Tac nhân khách du lịch: bao gồm khách du lịch đã và chưa đăng ký thành viên
Thực hiện được các chức năng sau: tìm kiếm, xem danh sách địa điểm, tour, danh
sách tour, địa điểm được gợi ý, bình luận tour, đánh giá tour, xem thông tin tour
đã đặt Trong trường hợp khách du lịch muốn để lại đánh giá, bình luận tour bắt
buộc phải đăng nhập trước khi thao tác chức năng.
- Tac nhân nhân viên công ty: thực hiện chức năng tim kiếm, thêm, cập nhật địa
điểm, tour; tìm kiếm, thêm, cập nhật, thông tin khách du lịch, hỗ trợ đặt tour và
cập nhật thông tin đặt tour.
22
Trang 36Xây dựng website gợi ý điểm du lịch áp dụng thuật toán k láng giềng gần nhất
Tác nhân quản lý:
Bảng 3.1: Bảng mô tả các chức năng dành cho quản lý
Đăng nhập Thực hiện đăng nhập trước khi vào hệ
thống, nhập tên đăng nhập và mật khâu
Kiểm tra xem tài khoản có t6n tại trong hệ
thông, nếu hợp lệ cho phép thực hiện các
chức năng dành cho quản lý, ngược lại
thông báo lỗi yêu cầu nhập lại
Quản lý tài khoản Quản lý thực hiện các thao tac xem chi tiết,
tìm kiếm, thêm, hủy, cập nhật thông tin tài
khoản.
Quản lý thông tin nhân sự Quản lý thực hiện các thao tác xem chi tiết,
tìm kiếm, thêm, hủy, xóa, cập nhật thông
tin nhân sự.
23
Trang 37Xây dựng website gợi ý điểm du lịch áp dụng thuật toán k láng giềng gần nhất
4 | Quản lý thông tin khách du | Quản lý thực hiện các thao tác xem chỉ tiết,
lịch tìm kiếm, thêm, hủy, xóa, cập nhật thông
tin khách du lịch.
5 | Quản lý thông tin địa diém | Quản lý thực hiện các thao tác xem chỉ tiết,
tìm kiếm, thêm, hủy, xóa, cập nhật thôngtin địa điểm
6_ | Quản lý thông tin tour Quản lý thực hiện các thao tác xem chi tiết,
tìm kiếm, thêm, hủy, xóa, cập nhật thông
tin tour.
7 | Quản ly khuyến mãi Quản lý thực hiện các thao tac xem chi tiết,
tìm kiếm, thêm, xóa, cập nhật khuyến mãi.
8 | Quản ly đặt tour Quản lý thực hiện việc đặt tour, cập nhật
thông tin đặt tour, hủy tour.
9 | Quản lý thông tin khách sạn | Quản lý thực hiện các thao tac xem chi tiết,
tìm kiếm, thêm, hủy, xóa, cập nhật thông
tin khách sạn.
10 | Quản lý đặt khách san Quản lý thực hiện các thao tác đặt phòng,
xóa, cập nhật.
11 | Thống kê doanh thu Thống kê doanh thu theo danh sách tour
hoặc theo biểu đồ
Tác nhân nhân viên công ty:
Bảng 3.2: Bảng mô tả chức năng dành cho nhân viên công ty
24
Trang 38Xây dựng website gợi ý điểm du lịch áp dụng thuật toán k láng giềng gần nhất
1 | Đăng nhập Thực hiện đăng nhập trước khi vào hệ
thống, nhập tên đăng nhập và mật khâu.Kiểm tra xem tài khoản có ton tại trong hệ
thống, nếu hợp lệ cho phép thực hiện các
chức năng dành cho quản lý, ngược lại
thông báo lỗi yêu cầu nhập lại
2 | Quản lý thông tin khách du
lich.
Quan ly thuc hién cac thao tac xem chi tiết,
tìm kiếm, thêm, hủy, cập nhật thông tin
khách du lịch.
3 | Quan lý thông tin địa diém Quan ly thuc hién cac thao tac xem chi tiết,
tìm kiếm, thêm, hủy, cập nhật thông tin địa
điểm.
4| Quản lý thông tin tour Quản lý thực hiện các thao tác xem chi tiết,
tìm kiếm, thêm, hủy, cập nhật thông tin
tour.
5 | Quan lý khuyến mãi Quan ly thuc hién cac thao tac xem chi tiét,
tim kiém, thém, huy, cap nhat khuyén mãi
6_ | Quản lý đặt tour Quản lý thực hiện việc đặt tour, cập nhật
thông tin đặt tour, hủy tour.
7| Quản lý thông tin khách sạn Quản lý thực hiện các thao tac xem chi tiết,
tìm kiếm, thêm, hủy, cập nhật thông tin
khách sạn.
8 | Quan lý đặt khách san Quản lý thực hiện các thao tac đặt phòng,
cập nhật.
9 | Thong kê doanh thu Thống kê doanh thu theo danh sách tour
hoặc theo biểu đồ
25
Trang 39Xây dựng website gợi ý điểm du lịch áp dụng thuật toán k láng giềng gần nhất
Tác nhân khách du lịch:
Bảng 3.3: Bảng mô tả chức năng dành cho khách du lịch
STT Tên chức nang Mô tả
1 | Đăng nhập Thực hiện đăng nhập vào hệ thông, nhập
tên đăng nhập và mật khẩu Kiểm tra hợp
lệ đúng với dữ liệu có sẵn thì hệ thống sẽ
cho phép đăng nhập dé thực hiên các chức
năng trên website.
2 | Đăng ky Khách hàng đăng ký thành viên thông tin
tài khoản Nếu khách hàng chưa là thànhviên công ty, hệ thống sẽ ghi nhận là lưu
thông tin vào CSDL Sau khi đăng ký,
khách hàng có thê đăng nhập và thực hiện
các chức năng trên website.
3 _ Xem thông tin địa điểm Xem thông tin chỉ tiết địa diém mà khách
muốn đến
4 | Xem thông tin tour va Xem thông tin tour va đánh giá bình luận
thông tin tour khuyến mãi ' tour
5 | Xem thông tin khách san Xem thông tin chi tiết khách sạn và liên hệ
đặt khách sạn nếu cần
6 | Tìm kiếm địa Lọc ra những địa diém/tour/khach san mà
diém/tour/khach san khach hang tim kiém
7 | Dat tour Khach hang dat tour du lich ma khach
hang muon di.
26
Trang 40Xây dựng website gợi ý điểm du lịch áp dụng thuật toán k láng giềng gần nhất
8 | Bình luận Khách hàng có thê đưa ra ý kiên của mình
thông qua bình luận.
mình sau khi kết thúc cuộc hành trình tour
27