HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIÊN THONG KHOA CÔNG NGHỆ THÔNG TIN 1
ĐỎ ÁN
TÓT NGHIỆP ĐẠI HỌC
ĐÈ TÀI:
“NGHIÊN CỨU XÂY DỰNG MẠNG XÃ HỘI DU LICH TREN NEN TANG DI
Giảng viên hướng din : TS Đỗ Thị Liên
Sinh viên thực hiện : Phạm Công Tuân
Lớp : DI9CNPM2
Khóa : D19 (2019 — 2024)
Hệ : ĐẠI HỌC CHÍNH QUY
Hà Nội, năm 2023
Trang 2Đồ án tốt nghiệp Đại học
LỜI CẢM ƠN
Những ngày tháng cuối của cuộc đời sinh viên được dành cho quá trình làm đồ
án tốt nghiệp đầy cung bậc cảm xúc Gần 5 năm gắn bó với Học Viện Công nghệ Bưuchính Viễn thông, với các thầy cô, với các bạn ở trường sẽ những giờ học, kiến thức
mà còn là cả kỷ niệm và trải nghiệm vô giá Khi viết những dòng này, em xin bảy tỏ
lòng biết ơn chân thành đến các thầy cô Học viện Công nghệ Bưu chính Viễn thông,
những người đã truyền lửa cho nhiều thế hệ sinh viên với tất cả lòng đam mê và nhiệt
huyết của mình.
Trước tiên em xin gửi lời cảm ơn sâu sắc đến TS.Đỗ Thị Liên, người đã tận tâm chỉ bảo trực tiếp em trong quá trình thực hiện đồ án tốt nghiệp Những kiến thức và bài
học thực tế của cô chia sẻ đã giúp em làm rõ mà nhìn nhận lại được những điều đangvướng phải trong quá trình tìm hiểu đề tài cũng như con đường nghề lập trình đã chon.
Cuối cùng, em xin chân thành cảm ơn gia đình, bạn bè, đồng nghiệp ở trường
học cũng như cơ quan đã động viên, hỗ trợ em trong lúc khó khăn dé em có thé học
tập và hoàn thành đồ án tốt nghiệp một cách trọn vẹn nhất.
Mặc dù đã có nhiều cô găng và nỗ lực tìm hiểu nhưng đo thời gian và kinh
nghiệm trong phát triển phần mềm còn hạn chế nên em không thé tránh khỏi những
thiếu sót Em rất mong nhận được sự góp ý của các thầy/cô dé em có thé cải thiệnđược cách nhìn nhận và trao d6i kiến thức ngày một hoàn thiện hơn.
Em xin chân thành cảm ơn!
Trang 3Đồ án tốt nghiệp Đại học
NHẬN XÉT, ĐÁNH GIÁ, CHO DIEM
(CUA NGƯỜI HUONG DAN)
Điểm: (bằng chữ: )
; Đồng ý/ Không dong ý cho sinh viên bảo vệ trước hội đồng cham đồ án
tôt nghiệp?
¬————— , ngày tháng năm 2023
CÁN BỘ GIẢNG VIÊN HƯỚNG DẪN
SV: Phạm Công Tuân — Lớp: DI9CNPM02
Trang 4Đồ án tốt nghiệp Đại học
NHAN XÉT, ĐÁNH GIÁ, CHO DIEM
(CUA GIÁO VIÊN PHAN BIEN)
Điểm: (bang chữ: )
; Dong ý/ Không đồng ý cho sinh viên bảo vệ trước hội đồng cham đồ án
tôt nghiệp?
be tee een e eens , ngày thang năm 2023
CÁN BỘ GIẢNG VIÊN PHẢN BIỆN
SV: Phạm Công Tuân — Lớp: DI9CNPM02
Trang 5Đồ án tốt nghiệp Đại học
Mục Lục
LOT CAM 090 2
NHAN XÉT, DANH GIA, CHO DIEM (CUA NGƯỜI HƯỚNG DÃN)) - 3NHAN XÉT, DANH GIA, CHO DIEM (CUA GIAO VIÊN PHAN BIỆN) - 4DANH MỤC CÁC TU VIET TAT u.cccssccscscsssscssssesscsscscsussesessusevsucsesecsusersussesessusevsvsesesevevsveneess 7
DANH MỤC HINH ẢNH - 22-522 2E22EE22E1122112711271127112712112112112112111111111 xe §
090271000077 12
Chương 1: Tổng quan về mạng xã hội - 2-22 +2+2E£+EE£+EE£2EE+2EE2EE22E2212212212222 2e 141.1 Xác định yêu cầu hệ thống mạng xã hội du lịch ¿2+ 5+ +++e+++e£+se+serseersxks 141.1.1 Mục đích hệ thống: ¿2-22 E+2E2E1SEEE2122212711211271711211712112111111 1111 xe 141.1.2 Khảo sát các sản phẩm tương tự: ¿52-52 222212 12E1211211211211211211211 21.2111 te 14
1.1.3 Yêu cầu hoạt động của ứng đụng: 2- 2 s+2E+EE£EE£EEE 7171711121121 cxe 14
1.2 Thiết kế tương tÁc - s22: 22+221222122112211221122112211221121112111211121112111211211211 211 re 161.3 Xác định phương pháp tiếp cận và giải quyết Van đề -2- 2 c2 z2zxczxcsrxrres 171.3.1: Mô hình tổng quát hệ thống ¿2 ©£ £+2E+2E£+EE£EE+2EEEEEEEEE2EEE2E22121222221 xe 17
1.3.2 Phương pháp xây dung phần mềm -2 2 2 E+EE+EE£EEE+EEEEEEEEEEEEEEEerErrkrree 171.3.3 Kiến trúc ứng dụng -¿- + ¿22s 2k E2 12711211271111211 1111112111111 1111111 18
1.3.4 Công nghệ triển khai hệ thống 2-22 S2+2E22EE2EE22EE22EE2EE22E 221221221 ke 191.4 Kết luận - set 2t tEE2EEE15111121511111111111E11EE1111111111111 1.11111111111111 Trey 23
Chương 2: Ứng dụng công nghệ tư van cho mạng xã hội du lịch - 2 2 + s25: 242.1 Bài toán tư vấn :-222vvtth nh HH re 242.2 Các phương pháp xây dựng hệ tư VẤN: - 2-2 S2SE‡EE E2 E211211711211271211 1111 xe, 24
2.2.1 Lọc dựa trên nội dung - - + +2 +21 33115115112 111121 1211111111211 111111111 11 11kg 24
2.2.2 LOC CONG ưtttiÝ 26
2.2.3 Phuong 89:98) 100n 4000117 27
2.3 Hệ thống gợi ý theo nội đung - + + %+SE+EE9EE9E12E12E12E1211211211211211211211211 11111 cExC 29
2.3.1 bên on 29
"ˆE Nhi) 01017 30
2.4 KẾT luận St sc ch 11 EE121115111111111111111 11111111111 1111111111 1111111111111 TEE.EEErkE 31Chương 3: Phân tích và thiết kế hệ thống, 2 2© £+SE+EE+£E£+EE£EE2EEEEEEEEEEEEEErEErrrrrrei 32
SV: Phạm Công Tuân — Lớp: DI9CNPM02
Trang 6Đồ án tốt nghiệp Đại học
3.1 Phân tích hệ thống, -¿- - £+SE+SE2EE2EEtEEE2E1E2112212711211271711211717112117111 1111 xe 323.1.1 Biểu đồ usecase hệ thống - - 2-2 Ss2S12E19E12E121121121121121171171111111111 1111 cce 32
3.1.2 Phân rã biểu đồ Usecase - 2-2221 2EE22E112211221211211211211211211 211.11 re 33
3.1.3 Kich ban ao e 37
3.1.4 Biểu đồ lớp phan tich c cccccccccccscsssesssessessesssecsseessecssesssecssesssesssecssecssesssessusssseseeeee %63.2 Thiết kế hệ thống - ¿22 2 E+EE£EE9EE2E12712112717112111121121171121111711211 11 cty 593.2.1 Thiết kế biểu đồ tuần tự của một vai usecase chính 2- 252 z+xczxzzzzsz 59
3.2.2 Biểu đồ lớp thiết kẾ ¿- 2: ©¿ £SE2EE9EE92E121171121121121121111.11 11111111111 re 703.2.3 Biểu đồ gói - 5-21 2t 1 12711211 211111211 2111 11 1 11 10 101 1e 71
3.2.4 Biểu đồ triển Khai ceccecccccscessesssessessessessesssessesssssessesssessessesssetsessessssesseesessssseessess 713.2.5 KẾT luận ¿St E211 1121111111111 1111111111 111111 1111111111111 11x EExE.crkE 71Chương 4: Thiết kế co sở dit liệu 2-2 2 2 £+E£+E£2E£EE£EEEEEEEEEEEEEXE71111111211211 11111 c1e 72
4.1 Lược đồ cơ sở đữ liỆu - 22 2¿+2+222E+2E122711271127122711271271211211211211.11 2111 yee 72
3.1 Cài đặt project Spring Boot PTOJ€C( - c1 vn HH HH HT nghệ 813.2 Cai dat Django Project 6 82
4 Một số hình ảnh của ứng dun g.e eccecececescsscesessessessessessessessessessessessessessessessesssesesseseesesees 83
4.1 Các giao diện phía người dÙng - - -c c1 2 22312 2 11 111 111 1111 111 1 ng vn vết 834.2 Các giao diện phía quan tri VIÊN - 222322131121 1211251 5111531111111 111111 E111 ke 87
KET LUẬN - 5c sc kề ỀEEE1E11211211211211211211 2111111111111 1 1 1 1 1 1 1 1 1 111 re 88TÀI LIEU THAM KHHẢO - - St tt EEEEEEEEEEEEEESEEEEEEESEEEEEEEEEEEEEEEEEEEEEEEETEEEEEEEETETErrrtrtke 89
SV: Phạm Công Tuân — Lớp: DI9CNPM02
Trang 7Đồ án tốt nghiệp Đại học
DANH MỤC CÁC TỪ VIET TAT
Từ viết tắt Viết đầy đủ
SOA Service-Oriented Architecture
REST REpresentational State Transfer
SOAP Simple Object Access Protocol
JVM Java Virtual Machine
TF-IDF Term Frequency - Inverse Document Frequency
CSDL Cơ sở dữ liệu
SV: Phạm Công Tuân — Lớp: DI9CNPM02
Trang 8Đồ án tốt nghiệp Đại học
DANH MỤC HÌNH ẢNH
Hình 1: Hình ảnh thiết kế tương tác :- 22 25x22 2EE2EE£EE2E1221E2121121 212222 crk 15 Hình 2: Mô hình tong quát hệ thống - - 2 2 SESE+EE2EE2EE2EE2EEEEEEEEEEEEErEErErrrrree 16
Hình 3: Mô tả các thành phần của MVVM4 cccsscssesssessessesssessessesssessessesssessessseesesucaes 18
Hình 4: Mô hình xử ly của hệ thống gợi ¥ cecececsscssessessessessessessessessesessesessssesneeeseeees 28
Hình 5 Mô tả dữ liệu địa điểm du lịch - 2-5 2+2++2Et2EE2E£EEEE2E2EEEESErrkerkrree 29
Hình 6 Mô tả dữ liệu sở thích du lịch - + 22 * E322 11E£*+22£#EEEeeseeeereeszzeeee 29
Hình 7 Mô tả dữ liệu hồ sơ người dùng được thực nghiệm -.- +55 + +55 <+++++ 30
Hình 8 Mô tả kết quả thực nghiệm - 2-2 2S ESE+E£EE2EEEEEEEEEEEEEEEEEEEEEEEEkrkrrrrei 30 Hình 9: Biểu đồ usecase tổng quát - 2-52 S x9E2EEE12EE21811217121121111 1111 xe 31 Hình 10: Biểu đồ chi tiết usecase quản lý hồ sơ cá nhân - 5+ 252+s+£+£z£zc+2 32 Hình 11: Biểu đồ chi tiết usecase kết nối và tương tác người đùng - 32 Hình 12: Tìm kiếm và khám phá địa điểm du lịch - 2: ©¿2-++c++s++x+z+zxz>xez 33
Hình 13: Tạo bài đăng - Án HT HT HT HH nếp 33Hình 14: Tương tác bài đăng - - - - - 2 2201121112111 311 11911191111 ng ng kg key 34
Hình 15: Quản lý nhóm - 2 2£ S2S£2SE9EE92E22E122121121122121121712112171211 2121 re 34Hình 16: Quản ly người dùng 2 022211121132 11111119111 111 19g kg kg key 35
Hình 17: Quản lý thông tin du lỊCH 2c c2 2212211132113 1315111151111 rre+ 35
Hình 18: Biểu đồ lớp phân tích - 2-2 + 22t Et+E£EE£EEEEEEEEEEEEEEEEEEEEEEEEEEEerkrkrree 57
Hình 19: Biểu đồ tuần tự Chỉnh sửa thông tỉn 2-2 2 se Ee*EeEEEEEeEEEEEEExerkrreeg 58
Hình 20: Biều đồ tuần tự Cập nhật sở thích - - 2 + +52 E£EE+E£E+EeEeErrxzxerres 58 Hình 21: Biéu đồ tuần tự Tìm kiếm và kết bạn -¿-¿- + +EvEEEEE+E+EEEEEzE+EsErersere 59 Hình 22: Biểu đồ tuần tự nhắn tin - - 2-5252 S22E2E22E22E2E2171717171 21212 2ExeE 60 Hình 23: Biểu đồ tuần tự Thích bài đăng 2 SE E£SE£EE+EEEEEEEEEEEEEEErkrkrkerres 61 Hình 24: Biéu đồ tuần tự Bình lWa0 c.ccceccccccsecsecsessessessessesessseseesesesesesesseseeeeseeess 61 Hình 25: Biểu đồ tuần tự Xóa bai Gang eeccccccccssssssssesseessssessesssssseesessessesseeseeseees 62 Hình 26: Biểu đồ tuần tự Xem chi tiết và tải ảnh -2- 2 2+52+E++E2EczErxerxzeerees 62 Hình 27: Biểu đồ tuần tự Tìm kiếm và khám phá địa điểm du lịch - 63
Hình 29: Biểu đồ tuần tự Tìm kiếm và xem chi tiết nhóm - 2 2+s+x+£eze£zcx2 64
SV: Phạm Công Tuân — Lớp: DI9CNPM02
Trang 9Đồ án tốt nghiệp Đại học
Hình 30: Biểu đồ tuần tự thêm nhóm :¿-2522t22vtttEExrrtrtrrrtrtrrrrrrrrrrrrree 64 Hình 31 Biểu đồ tuần tự xóa nhóm -s: 22t vttttEktrtttttrrrtrrrtrrrrrirrrrrrk 65
Hình 32 Biểu đồ tuần tự sửa nhóm - - - 5: SE SE2EEEESESEEEEEEEEEEEEEEEEEEEEEEEEEEEEEkrrer 65
Hình 33 Biéu đồ tuần tự duyệt tham gia nhóm cesses S2+EE£EE+E£E£EzEeEzEerees 66
Hình 34: Biểu đồ tuần tự Xóa tài khoản - 5-5: tt 3 EE2E2E3EE2EEE1112EEE11121212121 12x 66
Hình 35: Biểu đồ tuần tự khóa tài Khoan eeseecseeeesssesssseesseesneesnesenesseesseesneesneenees 67 Hình 36: Biéu đồ tuần tự Thêm địa điểm ¿5+ St SE+E+E+E£EEEEEEEEEE+EEErErErrskrkrsree 67
Hình 38: Biểu đồ tuần tự Sửa địa điểm -c¿-cccc c2 ttttrrtrrrrrrrrrrirrre 68 Hình 39: Biểu đồ tuần tự của hệ gợi ý địa điểm du lịch -2¿ 5 ++5+2xc5++2 69 Hình 40: Biểu đồ lớp thiết kỀ 2-5: S¿221‡2E92E2E122122112112712711211221221 212 te 69 Hình 41 Biểu đồ gói của android appn csscsscsssessesssssessessssssessessssssessessesssecsessessseeseees 70 Hình 42 Biểu đồ gói của spring booI 2-52 2+E9SE£EEEEEEEEEE2EEE121 21212121211 te 70
Hình 43 Biểu đồ triển khai 5:55: 22v 2 tt Hường 70 Hình 44: Lược đồ cơ sở dữ liệu .-:-:55cccc2ttt tri 71
Hình 45 Mô tả dữ liệu Chats icc cccccccccccsscsccceesscecccesssceccccesseseccessseeeesessseeeeenees 76Hình 46 Mô tả dữ liệu LLikes c5 2211111222311111 1253111111953 1111 vn rre 76Hình 47 Mô ta dữ liệu CommenIs 2c 2222111112 22231 1111195311111 5531 11k krrrrer 77Hình 48 Khởi tạo project F1rebase - - c1 22 1121112111211 1011181110111 0111188211 ky 78Hình 49 Tải và thêm file google-service.json vào Android app s55: 78
Hình 50 Các dich vụ của FIrebase - - 2111111111111 111111111 1 1n 79Hình 51 Khởi tạo Android app - - - c1 3211121113511 91115 11111119 1190111 ng ky 79Hình 52 Xây dựng lớp ApiService eee eeeesesseeeseeseceseseeceseeseeseceeeseseseseeesesneeseas 80Hình 53 Khởi tạo RetroÍTt - - - -G 52 2221111125231 111125531 1111220311111 1v nen 80Hình 54 Khởi tạo project spring DOOI - - + 2211121112 1151119111111 111k S0Hình 55 Các thư mục cua project Spring Boot sau khởi tạo -‹ -s<s+++<<ss2 81
Hình 56 Kết nối Spring Boot với MySql c.cecceccsessessessessessessessesesesessssesesesesteeeeeeees 81
Hình 57 Khởi tao project ÏDJafiØO - c1 1121112111311 11911 111111111011 1011 111181111 key 81Hình 58 Khởi tạo web app ccccccccceccessecessesseeeseesseeeseeeeseessecesseceeeseeeeeeessseeseesseeeee 82Hình 59 Cac thu mục của django project sau khởi ta0 cc eccceesccesseeeteeeseeesseeeeeteees 82Hình 60: Giao diện màn hình trang chủ - - c2 22 3321132111313 xxe+ 82Hình 61: Giao diện màn hình thông tin cá nhân . 2 2c 222222 E+vseeseeerses 83
SV: Phạm Công Tuân — Lớp: DI9CNPM02
Trang 10Đồ án tốt nghiệp Đại học
Hình 62: Giao diện màn hình menu - - 2 2211111181111 1E £EEEEEEkkkksssssse 83Hình 63: Giao diện màn hình chỉnh sửa thông tin - 5c 2c S32 *+ksseereerrererres 83
Hình 64: Giao diện chọn sở thích - + + 2 E3 3322321188 E3*333E355 5585311111111 ee 84
Hình 65: Giao diện màn hình thông báo - - c1 2211112111313 1 1xx, 84
Hình 66: Giao diện nhóm du lịch - - . + 2E S32 222 1183133211 EE E32 EEEEesszeeeeeeeeerres 85
Hình 67 Giao diện chi tiết nhóm du lich ccccccccccsssscsesesecesessesescsesesecececececeeesvsceceeeees 85
Hình 68 Giao diện quản lý người dùng - c2 1121112 1111118115811 1811 1118111 re 86
Hình 69 Giao diện quan ly thông tin dia điểm du lịch 5-5 52 s+s+xz£z£z£ezs2 86
DANH MUC BANG
Bảng 1: Kịch bản dang ký c0 1121112 111 11111111111 11111111 11 1g 1H 1E kg key 35
Bang 2: Kịch bản cập nhật thông tin cá nhân (c2 32213321 33E555ExEsrresrs 35
Bang 3: Kịch ban cập nhật sở thích 2 2c 1121112111111 11111111 1111111181111 811 re, 36
Bang 4: Kịch bản tìm kiếm người dùng - ¿5-52 S SE 2E 2E 2121211111111 te 37 Bang 5: Kịch bản nhắn tỉn 5-2-5 SE E21 181121E7121121112111211111111111 11111111 re 38 Bang 6: Kịch bản tìm kiếm và khám phá địa điểm du lịch - - 5 25s +sz£sczzs+2 39 Bảng 7: Kịch bản xem chỉ tiết địa điểm du lịch - 2: 25225222£2E22E2EczEczEerxerkerxees 39
Bảng 8: Kịch bản tạo bai đăng ảnh ce ng TH TH ng ệp 40Bang 9: Kịch bản tạo bai đăng VIdeO - Ánh nh TH TH nh nếp 41Bang 10: Kịch ban tạo bai đăng cảm ngÏï - - - - 5c 3213331132 E*EEESEEEsrerrrrkrrerrrerree 42Bảng 11: Kịch bản Thích/Bỏ thích - -. c2 3321112111351 115 115111111111 1111111 1g key 42
Bảng 12: Kịch bản chia sẻ bài đăng - . 5 2c 3201121133111 1511 1921111191111 18g11 ng key 43Bang 13: Kich ban x6a bai Gang ccc :+-+11s 43
Bang 14: Kịch ban xem chỉ tiết bai đăng và tai anh csceseesescsesesteeeeseseseeeees 44
Trang 11Đồ án tốt nghiệp Đại học
Bang 23: Kịch bản thêm địa điểm - - 2-5252 S22E22E22E2EE2E2E217171711111 1.11 ty 51 Bang 24: Kịch ban xĩa địa GUGM eeeecccccccecsececscsucecsvsucecsvsucecsesueessesusarsvevavsvavavavavavevsvevaes 52 Bang 25: Kich ban stra dia điỂm St 1E v21 111151111111111111111111111111111111E1E111 11x xe 52
Bảng 26 Mơ tả các bảng trong cơ sử dữ lIỆU 2c 2 c 1321112211111 118511 1115111111, 70Bảng 27 Mơ tả bảng US€T - c1 0221112111211 11111111111 11101110111 111 111111 E111 ng Hy 70Bảng 28 Mơ tả bảng IIf€T€Sf - - - c2 22201221112111911 111111011 11101 111 011111 H11 1n key 70Bảng 29 Mơ tả bảng UuS€T_Int€F€SK 2 2 2011211125111 1119 111811101111 11101111 g2 1 key 70
Bảng 30 Mơ tả bang user fỌÏOW Q 1221112 11119 11111111119 11 1H 11 ng khen, 71Bang 31 Mơ tả bảng DOS - c 0101221111211 1110111110111 1 01111 011 1E 1E KT KH ngà 71Bảng 32 Mơ tả bảng post linaØ€S 0 1 HT ệt 71Bảng 33 Mơ tả bang saved_DOSÍ - LH ng ng HH nh TH nh nh 71Bảng 34 Mơ tả bang traveÌ øTOUD - 2G 111g ng nếp 72
Bảng 35 Mơ tả bang group merm€T - c5 323133511333 3151 1193115111111 E91 1n key 72Bảng 36 Mơ tả bang gøroup_r€QU€SÍ Q0 22.12 11 n SH TH TH T1 H1 1111 ky 72Bảng 37 Mơ tả bang øTOUP DOSI - - G 20112111 119111 11111110111 11g 1n ng key 73Bảng 38 Mơ tả bang group poOSt IÀ€S - c2 1221111 1112 111 111111111 1811 1k rrg 73Bảng 39 Mơ tả bảng ÏOCatIOH - c1 22 222111211 13113211 1111111111011 1180111 1H vn key 73Bảng 40 Mơ tả bang location Imag€S - c2 3121112211121 11 11111811111 1811 1111811 re 73Bảng 41 Mơ tả bảng notIÍiCafIOH - - 5c c2 2221112111111 1 111911181111 11181118 1111 0211 key 73
SV: Phạm Cơng Tuân — Lớp: DI9CNPM02 11
Trang 12Đồ án tốt nghiệp Đại học
MỞ ĐẦU
Hiện nay nhu cầu mong muốn giao lưu kết bạn càng ngày càng cao đặc biệt với những
người có chung sở thích và đặc biệt hơn nữa là chung sở thích du lịch Trong những
năm gần đây, du lịch Việt Nam đã có những bước phát triển vượt bậc, trở thành một ngành kinh tế quan trọng, đóng góp đáng ké cho GDP của đất nước Theo số liệu của
Tổng cục Du lịch, năm 2022, Việt Nam đón hơn 9 triệu lượt khách quốc tẾ, tăng 110% so với năm 2021 Đây là mức tăng trưởng ấn tượng, khẳng định tiềm năng du lịch to
lớn của Việt Nam.
Nhu cầu du lịch của người Việt cũng ngày càng tăng cao Theo khảo sát của TGM
Research, 70% người Việt Nam có kế hoạch đi du lịch trong năm 2023 Trong đó, du lịch nội địa vẫn chiếm ưu thế với 75% lượt khách Các địa điểm du lịch được yêu thích
nhất bao gồm: Đà Nẵng, Nha Trang, Phú Quốc, Hà Nội, Hội An
Nhằm mục đích hỗ trợ người đi du lịch nhanh chóng có đầy đủ thông tin về các chuyến du lịch cũng như ra quyết định chia sẻ, kết nối và lựa chọn chuyến du lịch hợp lý, nhiều ứng dụng phần mềm đã ra đời Dién hình trong số đó có thé kế đến một số
ứng dụng Hahalolo, Travello,
Tuy nhiên nhược điểm của các ứng dụng này là chỉ tập trung chủ yếu vào bán tour du lịch chứ không tập trung vào mục đích chính là du lịch và kết nối, chia sẻ giữa những người có chung đam mê Dé khắc phục những nhược điểm này em đã quyết định lựa
chọn dé tài "Nghiên cứu xây dựng mạng xã hội du lịch trên nền tang di động" cho đồ
án của mình.
Mục đích chính của ứng dụng là nhằm cung cấp cho người dùng một ứng dụng để họ có thê kết bạn làm quen với những người cùng đam mê, chia sẻ kiến thức, kỷ niệm du
lịch cũng như khám phá các địa điểm du lịch mới.Ngoài ra, ứng dụng còn cung cấp
tính năng gợi ý các địa điểm du lịch dựa trên sở thích của người dùng.
Cấu trúc của đồ án bao gồm 4 chương như sau:
Chương 1: Tổng quan về mạng xã hội du lịch
Chương này sẽ trình bày khái quát về mục đích ứng dụng , khảo sát các ứng dụng tương tự, thiết kế tương tác, trình bày các công nghệ được sử dụng, xác định phương
pháp tiếp cận và giải quyết vẫn đề cho ứng dụng
Chương 2: Ứng dụng công nghệ tư vấn cho mạng xã hội du lịch
Chương này sẽ trình bày tổng quan về bài toán hệ tư vấn, các hướng tiếp cận giải
quyết hệ tư vân cơ bản Trên cơ sở nghiên cứu cơ bản, đô án tiêp cận thuật toán gợi ý
SV: Phạm Công Tuân — Lớp: DI9CNPM02
Trang 13Đồ án tốt nghiệp Đại học
theo nội dung(Content Based)thuộc hướng tiếp cận lọc theo nội dung dé đưa ra tư vấn các địa diém du lịch trong mạng xã hội cho người dùng
Chương 3: Phân tích và thiết kế hệ thống
Chương này sẽ trình bày cụ thể quá trình phân tích, thiết kế hệ thống theo phương pháp tiếp cận và giải quyết van đề đã xác định ở chương 1.
Chương 4: Thiết kế CSDL
Chương này sẽ trình bay cụ thé quá trình thiết kế cơ sở dé liệu của ứng dụng
Phụ lục: Cài đặt và triển khai
Chương này sẽ trình bày về quá trình cài đặt và kết quả thực nghiệm ứng dụng
Trang 14Đồ án tốt nghiệp Đại học
Chương 1: Tổng quan về mạng xã hội
Chương này sẽ giới thiệu tổng quan mục đích hệ thống, khảo sát một vài ứng dụng tương tự, mục tiêu của ứng dụng và sơ lược về các công nghệ được sử dụng
1.1 Xác định yêu cầu hệ thống mạng xã hội du lịch
1.1.1 Mục đích hệ thống:
Mang xã hội đang trở thành một phần quan trọng trong cuộc sông hàng ngày của mọi người Người dùng không chỉ sử dụng mạng xã hội dé kết nối với bạn
bè và gia đình, mà còn dé khám phá và chia sẻ các trải nghiệm cá nhân của họ.
Trong bối cảnh này, mạng xã hội du lịch đã trở nên phô biến hơn bao giờ hết.
Mục tiêu chính của hệ thống là tạo ra 1 ứng dụng mang xã hội du lịch được sử dụng để chia sẻ hình ảnh, thước phim của những chuyến đi, tìm kiếm các đối
tác có cùng đam mê cũng như khám phá và tìm kiếm thông tin về các địa điểm
du lịch.
1.1.2 Khảo sát các sản phẩm tương tự:
Tiến hành khảo sát 1 số ứng dụng tương tự:
¢ Hahalolo: ứng dụng mạng xã hội du lịch “Make In VietNam”, ứng dụng này
cho phép người dùng chia sẻ hình ảnh/thước phim và kê về trải nghiệm du lịch
của họ.Hahalolo còn có kho tổng hợp các kinh nghiệm du lịch ở tất cả các địa điểm trong nước và thế giới dé hỗ trợ việc tìm hiểu, lựa chọn địa điểm va những kinh nghiệm cần thiết cho người dùng.
« Travello: ứng dung mạng xã hội du lịch cho phép người dùng chia sẻ hình
ảnh/thước phim, kê về trải nghiệm du lịch của họ, tìm kiếm các thông tin về địa điểm du lịch và xây dung các cộng đồng du lịch.
Nhìn chung các ứng dụng mạng xã hội du lịch đều có chung các chức năng cơ bản như chia sẻ hình ảnh/thước phim, kể về trải nghiệm du lịch và tìm kiếm,tuy nhiên nhược điểm của các ứng dụng trên vẫn chỉ chung mạng xã hội chứ chưa
bao quát được mục đích chính là du lịch.Để khắc phục điều nay,ngoai các tính năng trên, đồ án sẽ có thêm các chức năng như tạo nhóm du lịch,khám phá địa
điểm du lịch và gợi ý địa điểm du lich phủ hợp với sở thích người dùng 1.1.3 Yêu cầu hoạt động của ứng dụng:
Xây dựng thành công ứng dụng mạng xã hội du lịch phục vụ cho nhiều mục đích khác nhau, từ việc chia sẻ trải nghiệm du lịch, tìm kiếm thông tin về địa điểm du lịch, kết nối với những người bạn có cùng sở thích Xây dựng thành công hệ thống gợi ý địa điểm du lịch dựa trên sở thích của người dùng.
Trang 15Đồ án tốt nghiệp Đại học
Phần dành cho người dùng:
« Dang Ký: Người dùng có thé đăng ký tài khoản trong hệ thống dé sử
dụng ứng dụng.
* Quan lý Hồ Sơ Du Lịch Cá Nhân: Người dùng có thé tạo và quản lý hồ
sơ cá nhân với thông tin cơ bản, hình ảnh, và sở thích du lịch.
¢ Tim Kiếm và Khám Phá du lịch: tính năng cho phép người dùng tìm
kiếm và khám phá về các điểm đến, hoạt động du lịch.
« - Kết nỗi và tương Tác người dùng:cho phép người dùng có thê kết nối với
nhau,mời tham gia nhóm,tìm kiếm,bình luận,chat, và tương tác trong cộng đồng.
¢ - Tương tác với bài đăng: cho phép người dùng tương tac(chia sẻ bai đăng,
bình luận, thích, lưu, ) với các bài đăng trong nhóm và của các người
dùng khác
« Tao bài đăng: cho phép người dùng có thé tao và lưu trữ những kỷ niệm
du lịch, gắn với hình ảnh và trải nghiệm.
« Quan lý nhóm: cho phép người dùng tạo,sửa,xóa,tìm kiếm các nhóm du lịch, duyệt yêu cầu tham gia, yêu cầu và hủy yêu cầu tham gia nhóm
Phần dành cho người quản trị:
« Quan lý người dùng: cho phép quản trị viên có khả năng tìm kiếm, quản
lý thông tin người dùng,khóa,xóa tài khoản người dùng.
* Quan lý thông tin địa điểm du lich: cho phép quản trị viên có thé tạo và quản lý các nội dung liên quan tới các địa điểm du lịch.
Phần ứng dụng công nghệ tư vấn cho mạng xã hội du lịch:
¢ Thanh công gợi ý các địa điểm du lịch pha hợp nhất với từng người dùng
thông qua sở thích của họ
SV: Phạm Công Tuân — Lớp: DI9CNPM02
Trang 16kchtàr<0 EỂN eens C | — tgiisk
ma: —-51.- mm = S521 Tang orm `
5.5.3.1 Chỉ tiết dia điểm du lịch.
oo = > Kiriy và xea khói
chaning seen danh sách
Cho mông ton đến ôi Se Aap PERS 6110annsăenliehsichat4.0 Miền hlnh quén mật khẩu FC,
TẾ tiên Tỳ Chen dja diém
Trang 17Tìm kiếm người dùng Hiến thị,thêm,xóa thông báo
Hiển thị,thêm,xóa thông báo em sia xóa Vu bal dang SQL Query
Hién thi bang tin
Xem chi tiét bai dang
Hiển thị bảng tin đan of ———== M Ss Q LTương tác với người dùng Response =———
Xem chi tiét bai dang khac
Tương tác với người dùng Quản lý nhóm
khác Re P
Tương tác với các nhóm
— Tìm kiếm các bài đăng
Tương tác với bài đăng
—————— Gợi ý địa điểm du lịch
Tìm kiếm các bài đăng
Gợi ý địa điểm du lịch
( 2 Java Spring Boot m
Hình 2: Mô hình tổng quát hệ thong
1.3.2 Phương pháp xây dựng phần mềm
Căn cứ vào mô hình tổng quát của hệ thống, em lựa chọn xây dựng và phát triển
cho toàn hệ thống phần mềm theo kiến trúc hướng dịch vụ, ứng dụng sẽ giao tiếp với
hệ thống backend thông qua service, ứng dụng di động sẽ gửi request tới hệ thống backend và nhận về đữ liệu dưới dang json.Ngoai ra, hệ thong ứng dung sinh tư van dia diém du lich cũng sẽ được xây dựng theo kiến trúc hướng dịch vụ Hệ thống sinh
tư vấn lay dữ liệu từ database, thực hiện huấn luyện dữ liệu và trả về kết quả là danh
sách địa điểm gợi ý dưới dang json Ưu điểm của hướng dịch vụ:
¢ Tinh mô-đun và tái sử dung: SOA cho phép chia ứng dụng thành các dịch vụ
độc lập Điều này làm cho mã nguồn dễ quản lý hơn và tạo điều kiện thuận lợi
cho việc tái sử dụng các dịch vụ trong các dự án khác.
SV: Phạm Công Tuân — Lớp: DI9CNPM02
Trang 18Đồ án tốt nghiệp Đại học
¢ Kha năng tích hợp: mỗi dich vụ có thé hoạt động độc lập, nhưng cũng có khả năng tích hợp với các dịch vụ khác thông qua giao thức chuẩn như REST hoặc
Öồ Mo rong dé dang: SOA tao diéu kiện cho việc mở rộng hệ thống một cách dễ
dàng Khi lưu lượng và yêu cầu tăng lên, bạn có thé dé dang mở rộng bang cách triển khai thêm các phiên bản của các dịch vụ.
Nhược điểm:
« Phuc tạp trong quan lý: một số người cho rang SOA có thé phức tap trong việc
quản lý vì có nhiều dịch vụ độc lập cần theo dõi và duyệt.
« Nhat quan dit liệu: điều này có thé trở thành một van đề nếu không có quan lý
chặt chẽ về đồng bộ hóa dữ liệu giữa các dich vụ.
1.3.3 Kiến trúc ứng dụng
Căn cứ vào mô hình tổng quát của hệ thống, em lựa chọn xây dựng ứng dụng Android với kiến trúc MVVM.
MVVM là một biến thé của mau thiết kế mô hình trình bày của Martin Fowler Nó được phát minh bởi các kiến trúc sư Microsoft, Ken Cooper và Ted Peters đặc biệt dé
đơn giản hóa việc lập trình theo hướng sự kiện của giao diện người dùng John
Gossman, một trong những kiến trúc sư WPF và Silverlight của Microsoft, đã công bố
MVVM trên blog của mình vào năm 2005.
Từ đó đến nay MVVM càng khăng định vị thế của mình là một mô hình phù hop cũng như mạnh mẽ trong phát triển phần mềm Trong Google I/O 2017 Google đã
công bố 1 chuẩn về Architecture Components Nó hỗ trợ rất mạnh mẽ mô hình
MVVM như nột lời gợi ý của Google về mô hình này.
Các đề xuất chính của Google hỗ trợ MVVM, tận dụng những thứ như LiveData và
ViewModels dé giải quyết hai van đề phổ biến nhất ma ứng dụng Android phải đối mặt: thay đổi vòng đời và xoay màn hình Sự tách biệt hợp lý giữa logic và hành vi
cho phép các ứng dụng linh hoạt và dễ bảo trì.
MVVM bao gồm 3 thành phan chính:
«ồ ViewModel
ViewModel sẽ lay dữ liệu từ tang Model, xử ly UI logic sau đó hiển thi data có
liên quan tới view ViewModel sẽ không có bất kỳ behavior nào để tương tác với View Như vậy dé nhận biết khi nào cần hiển thi dir liệu, View sẽ đăng ký
lắng nghe sự kiện từ ViewModel thông qua lớp lưu trữ đữ liệu quan sát được phổ biến là LiveData
Trang 19Đồ án tốt nghiệp Đại học
ViewModels sẽ sử dụng các model nếu cần định nghĩa đữ liệu Sự liên kết giữa
View - ViewModel giúp chúng gửi và nhận dữ liệu ViewModel sẽ là thành
phần trung gian giữa model và view, ViewModel là nơi xử lý tất cả các
business logic, điều này giúp View không còn chứa các thành phần này mà chỉ
cần chứa những thứ liên quan tới UI.
« View
Thanh phan giao diện của ứng dụng View là thành phan duy nhất mà người
dùng có thê tương tác được trong chương trình, nó chính là thành phần mô tả đữ
liệu Trong lập trình android, View là một activity, fragment, hay một customview
¢ Model
Model là các đối tượng giúp truy xuất và thao tac trên dit liệu Model chứa phan
data được lay từ nhiều nguồn khác nhau, ví dụ như: từ local database hoặc
remote server
Hình 3: Mô ta các thành phan cia MVVM
1.3.4 Công nghệ triển khai hệ thống
Dựa vào mô hình tổng quát của hệ thống, lựa chọn các công nghệ phù hợp với
hệ thống như sau:
1.3.4.1 Với Module ứng dụng di động
Ngôn ngữ lập trình Kotlin cho Android: Kotlin là một ngôn ngữ lập trình được
tạo ra bởi JetBrains Cũng giống như Java, ngôn ngữ lập trình mặc định cho Android, Kotlin chạy trên nền tảng Java Virtual Machine Khả năng tương tác mạnh mẽ giữa Kotlin và Java đã làm cho ngôn ngữ lập trình này trở thành một sự lựa chọn phô biến
SV: Phạm Công Tuân — Lớp: DI9CNPM02 19
Trang 20Đồ án tốt nghiệp Đại học
của các nhà phát triển Kotlin đã được Google đã công nhận sẽ là ngôn ngữ lập trình
đứng đầu cho hệ điều hành Android và chúng ta có thể thấy từ Android studio 3.0.
Kotlin cũng đã được thêm vào tùy chọn khi bạn bắt đầu một project mới Hiện nay
Kotlin đã trở thành ngôn ngữ chính thức cho lập trình Android.
Một sô ưu điêm của Kotlin
Kotlin code rất gọn gàng so với java, có người còn nói dùng kotlin có thể ngắn
gọn code 40 %
Được Google support nên cộng đồng Kotlin cũng rất đông, bạn không phải lo
ngại về việc tìm kiếm các câu hỏi trên các diễn đàn hay StackOverFlow,
Viết một lần, chạy mọi nơi: cũng như Java, Kotlin cũng biên dịch mã nguồn thành mã bytecode, và có thé chạy được trên các thiết bị đã cài sẵn JVM (Java
Virtual Machine).
Tương thích với java, bộ thu viện dành cho kotlin đang ngày càng được pháttriên.
1.3.4.2 Với module hệ thống backend
+ Java Spring Boot(Server)
Java Spring Boot là một framework phát triển ứng dụng web và dich vu RESTful mạnh mẽ và linh hoạt Việc sử dung Java Spring Boot giúp hệ thống đạt được mục tiêu
Tính bảo mật: Java Spring Boot đi kèm với một loạt các tính năng bảo mật cho
phép chúng tôi bảo vệ dữ liệu của người dùng, quan tri truy cập va xác thực an
Tính ứng dụng đa nhiệm: Spring Boot hỗ trợ việc phát triển các địch vụ web và RESTful dé dang, cho phép ứng dụng xử lý nhiều yêu cầu từ người dùng cùng
Mở rộng dễ dàng: một ưu điểm quan trọng của Spring Boot là khả năng mở
rộng dự án một cách dé dàng khi lưu lượng và yêu cầu tăng lên Chúng tôi có
thé triển khai thêm các dịch vụ ma không làm ảnh hưởng đến toàn bộ hệ thống.
Tích hợp linh hoạt: Spring Boot cho phép tích hợp dé dàng với nhiều công nghệ
khác, bao gôm cơ sở dữ liệu, công cụ mã nguôn mở và dich vụ bên ngoai.
Việc sử dụng Java Spring Boot cho phần server của ứng dụng mạng xã hội du lịch
mang lại nhiều ưu điểm quan trọng Spring Boot giúp tạo ra một kiến trúc linh hoạt, dễ quản lý và bảo mật trong quá trình phát triển Đồng thời, việc hỗ trợ tích hợp giúp kết
nôi với các dich vụ bên ngoài va cơ sở dt liệu một cách dê dàng.1.3.4.3 Với cơ sở dữ liệu và lưu trữ
SV: Phạm Công Tuân — Lớp: DI9CNPM02
Trang 21Đồ án tốt nghiệp Đại học
Đồ án sẽ sử dụng cả hệ quản trị cơ sở dữ liệu MySQL và Firebase trong đó
Firebase sẽ được sử dụng để lưu trữ các đữ liệu đa phương tiện như hình ảnh,video và
MySQL sẽ được sử dụng dé lưu trữ các thông tin có cấu trúc như thông tin người
dùng, thông tin chỉ tiết các địa điểm,
+ Hệ quan trị cơ sở dữ liệu MySQL:
MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và được
các nhà phát triển rat ưa chuộng trong quá trình phát triển ứng dụng Vì MySQL là cơ
sở dit liệu tốc độ cao, ôn định va dé sử dụng, có tính khả chuyền, hoạt động trên nhiều
hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh Với tốc độ và tính
bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên internet.
MySQL miễn phí hoàn toàn có thé tải về MySQL 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, FreeBSD, NetBSD, Novell NetWare, SGI Irix,
Solaris, SunOS
MySQL là một trong những vi du rất cơ bản về Hệ Quản trị Cơ sở dữ liệu quan hệ sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL).
MySQL được sử dụng cho việc bồ trợ PHP, Perl, và nhiều ngôn ngữ khác, nó làm nơi lưu trữ những thông tin trên các trang web viết bằng PHP hay Perl,
Nếu bạn đang tìm kiếm một hệ thống quản lý cơ sở dữ liệu miễn phí hay là không đắt
tiền, một vài thứ có sẵn dé bạn chọn như: MySQL, SQL, Postgres Khi ban so sánh MySQL với các hệ thông cơ sở dit liệu khác, hãy nghĩ về những gi quan trọng nhất đối với bạn Sự thực thi, sự hỗ trợ, các đặc tính, các điều kiện và các giới hạn của bản
quyền, giá ca của tat cả các nhân tố dé có thể thực hiện Với những lý do đó, MySQL có nhiều đặc điểm cuốn hút:
* _ Tốc độ: MySQL rất nhanh Những nhà phát triển cho rằng MySQL là cơ sở đữ liệu nhanh nhất mà bạn có thê có.
¢ - Dễ sử dụng: MySQL tuy có tính năng cao nhưng thực sự là một hệ thống cơ sở
dữ liệu rất đơn giản và ít phức tạp khi cài đặt và quản trị hơn các hệ thống lớn * Gia thành: MySQL là miễn phí cho hầu hết các việc sử dụng trong một tổ chức ‹ H6 trợ ngôn ngữ truy van: MySQL hiểu SQL, là ngôn ngữ của sự chọn lựa cho
tất cả các hệ thống cơ sở dt liệu hiện đại Bạn cũng có thể truy cập MySQL bằng cách sử dụng các ứng dụng mà hỗ trợ ODBC (Open Database
Connectivity -một giao thức giao tiếp cơ sở dir liệu được phát triển bởi
Microsoft).
Trang 22Đồ án tốt nghiệp Đại học
Năng lực: nhiều client có thé truy cập đến server trong cùng một thời gian Các client có thể sử dụng nhiều cơ sở đữ liệu một cách đồng thời Bạn có thể truy cập MySQL tương tác với sử dung một vài giao diện dé bạn có thé đưa vào các
truy vấn và xem các kết quả: các dòng yêu cầu của khách hàng, các trình duyệt
Kết nối và bảo mật: MySQL được nối mạng một cách đầy đủ, các cơ sở dữ liệu có thé được truy cập từ bất kỳ nơi nào trên Internet do đó bạn có thé chia sẻ dữ
liệu của bạn với bat kỳ ai, bat kỳ nơi nào Nhưng MySQL kiểm soát quyền truy cập cho nên người mà không nên nhìn thấy dữ liệu của bạn thì không thé nhìn
Tính linh động: MySQL chạy trên nhiều hệ thống UNIX cũng như không phải
UNIX chang hạn như Windows hay OS/2 MySQL chạy được các với mọi phan cứng từ các máy PC ở nhà cho đến các máy server.
Sự hỗ trợ: bạn có thê tìm thấy các tài nguyên có sẵn mà MySQL hỗ trợ Cộng đồng MySQL rất có trách nhiệm Họ trả lời các câu hỏi trên mailing list thường chỉ trong vài phút Khi lỗi được phát hiện, các nhà phát triển sẽ đưa ra cách khắc phục trong vài ngày, thậm chí có khi trong vài giờ và cách khắc phục đó
sẽ ngay lập tức có sẵn trên Internet.
+ Firebase:
Firebase là một nền tảng giúp phát triển các ứng dung di động trong web Bên cạnh đó,
Firebase còn được hiéu là một dịch vụ co sở di liệu hoạt động trên nên tang dam mây
cloud với hệ thông máy chủ mạnh mẽ của Google.
Firebase chứa cơ sở dir liệu mang đến khả năng code nhanh và thuận tiện hơn Lập trình viên có thể đễ dàng lập trình ứng dụng băng cách đơn giản hóa các thao tác với
cơ sở đữ liệu săn có.
Ưu điểm của firebase là sử dụng miễn phí và thuận tién,dé sử dụng và tích hợp vào
Android và đáp ứng nhu câu của người dùng.
Một vài tính năng của firebase được tích hợp vào hệ thống:
Realtime Database: là một cơ sở di liệu thời gian thực Ngay sau khi ban đăng
ký tài khoản trên Firebase, bạn sẽ nhận được Realtime Database được lưu trữ
dưới đạng JSON và được đồng bộ hóa theo thời gian thực đối với mọi kết nối Đối với các ứng dụng được xây dựng trên đa nền tảng như Android, IOS và
WebApp, tat ca client sé cùng sử dụng một co sở đữ liệu Bên cạnh đó, hệ
thống dữ liệu này sẽ tự động cập nhật khi lập trình viên phát triển ứng dụng.
Sau đó, tất cả dữ liệu này sẽ được truyền tải thông qua các kết nói SSI có 2048
bit.
Trang 23Đồ án tốt nghiệp Đại học
Authentication: là tính năng giúp xác thực danh tính của người dùng ứng dụng.
Firebase cung cấp các bước xác thực thông qua Email, Facebook, Twitter,
GitHub hay Google Điều này giúp cho các thông tin cá nhân của khách hàng
được bảo vệ một cách tốt nhất, hạn chế được tình trạng bị hacker đánh cắp.
Đồng thời việc xác thực danh tính qua Firebase sẽ giúp người dùng tiếp cận sản phẩm nhanh chóng và an toàn hơn.
Cloud Storage: là tính năng cho phép lưu trữ và quản lý nội dung đã tạo ra như
ảnh, video, nội dung, văn bản, Firebase Storage cung cấp các API hỗ trợ bạn upload và download các file từ ứng dụng một cách trơn tru mà không cần quan
tâm đến chất lượng đường truyền mạng với độ bảo mật cao 1.3.4.4 Với module ứng dụng sinh tư van địa điểm du lịch
Python: là một ngôn ngữ lập trình mạnh mẽ, linh hoạt, và dễ đọc Nó được tạo
ra bởi Guido van Rossum và được phát hành lần đầu vào năm 1991 Python đã
trở thành một trong những ngôn ngữ lập trình phổ biến nhất trên thế giới với cộng đồng lập trình đông đảo.
Ưu điểm của python:
« Dé đọc và dễ hiểu: Python được thiết kế dé có cú pháp gần với ngôn ngữ
tự nhiên, làm cho mã nguồn trở nên dễ đọc và dễ hiểu Điều này giúp giảm thiểu thời gian và công sức khi phát triển và duy trì mã nguồn.
¢ Da mục đích: Python hỗ trợ nhiều loại ứng dụng khác nhau, từ phát triển
web đến trí tuệ nhân tạo, xử ly dir liệu, đồ họa máy tính, và nhiều lĩnh
vực khác Điều này làm cho Python trở thành một ngôn ngữ đa mục đích
và linh hoạt.
¢ Thu viện phong phú: Python đi kèm với một loạt các thư viện va
framework mạnh mẽ giúp đơn giản hóa quy trình phát triển Ví dụ,
NumPy cho xử ly mang và ma trận, pandas cho xử lý dữ liệu, Flask va
Django cho phát triển web, và TensorFlow/PyTorch cho machine
Django: là một framework phát triển web mạnh mẽ được xây dung bằng ngôn ngữ lập trình Python Được phát triển bởi Django Software Foundation, Django giúp nhà phát triển xây dựng ứng dụng web nhanh chóng và hiệu quả mà không cần phải viết lại nhiều mã nguồn Django được sử dụng rộng rãi cho việc xây
dựng các trang web và ứng dụng web phức tap Nó là lựa chọn phổ biến không
chỉ vì sự mạnh mẽ của nó mà còn vì sự hiệu quả và tiện ích trong quá trình phát
1.4 Kết luận
Trang 24Đồ án tốt nghiệp Đại học
Chương | đã trình bày về tổng quan mạng xã hội du lịch, những khái niệm chính về
những công nghệ được sử dụng đề xây dựng ứng dụng và nêu khái quát về những yêu cầu mà ứng dụng cần đạt được.
Trang 25Đồ án tốt nghiệp Đại học Chương 2
Chương 2: Ứng dụng công nghệ tư vấn cho mạng xã hội
du lịch
Chương này sẽ trình bày tổng quan về bài toán hệ tư vấn, các hướng tiếp cận
giải quyết hệ tư vấn cơ bản Trên cơ sở nghiên cứu cơ bản, lựa chọn thuật toán dé đưa ra tư vấn các địa điểm du lịch trong mạng xã hội cho người dùng
2.1 Bài toán tư van
Hệ tư vấn là một loại hệ thống gợi ý (recommendation system) được thiết kế dé cung cấp cho người dùng thông tin và hướng dẫn dé giúp họ đưa ra quyết định Hệ
thống tư vấn có thê được sử dụng trong nhiều lĩnh vực khác nhau, chăng hạn như du lịch, mua sắm, giáo dục, y tế, tài chính, v.v.
Đầu vào của hệ thong thường bao gồm một tập dữ liệu đa dạng, chứa các thông tin liên quan đến người dùng hoặc yêu cầu của họ Những dit liệu này có thé là lịch sử tìm kiếm, ưa thích cá nhân, thông tin hồ sơ, hoặc bất kỳ yếu tố nào khác có thé ảnh
hưởng đến quá trình đưa ra gợi ý.
Quá trình xử lý trong hệ thống tư vấn gợi ý thường bao gồm nhiều bước phức tạp, bắt đầu từ việc tiền xử lý đữ liệu Đầu tiên, dữ liệu đầu vào được tiêu chuẩn hóa và
chuẩn hóa để giảm thiểu sự không nhất quán Sau đó, mô hình học máy hoặc học sâu
được áp dụng dé xây dựng một hệ thống thông minh có khả năng dự đoán và gợi ý.
Mô hình này có thé sử dụng các thuật toán như collaborative filtering, content-based filtering, hoặc hybrid filtering để tối ưu hóa việc đưa ra gợi ý dựa trên sở thích và ưu tiên cá nhân của người sử dụng Đầu ra của hệ thống là một danh sách các gợi ý được xếp hạng theo mức độ phù hợp với người dùng.
Các phương pháp tiếp cận phô biến:
° Tiếp cận dựa trên lọc cộng tác (collaborative - CF) ¢ _ Tiếp cận dựa trên nội dung (content-based)
¢ _ Tiếp cận dựa trên sự kết hợp giữa CF va content-based (hybrid) 2.2 Các phương pháp xây dựng hệ tư vấn:
2.2.1 Lọc dựa trên nội dung
Phương pháp gợi ý theo nội dung, hay còn gọi là Content-Based Filtering, là
một phương pháp trong lĩnh vực hệ thống gợi ý (recommendation systems) sử dụng dé đề xuất sản phâm hoặc nội dung dựa trên thông tin chỉ tiết về nội dung của sản phẩm và sở thích của người dùng Đầu vào của hệ thống này thường chứa các thông tin chỉ
SV: Phạm Công Tuân — Lớp: DI9CNPM02
Trang 26Đồ án tốt nghiệp Đại học Chương 2 tiết về nội dung mà người dùng đã tương tác hoặc biểu hiện quan tâm Điều này có thể bao gồm các yếu tố như từ khóa, thé loại, hoặc thuộc tính nội dung khác nhau Dữ liệu
đầu vào đó được sử dụng để xây dựng một hồ sơ cá nhân(profile) cho từng người dùng, phản ánh đặc điểm và sở thích của họ.
Quá trình xử lý trong Content-Based Filtering thường bắt đầu bằng việc trích xuất đặc trưng quan trọng từ nội dung, có thể thông qua các kỹ thuật như phân tích từ
khóa, vectơ hóa văn bản, hoặc các phương pháp khác tùy thuộc vảo loại nội dung Sau
đó, một mô hình học máy hoặc thuật toán tương tự được triển khai để xác định mức độ
tương đồng giữa các mục nội dung và hồ sơ cá nhân của người dùng để cho ra một
danh sách các mục nội dung được đề xuất dựa trên sự tương đồng giữa nội dung va hồ
sơ cá nhân của người dùng.
Dưới đây là cách hoạt động chung của phương pháp gợi ý theo nội dung:
Bước 1: Hệ thống cần thu thập dữ liệu về sản phâm và dữ liệu về người dùng Thông tin này bao gồm nội dung của sản phâm và sở thích của người dùng.
Bước 2: Hệ thống trích xuất các đặc trưng từ nội dung của sản phẩm Đặc trưng này có
thé là các từ khóa, thông tin về tác giả, thé loại, hoặc bất kỳ thông tin nào có thể đại
điện cho nội dung.
Bước 3: Hệ thống tính toán sự tương đồng giữa san phâm dựa trên đặc trưng trích xuất
và sở thích của người dùng Phương pháp thường sử dụng là tính toán khoảng cách
hoặc sự tương đồng cosine giữa sản phẩm và sở thích của người dùng.
Bước 4: Cuối cùng, hệ thống đề xuất các sản phẩm có điểm tương đồng cao với sở
thích của người dùng Những sản phâm gần giống với sở thích của người dùng sẽ được đề xuất.
Phương pháp gợi ý theo nội dung có ưu điểm là nó có thé đưa ra các đề xuất chính xác dựa trên nội dung của sản phẩm, đặc biệt là khi dtr liệu người dùng là hạn chế hoặc khi cần đề xuất sản phẩm tương tự với những sản phâm đã được người dùng yêu thích Tuy nhiên, nó có thé gặp khó khăn trong việc xử lý đa dạng sở thích của
người dùng và khám phá sở thích mới.
Phương pháp gợi ý theo nội dung (Content-Based Filtering) có cả ưu điểm và nhược điểm riêng biệt:
Uu điểm:
« Goi ý chính xác: phương pháp này có khả năng đề xuất các mục tương tự với
mục mà người dùng đã thích Nó tập trung vào nội dung của mục và đặc trưng
của người dùng, giúp cung cấp gợi ý chính xác.
¢ _ Điều chỉnh được dựa trên sở thích cá nhân: phương pháp gợi ý theo nội dung có thể được tùy chỉnh cho mỗi người dùng dựa trên thông tin đặc trưng của họ Điều này giúp cải thiện tính cá nhân hóa trong gợi ý.
Trang 27Đồ án tốt nghiệp Đại học Chương 2
¢ Khong phụ thuộc vào dữ liệu người dùng khác: khác với phương pháp gợi ý
dựa trên cộng đồng (Collaborative Filtering), phương pháp theo nội dung không
cần dữ liệu từ người dùng khác Do đó, nó hoạt động tốt trong trường hợp ít dữ
liệu hoặc ít sự tương tác từ người dùng.
Nhược điểm:
¢ Han chế đa dạng: phương pháp này thường không thé đề xuất những mục mới
hoặc ngoại trừ sở thích trước đây của người dùng Nếu một người dùng có sở thích đa dạng, phương pháp gợi ý theo nội dung có thể bỏ lỡ các sự lựa chọn
¢ Kho khăn trong việc đo lường tương đồng: dé tính toán tương đồng giữa các
mục dựa trên nội dung, phải xác định cách đo lường tương đồng cho các đặc trưng Việc này có thể khá phức tạp và đôi khi dẫn đến việc đưa ra kết quả
không chính xác.
« C6 định trong "ngôi nhà thông tin": phương pháp này thường không xem xét các yếu tố bên ngoài nội dung, như phản hồi xã hội từ người dùng khác Do đó,
nó có thể bỏ lỡ thông tin quan trọng.
* _ Cần có dữ liệu săn: phương pháp gợi ý theo nội dung cần phải có dữ liệu trước, bao gồm mô tả và đặc trưng của các mục Điều này đôi khi là khá khó khăn và tốn thời gian.
2.2.2 Lọc cộng tác
Là một trong ba cách tiếp cận chính trong xây dựng các hệ thống tư vấn lọc
cộng tác thực hiện tư vấn (gợi ý) các sản phẩm, dịch vụ, nội dung cho một người dùng
nào đó Đầu vào của hệ thống này thường bao gồm thông tin về sự tương tác giữa
người dùng và các mục nội dung, như đánh giá, lịch sử mua sam, hoặc sự ưa thích Dữ liệu đầu vào này được sử dụng để xây dựng một ma trận tương đồng giữa các người dùng hoặc giữa các mục nội dung, thể hiện mức độ tương đồng dựa trên hành vi của họ Quá trình xử lý trong Collaborative Filtering thường bao gồm việc xây dựng mô hình dựa trên ma trận tương đồng đã tạo ra Co hai hình thức chính của Collaborative
Filtering là Memory—based và Model-based.
+ Phuong pháp dựa trên bộ nhé(Memory—based):
Phương pháp này được tiếp cận theo 2 cách chính là UserBased và ItemBased
e User-Based Collaborative Filtering (CF) là một phương pháp gợi ý dựa trên
thông tin về sự tương tự giữa người dùng Ý tưởng cơ bản của User-Based CF rất đơn giản: phân chia các Users có quan điểm giống nhau vào chung một
nhóm Nếu một User bat kỳ trong nhóm thích một Item nào đó thi Item đó sẽ được đề xuất cho toàn bộ các Users khác trong nhóm đó.Dựa trên nguyên tắc
này, User-Based CF thực hiện các bước sau:
Trang 28Đồ án tốt nghiệp Đại học Chương 2
Bước 1: Xây dựng ma trận người dùng-mục: Tạo một ma trận, trong đó hàng
xóm là danh sách người dùng và cột là danh sách các mục Mỗi ô trong ma trận
thể hiện sự tương tác của người dùng với một mục nảo đó, chăng hạn là việc
xem, mua hoặc đánh giá mục.
Bước 2:Tính độ tương tự giữa người dùng: Sử dụng một phương pháp tính độ
tương tự (similarity) như Cosine Similarity hoặc Pearson Correlation, để đánh
giá mức độ tương tự giữa tất cả cặp người dùng Độ tương tự thé hiện mức độ tương đồng trong sở thích giữa các cặp người dùng.
Bước 3:Dự đoán sở thích cho người dùng: Để dự đoán sở thích của một người
dùng cho một mục, User-Based CF tính trung bình trong số của sở thích của các
người dùng tương tự đã thích mục đó Những người dùng có độ tương tự cao
hơn sẽ có trọng số lớn hơn trong việc dự đoán.
Item-Item Collaborative Filtering: Ý tưởng là phân chia Items tương tự nhau vào chung một nhóm Nếu một User thích bất kỳ một Item nao trong nhóm đó thì tất cả các Item còn lại trong cùng nhóm sẽ được đề xuất cho User đó.Thuật
toán này gồm 3 bước chính:
Bước 1: Tính toán độ tương tự sản pham
Bước 2: Xác định tập láng giềng cho sản phẩm cần gợi ý
Bước 3: Tính toán và đưa ra dự đoán gợi ý
+ Phương pháp dựa trên mô hình(Model-based):
Khác với phương pháp dựa trên bộ nhớ, phương pháp lọc cộng tác dựa trên mô hình sử
dụng các tập đánh giá dé xây dựng mô hình huấn luyện
Các bước thực hiện của phương pháp này:Bước 1: Xây dựng mô hình
Bước 2: Học mô hình
Bước 3: Đưa ra dự đoán
Một sô mô hình nôi tiêng như:
Mô hình Bayes (Bayesian Models): Mô hình Bayes sử dụng lý thuyết xác suất
dé đánh giá xác suất một sự kiện xảy ra dựa trên kiến thức trước đó Trong lọc
cộng tác, mô hình Bayes có thé được sử dụng để xác định xác suất một người dùng sẽ thích một sản phẩm dựa trên thông tin từ các người dùng khác.
Mô hình phân cum (Clustering Models): Mô hình phân cụm nhằm gom nhóm người dùng hoặc sản phẩm thành các nhóm dựa trên các đặc trưng tương tự Mô
hình này có thể giúp xác định các người dùng có sở thích tương tự hoặc các
mục tiêu có đặc trưng tương tự.
Ưu điểm của Collaborative Filtering:
Trang 29Đồ án tốt nghiệp Đại học Chương 2 ¢ Tinh cá nhân hóa cao: Collaborative Filtering dựa trên hành vi thực tẾ của
người dùng, giúp đề xuất các mục phù hợp với mỗi người dùng cụ thẻ.
¢ _ Không cần thông tin nội dung: nó không đòi hỏi dữ liệu về nội dung của các
mục, nhưng thay vào đó tập trung vảo sự tương tác giữa người dùng và mục.
Nhược điểm của Collaborative Filtering:
« - Người mới va sản phẩm mới: Collaborative Filtering thường gặp khó khăn khi
phải đối phó với người dùng mới (với ít hoặc không có lịch sử) và mục mới (chưa được nhiều người dùng tương tác).
* Van đề lớn: với hệ thống lớn, tính toán sự tương đồng giữa tat cả các cặp người dùng hoặc mục có thê trở nên khá khó khăn và tốn thời gian.
« - Thiếu dữ liệu: Collaborative Filtering thường cần dir liệu về sự tương tác của người dùng với mục Nếu đữ liệu này thưa (người dùng chưa tương tác với
nhiều mục), thì hiệu suất sẽ kém.
2.2.3 Phương pháp lai(hybrid)
Hệ thống gợi ý hybrid là một hệ thống sử dụng cả hai phương pháp chính dé
gợi ý nội dung cho người dùng: gợi ý dựa trên nội dung (content-based) và gợi y dựa
trên người dùng (collaborative filtering).
Hệ Gợi Y Hybrid: Kết hợp ca hai phương pháp trên dé tận dung ưu điểm của từng loại Bằng cách này, hệ thống có thể cung cấp gợi ý chính xác hơn và linh hoạt
hơn Nếu một trong các phương pháp không cung cấp kết quả tốt trong một tình huống cụ thê, hệ thống có thé chuyên sang sử dụng phương pháp khác.
Lợi ích của hệ thống gợi ý hybrid bao gồm khả năng đối phó với vấn đề lạc hậu (cold start problem) khi không có đủ dit liệu về người dùng hoặc mục, cũng như khả
năng cải thiện độ chính xác của gợi ý.
Ưu Điểm:
¢ D6 chính xác cao: kết hợp ưu điểm: sự kết hợp của nhiều phương pháp giúp cải
thiện độ chính xác và đảm bảo gợi ý phù hợp với người dùng.
* Tinh đa dang: người dùng và nội dung: kết hợp thông tin từ cả người dùng va nội dung dé cung cấp gợi ý da dạng.
- Ung dụng rộng rãi: phù hợp cho nhiều bài toán: hệ thống lai có thé được tinh
chỉnh dé phù hợp với nhiều ngữ cảnh và nhu cầu gợi ý khác nhau.
+ Kha năng mở rộng: dé dàng mở rộng hệ thống khi cần tích hợp thêm các
phương pháp mới hoặc dữ liệu mới.
Trang 30* _ Yêu cầu phản hỏi liên tục: đôi khi, để duy trì hiệu suất, hệ thống lai cần nhận
phản hồi liên tục từ người dùng.
Dựa vào yêu câu của bài toán đặt ra là gợi ý các địa điêm du lịch dựa vào sở thích
riêng của từng người dùng, đồ án lựa chọn sử dụng thuật toán lọc nội dung để thực
Hình 4: Mô hình xử lý của hệ thong goi ÿ
Hệ thống gợi ý sử dụng dữ liệu đầu vào là thông tin địa điểm du lịch,thông tin người dùng.Đầu ra là các địa điểm du lịch gợi ý cho từng người dùng.
Từ dữ liệu đâu vào, đô an sẽ xây dựng vector đặc trưng cho toàn bộ các địa điêm du
lịch và người dùng bằng cách sử dụng hệ số TF-IDF dé biéu diễn trọng số cho vector
thuộc tính.
Trang 31Đồ án tốt nghiệp Đại học Chương 2 TF-IDF là viết tắt của Term Frequency - Inverse Document Frequency, là một chỉ số thong kê được sử dụng trong xử lý ngôn ngữ tự nhiên (NLP) dé đo lường mức độ quan
trọng của một từ trong một văn bản TF-IDF được tính bằng tích của tần số xuất hiện của từ trong văn bản và nghịch đảo tan số xuất hiện của từ trong tập dữ liệu.
Tần số xuất hiện của từ (Term Frequency) là số lần từ đó xuất hiện trong văn bản Vi dụ, trong văn bản "Tôi yêu thích du lịch", tần số xuất hiện của từ "yêu" là 1, tần số
xuất hiện của từ "du lịch" là 2.
Nghịch đảo tần số xuất hiện của từ (Inverse Document Frequency) là nghịch đảo của
số lượng văn bản trong tập đữ liệu có chứa từ đó Ví dụ, nếu từ "yêu" xuất hiện trong tất cả các văn bản trong tập dữ liệu, thì nghịch đảo tần số xuất hiện của từ "yêu" sẽ là
0 Nếu từ "du lịch" chỉ xuất hiện trong một văn bản trong tập dữ liệu, thì nghịch đảo tần số xuất hiện của từ "du lịch" sẽ là 1.
Công thức tính TF-IDF như sau:TF-IDF = TF * IDF (1)
Trong đó:
e TF là tần số xuất hiện của từ trong văn ban
¢ IDF là nghịch đảo tần số xuất hiện của từ trong tập dữ liệu
Sau khi đã xây dựng được hồ sơ cho địa điểm du lịch và người dùng, thực hiện tính
toán độ tương tự cosine giữa vector đại diện cho sở thích người dùng và các địa điểm du lịch Độ tương tự cosine là một phép đo số học được sử dụng dé đo lường mức độ
tương tự giữa hai vector Độ tương tự cosine càng cao thi hai vector càng giống nhau.
Cosine Similarity = (u.v) / |[ul| * ||v|| (2)Trong đó:
¢ ula vector đại diện cho văn bản thứ nhất
® v là vector đại diện cho văn bản thứ hai® |lul| là độ dai của vector u
® ||v|| là độ dai của vector v2.3.2 Thực nghiệm
2.3.2.1 Chuẩn bị dữ liệu
Dữ liệu sẽ là các thông tin về các địa điểm du lịch ở Việt Nam — gồm 60 địa điểm(dữ liệu gồm thông tin cơ ban của địa điểm và tag) và dit liệu về sở thích của
người dùng — gồm 15 sở thích Dữ liệu về địa điểm du lịch:
SV: Phạm Công Tuân — Lớp: DI9CNPM02
Trang 32Hà Nội có lịch sứ lâu đời cùng văn hóa truyền th
Lạng Sơn giáp tinh Cao Bằng, Quang Ninh, Bac Cao Bằng là tinh miền núi nằm ở ving Đông Bac
Quần đảo Phú Quốc nằm trong vịnh Thái Lan, c Cách Hà Nội khoảng 160 km, TP biến Hạ Long th Cát Bà là điểm thu hút khách du lịch tại Hai Phòn Tuyên Quang là tinh miền núi nằm ở vùng Đông
Lao Cai, viên ngọc quý bên cạnh day núi hùng v
Lai Châu, vùng miền thuần khiết nam giữa nhữn Hà Giang là một tỉnh thuộc vùng Đông Bắc Việt
Du lịch Đà Nẵng,với lợi thế về vị trí địa lý và đề
Du lịch Thành phé Hải Phòng, cảng biến sôi độn
TP HCM là nơi hội tụ nhiều nên văn hóa, với các
di tich lich sử,văn hóa,du lịch ấm thực
rừng núi,phượt,leo núi,văn hóa lịch sử.rừng núi,phượt,leo núi,văn hóa lịch sử
du lich biến thiên nhiên và cảnh quan,ấm thực,
du lịch biến,thiên nhiên và cảnh quan,ấm thực.du lich biến,thiên nhiên và cảnh đẹp,ấm thực và
rừng núi, thiên nhiên ,phượt,leo núi,văn hóa
rừng núi, thiên nhiên,cảnh quan,chụp ảnh,phượ
rừng nủi,thiên nhiên,phượt,leo núi
rừng núi,thiên nhiên cảnh quan,phượt,leo núi
du lịch biến, cảnh quan thiên nhiên,cảnh đẹp, c
du lịch biến,ấm thực,thiên nhiên và cảnh đẹp,cả du lịch ấm thực, giải trí đêm, mua sắm,đô thị và
Thế Thao và Hoạt Động Ngoại Trời
Du lịch vui chơi và giải trí đêm.
11 Nghệ thuật và văn hóa địa phương
12 Dulichphong cách sống và thư gin
13 Vn hóa và di tích lịch sử14 Đô Thị và Thương Mại
15 Du lịch ấm thực va ấm thực địa phương
4Ð Œ xi Ơ ƠI đà G9 R6
Hình 6 Mô tả dữ liệu sở thích du lich
Dữ liệu về sở thích của người dùng
Quá trình thực nghiệm sẽ thực hiện theo đúng các bước như mô hình hệ thong gợi ý với các kỹ thuật xử ly dữ liệu khác nhau và tap dữ liệu đã dé ra trên.
Phân chia đữ liệu thử nghiệm: dữ liệu được chia thành 2 tập: tập huấn luyện và tập
đánh giá theo tỉ lệ 8:2.
Đề đánh giá kết quả thực nghiệm, đồ án lựa chọn tính độ chính xác Precision,độ phủ Recall và F1-Score để đánh giá thuật toán gợi ý.
Trang 33Đồ án tốt nghiệp Đại học Chương 2Hình 8 Mô ta kết quả thực nghiệm
Kết quả cho thay mô hình đồ án đề xuất cho ra kết quả độ chính xác, độ phủ và F1-Score đều có kết quả cao nhất.
2.4 Kết luận
Chương 2 đã trình bày được tổng quan về bài toán hệ tư vấn, các phương pháp truyền
thống dé xây dựng hệ tư van và lựa chọn được phương pháp lọc dựa trên nội dung dé áp dụng vào đồ án Chương cũng đã trình bày chỉ tiết về mô hình xử lý và kết quả thực
SV: Phạm Công Tuân — Lớp: DI9CNPM02
Trang 34Đồ án tốt nghiệp Đại học Chương 3: Phân tích và thiết kế hệ thống
Chương 3: Phân tích và thiết kế hệ thống
Dựa vào kết quả quá trình tìm hiểu yêu cầu ở chương 1, chương 3 sẽ đi sâu vào phân tích những yêu cầu của hệ thống gồm những công việc như: mô tả các tác nhân, các ca sử dụng(usecase), các kịch ban và xây dựng biéu đồ lớp phân tích Bên cạnh đó,
chương 3 cũng sẽ tập trung vào thiết kế chỉ tiết hệ thống, bao gồm các công việc như:
thiết kế biểu đồ tuần tự và xây dựng biểu đồ lớp thiết kế 3.1 Phân tích hệ thống
3.1.1 Biểu đồ usecase hệ thống
Hệ thống bao gồm 2 actor là Người dùng và Quản trị viên
Các chức năng tương ứng với từng actor:
Người dùng:
* Dang ký: Người dùng có thể đăng ký tài khoản trong hệ thống dé sử dụng ứng
« Quan lý hồ sơ du lịch cá nhân: Người dùng có thé tạo và quan lý hồ sơ cá nhân
với thông tin cơ bản, hình ảnh, và sở thích du lịch.
« Tim kiếm và khám phá du lịch: tính năng cho phép người dùng tìm kiếm và khám phá về các điểm đến, hoạt động du lịch.
« Két nối và tương tác người dùng:cho phép người dùng có thé kết nối với
nhau,mời tham gia nhóm,tìm kiếm,bình luận,chat, và tương tác trong cộng
¢« - Tương tác với bài đăng: cho phép người dùng tương tac(chia sẻ bai đăng, bìnhluận, thích, lưu, ) với các bai đăng trong nhóm va của các người dùng khác
« Tao bài đăng: cho phép người dùng có thé tạo và lưu trữ những kỷ niệm du lịch,
găn với hình ảnh và trải nghiệm.
Trang 35Đồ án tốt nghiệp Đại học Chương 3: Phân tích và thiết kế hệ thống ¢ Quan lý nhóm: cho phép người dùng tạo,sửa,xóa,tìm kiếm các nhóm du lịch,
duyệt yêu cầu tham gia, yêu cầu và hủy yêu cầu tham gia nhóm
Quản trị viên:
« Quan lý người dùng: cho phép quản trị viên có khả năng tìm kiếm, quan lý
thông tin người dùng,khóa,xóa tài khoản người dùng.
* Quan lý thông tin địa điểm du lịch: cho phép quan trị viên có thé tạo và quan lý
các nội dung liên quan tới các địa điêm du lịch.
3.1.2 Phân rã biểu đồ Usecase
3.1.2.1 Biểu đồ usecase người dùng:
3.1.2.1.1 Quản lý thông tin cá nhân
Người dùng
Powered By Visual Paradigm Community Edition e
Hình 10: Biểu đồ chỉ tiết usecase quan lý hỗ sơ cá nhân
3.1.2.1.2 Kết nối và tương tác người dùng
=c Gost) Powe Visual Paradigm Community EditionHình 11: Biểu đồ chỉ tiết usecase kết nối và trơng tác người dùng
SV: Phạm Công Tuân — Lớp: DI9CNPM02 35
Trang 36Đồ án tốt nghiệp Đại học Chương 3: Phân tích và thiết kế hệ thống
3.1.2.1.3 Tìm kiếm và khám phá địa điểm du lịch
Powered By 1 Community Edition @
Hình 12: Tìm kiếm và khám phá địa điểm du lịch
3.1.2.1.4 Tạo bài đăng
CP = By Vieual Paradigm Community Edition
Hinh 13: Tao bai dang
<<Extend>>
Trang 37Đồ án tốt nghiệp Đại học Chương 3: Phân tích và thiết kế hệ thống
3.1.2.1.5 Tương tác bài đăng
‡—— ==>
Người dùng
<> Powarad By Visual Paradigm Community Edition ©
Hình 14: Tương tác bài đăng
Trang 38Đồ án tốt nghiệp Đại học Chương 3: Phân tích và thiết kế hệ thống
3.1.2.2 Biểu đồ usecase quản trị viên
C C Powered By Visual Paradigm Community Edition @
Hình 17: Quản lý thông tin du lịch
SV: Phạm Công Tuân — Lớp: DI9CNPM02 38
Trang 39Đồ án tốt nghiệp Đại học Chương 3: Phân tích và thiết kế hệ thống
3 Người dùng nhập day đủ tat cả các trường và ấn nút đăng ký
4 Hệ thống thông báo kết quả đăng ký và chuyển sang màn hình Đăng
Exception 4.1 Người dùng nhập thiếu các ô
4.2 Hệ thống thông báo nhập thiếu và yêu cầu nhập đủ các trường
4.3 Email đã tồn tại trong csdl
4.4 Hệ thống thông báo “đã tồn tại email”
Bảng 1: Kịch bản dang ký
3.1.3.1.2 Quản lý hồ sơ du lịch cá nhân
Cập nhật thông tin cá nhân
Usecase Cập nhật thông tin cá nhân(extend từ Quan lý hồ sơ cá nhân)
SV: Phạm Công Tuân — Lớp: DI9CNPM02 39
Trang 40Đồ án tốt nghiệp Đại học Chương 3: Phân tích và thiết kế hệ thống
Post- Người dùng cập nhật thành công thông tin cá nhân
hồ sơ người dùng(đã cập nhật thông tin)
Exception | 8.1 Chưa cập quyền truy cập vào bộ nhớ điện thoại
8.2 Hệ thong thông báo chưa cấp quyền truy cập bộ nhớ điện thoại, mở yêu cầu cho phép truy cập vào bộ nhớ
Bảng 2: Kịch bản cập nhật thông tin ca nhân
Cập nhật sở thích
Usecase Cập nhật sở thich(extend từ Quan lý hồ sơ cá nhân)
Pre- Người dùng đã đăng nhập thành công ứng dụngCondition
SV: Phạm Công Tuân — Lớp: DI9CNPM02 40