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

Nghiên cứu xây dựng mạng xã hội du lịch trên nền tảng di động

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

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

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

<small>Sinh viên thực hiện : Phạm Công Tuân</small>

<small>Lớp : DI9CNPM2</small>

<small>Khóa : D19 (2019 — 2024)</small>

Hệ : ĐẠI HỌC CHÍNH QUY

<small>Hà Nội, năm 2023</small>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<small>Đồ án tốt nghiệp Đại học</small>

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 đồ

<small>á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</small>

<small>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ỏ</small>

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

<small>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.</small>

<small>Cuối cùng, em xin chân thành cảm ơn gia đình, bạn bè, đồng nghiệp ở trường</small>

<small>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</small>

<small>tập và hồn thành đồ án tốt nghiệp một cách trọn vẹn nhất.</small>

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

<small>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</small>

<small>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 hồn thiện hơn.</small>

<small>Em xin chân thành cảm ơn!</small>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<small>Đồ án tốt nghiệp Đại học</small>

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

<small>tơt nghiệp?</small>

<small>¬————— , ngày ... tháng ... năm 2023</small>

CÁN BỘ GIẢNG VIÊN HƯỚNG DẪN

<small>SV: Phạm Công Tuân — Lớp: DI9CNPM02</small>

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<small>Đồ án tốt nghiệp Đại học</small>

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

<small>tôt nghiệp?</small>

<small>be tee een e eens , ngày ... thang ... năm 2023</small>

CÁN BỘ GIẢNG VIÊN PHẢN BIỆN

<small>SV: Phạm Công Tuân — Lớp: DI9CNPM02</small>

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<small>Đồ án tốt nghiệp Đại học</small>

Mục Lục

<small>LOT CAM 090... ... 2</small>

<small>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</small>

<small>DANH MỤC HINH ẢNH...--- 22-522 2E22EE22E1122112711271127112712112112112112111111111 xe §</small>

<small>090271000077... ... 12</small>

<small>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</small>

<small>1.1.3 Yêu cầu hoạt động của ứng đụng:...----2- 2 s+2E+EE£EE£EEE 7171711121121. cxe. 14</small>

<small>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 qt hệ thống... ¿2 ©£ £+2E+2E£+EE£EE+2EEEEEEEEE2EEE2E22121222221 xe 17</small>

<small>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</small>

<small>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</small>

<small>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</small>

<small>2.2.1 Lọc dựa trên nội dung...- -- --- -- + +2 +21 33115115112 111121 1211111111211 111111111 11 11kg 24</small>

<small>2.2.2 LOC CONG ưtttiÝ... 26</small>

<small>2.2.3 Phuong 89:98) 100n 4000117 ... 27</small>

<small>2.3 Hệ thống gợi ý theo nội đung...--- + + %+SE+EE9EE9E12E12E12E1211211211211211211211211 11111 cExC 29</small>

<small>2.3.1 bên on ... 29</small>

<small>"ˆE Nhi) 01017... ... 30</small>

<small>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</small>

<small>SV: Phạm Cơng Tn — Lớp: DI9CNPM02</small>

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<small>Đồ án tốt nghiệp Đại học</small>

<small>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</small>

<small>3.1.2. Phân rã biểu đồ Usecase...--- 2-2221 2EE22E112211221211211211211211211 211.11. re. 33</small>

<small>3.1.3. Kich ban ao... e... 37</small>

<small>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</small>

<small>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</small>

<small>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</small>

<small>4.1 Lược đồ cơ sở đữ liỆu...--- 22 2¿+2+222E+2E122711271127122711271271211211211211.11 2111 yee 72</small>

<small>3.1 Cài đặt project Spring Boot PTOJ€C(...--- c1 vn HH HH HT nghệ 813.2 Cai dat Django Project... 6... ... 82</small>

<small>4. Một số hình ảnh của ứng dun g.e..eccecececescsscesessessessessessessessessessessessessessessessesssesesseseesesees 83</small>

<small>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</small>

<small>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</small>

<small>SV: Phạm Công Tuân — Lớp: DI9CNPM02</small>

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<small>Đồ án tốt nghiệp Đại học</small>

DANH MỤC CÁC TỪ VIET TAT

Từ viết tắt Viết đầy đủ

<small>SOA Service-Oriented Architecture</small>

<small>REST REpresentational State Transfer</small>

<small>SOAP Simple Object Access Protocol</small>

<small>JVM Java Virtual Machine</small>

<small>TF-IDF Term Frequency - Inverse Document Frequency</small>

<small>CSDL Cơ sở dữ liệu</small>

<small>SV: Phạm Công Tuân — Lớp: DI9CNPM02</small>

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<small>Đồ án tốt nghiệp Đại học</small>

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 qt 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

<small>Hình 6 Mơ tả dữ liệu sở thích du lịch...-- - -- -- + 22 * E322 11E£*+22£#EEEeeseeeereeszzeeee 29</small>

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

<small>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</small>

<small>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</small>

<small>Hình 17: Quản lý thơng tin du lỊCH... 2c c2 2212211132113 1315111151111 rre+ 35</small>

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

<small>SV: Phạm Cơng Tn — Lớp: DI9CNPM02</small>

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

<small>Đồ án tốt nghiệp Đại học</small>

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

<small>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</small>

<small>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 RetrTt...--- - - -- -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</small>

Hình 56 Kết nối Spring Boot với MySql....c.cecceccsessessessessessessessesesesessssesesesesteeeeeeees 81

<small>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</small>

<small>SV: Phạm Công Tuân — Lớp: DI9CNPM02</small>

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<small>Đồ án tốt nghiệp Đại học</small>

<small>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</small>

<small>Hình 64: Giao diện chọn sở thích... -. ..-- + + 2 E3 3322321188 E3*333E355 5585311111111 ee 84</small>

<small>Hình 65: Giao diện màn hình thơng báo... - .- c1 2211112111313 1 1xx, 84</small>

<small>Hình 66: Giao diện nhóm du lịch...- -. .-- + 2E S32 222 1183133211 EE E32 EEEEesszeeeeeeeeerres 85</small>

Hình 67 Giao diện chi tiết nhóm du lich...ccccccccccsssscsesesecesessesescsesesecececececeeesvsceceeeees 85

<small>Hình 68 Giao diện quản lý người dùng...- c2. 1121112 1111118115811 1811 1118111 re. 86</small>

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

<small>Bảng 1: Kịch bản dang ký... c0 1121112 111 11111111111 11111111 11 1g 1H 1E kg key 35</small>

<small>Bang 2: Kịch bản cập nhật thông tin cá nhân... (c2 32213321 33E555ExEsrresrs 35</small>

<small>Bang 3: Kịch ban cập nhật sở thích...-- ---- 2 2c 1121112111111 11111111 1111111181111 811 re, 36</small>

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

<small>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</small>

<small>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</small>

Bang 14: Kịch ban xem chỉ tiết bai đăng và tai anh... csceseesescsesesteeeeseseseeeees 44

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

<small>Đồ án tốt nghiệp Đại học</small>

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

<small>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</small>

<small>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</small>

<small>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</small>

<small>SV: Phạm Cơng Tuân — Lớp: DI9CNPM02 11</small>

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

<small>Đồ án tốt nghiệp Đại học</small>

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

<small>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</small>

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

<small>lớn của Việt Nam.</small>

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ố

<small>ứng dụng Hahalolo, Travello,....</small>

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 đồ

<small>án của mình.</small>

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 qt 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

<small>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 tốn gợi ý</small>

<small>SV: Phạm Cơng Tn — Lớp: DI9CNPM02</small>

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

<small>Đồ án tốt nghiệp Đại học</small>

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

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

<small>Đồ án tốt nghiệp Đại học</small>

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

<small>du lịch.</small>

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ự:

<small>¢ Hahalolo: ứng dụng mạng xã hội du lịch “Make In VietNam”, ứng dụng này</small>

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.

<small>« Travello: ứng dung mạng xã hội du lịch cho phép người dùng chia sẻ hình</small>

ả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.

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

<small>Đồ án tốt nghiệp Đại học</small>

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ử

<small>dụng ứng dụng.</small>

* Quan lý Hồ Sơ Du Lịch Cá Nhân: Người dùng có thé tạo và quản lý hồ

<small>sơ cá nhân với thơng tin cơ bản, hình ảnh, và sở thích du lịch.</small>

¢ 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.

<small>¢ - Tương tác với bài đăng: cho phép người dùng tương tac(chia sẻ bai đăng,</small>

<small>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</small>

<small>dùng khác</small>

« 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

<small>lý thơng tin người dùng,khóa,xóa tài khoản người dùng.</small>

* 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

<small>thơng qua sở thích của họ</small>

<small>SV: Phạm Cơng Tn — Lớp: DI9CNPM02</small>

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

<small>kchtàr<0 EỂN eens C | — tgiisk</small>

<small>ma: —-51.- mm. </small><sub>= S521 </sub><sub>Tang orm</sub> <small>`</small>

<small>5.5.3.1 Chỉ tiết dia điểm du lịch.</small>

<small>oo = > Kiriy và xea khói</small>

<small>chaning seen danh sách</small>

<small>Cho mơng ton đến ơi Se Aap PERS 6110annsăenliehsichat4.0 Miền hlnh quén mật khẩu FC,</small>

<small>TẾ tiên Tỳ Chen dja diém</small>

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<small>Tìm kiếm người dùng Hiến thị,thêm,xóa thơng báo</small>

<small>Hiển thị,thêm,xóa thơng báo em sia xóa Vu bal dang SQL Query</small>

<small>Hién thi bang tin</small>

<small>Xem chi tiét bai dang</small>

<small>Hiển thị bảng tin đan of ———== M Ss Q L</small><sub>Tương tác với người dùng Response =———</sub>

<small>Xem chi tiét bai dang khac</small>

<small>Tương tác với người dùng Quản lý nhóm</small>

<small>khác Re P</small>

<small>Tương tác với các nhóm</small>

<small>— Tìm kiếm các bài đăng</small>

<small>Tương tác với bài đăng</small>

<small>—————— Gợi ý địa điểm du lịch</small>

<small>Tìm kiếm các bài đăng</small>

<small>Gợi ý địa điểm du lịch</small>

( 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 qt 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ụ:

<small>¢ Tinh mơ-đun và tái sử dung: SOA cho phép chia ứng dụng thành các dịch vụ</small>

độ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

<small>cho việc tái sử dụng các dịch vụ trong các dự án khác.</small>

<small>SV: Phạm Công Tuân — Lớp: DI9CNPM02</small>

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

<small>Đồ án tốt nghiệp Đại học</small>

¢ 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é

<small>đơ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</small>

Gossman, một trong những kiến trúc sư WPF và Silverlight của Microsoft, đã công bố

<small>MVVM trên blog của mình vào năm 2005.</small>

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

<small>cho phép các ứng dụng linh hoạt và dễ bảo trì.</small>

MVVM bao gồm 3 thành phan chính:

<small>«ồ ViewModel</small>

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

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

<small>Đồ án tốt nghiệp Đại học</small>

ViewModels sẽ sử dụng các model nếu cần định nghĩa đữ liệu. Sự liên kết giữa

<small>View - ViewModel giúp chúng gửi và nhận dữ liệu. ViewModel sẽ là thành</small>

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.

<small>« View</small>

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ả đữ

<small>liệu. Trong lập trình android, View là một activity, fragment, hay một customview...</small>

<small>¢ Model</small>

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

<small>remote server</small>

<small>Hình 3: Mơ ta các thành phan cia MVVM</small>

1.3.4 Công nghệ triển khai hệ thống

Dựa vào mô hình tổng qt của hệ thống, lựa chọn các cơng nghệ phù hợp với

hệ thống như sau:

<small>1.3.4.1 Với Module ứng dụng di động</small>

<small>Ngơn ngữ lập trình Kotlin cho Android: Kotlin là một ngơn ngữ lập trình được</small>

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

<small>SV: Phạm Công Tuân — Lớp: DI9CNPM02 19</small>

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

<small>Đồ án tốt nghiệp Đại học</small>

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

<small>Kotlin đã trở thành ngơn ngữ chính thức cho lập trình Android.</small>

<small>Một sơ ưu điêm của Kotlin</small>

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

<small>gọn code 40 %</small>

Đượ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

<small>Virtual Machine).</small>

<small>Tương thích với java, bộ thu viện dành cho kotlin đang ngày càng được pháttriên.</small>

1.3.4.2 Với module hệ thống backend

<small>+ Java Spring Boot(Server)</small>

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

<small>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</small>

<small>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</small>

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 tồ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ệ

<small>khác, bao gôm cơ sở dữ liệu, công cụ mã nguôn mở và dich vụ bên ngoai.</small>

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

<small>nơi với các dich vụ bên ngồ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ữ</small>

<small>SV: Phạm Công Tuân — Lớp: DI9CNPM02</small>

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

<small>Đồ án tốt nghiệp Đại học</small>

Đồ á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,...

<small>+ Hệ quan trị cơ sở dữ liệu MySQL:</small>

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í hồn tồ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

<small>Windows, Linux, Mac OS X, Unix, FreeBSD, NetBSD, Novell NetWare, SGI Irix,</small>

<small>Solaris, SunOS...</small>

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

<small>Microsoft).</small>

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

<small>Đồ án tốt nghiệp Đại học</small>

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 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 số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 ngun 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 đó

<small>sẽ ngay lập tức có sẵn trên Internet.</small>

<small>+ Firebase:</small>

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 đó,

<small>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</small>

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

<small>cơ sở đữ liệu săn có.</small>

<small>Ư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</small>

<small>Android và đáp ứng nhu câu của người dùng.</small>

Một vài tính năng của firebase được tích hợp vào hệ thống:

<small>Realtime Database: là một cơ sở di liệu thời gian thực. Ngay sau khi ban đăng</small>

<small>ký tài khoản trên Firebase, bạn sẽ nhận được Realtime Database được lưu trữ</small>

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

<small>bit.</small>

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

<small>Đồ án tốt nghiệp Đại học</small>

<small>Authentication: là tính năng giúp xác thực danh tính của người dùng ứng dụng.</small>

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 tồn hơn.

<small>Cloud Storage: là tính năng cho phép lưu trữ và quản lý nội dung đã tạo ra như</small>

ả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

<small>Python: là một ngơn ngữ lập trình mạnh mẽ, linh hoạt, và dễ đọc. Nó được tạo</small>

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

<small>và linh hoạt.</small>

<small>¢ Thu viện phong phú: Python đi kèm với một loạt các thư viện va</small>

framework mạnh mẽ giúp đơn giản hóa quy trình phát triển. Ví dụ,

<small>NumPy cho xử ly mang và ma trận, pandas cho xử lý dữ liệu, Flask va</small>

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

<small>chỉ vì sự mạnh mẽ của nó mà cịn vì sự hiệu quả và tiện ích trong q trình phát</small>

1.4 Kết luận

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

<small>Đồ án tốt nghiệp Đại học</small>

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.

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

<small>Đồ án tốt nghiệp Đại học Chương 2</small>

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 q trình đưa ra gợi ý.

Q 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 qn. 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ự đố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:

<small>2.2.1 Lọc dựa trên nội dung</small>

<small>Phương pháp gợi ý theo nội dung, hay còn gọi là Content-Based Filtering, là</small>

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ỉ

<small>SV: Phạm Công Tuân — Lớp: DI9CNPM02</small>

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

<small>Đồ án tốt nghiệp Đại học Chương 2</small> 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ừ

<small>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</small>

đó, một mơ hình học máy hoặc thuật tố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ồ

<small>sơ cá nhân của người dùng.</small>

<small>Dưới đây là cách hoạt động chung của phương pháp gợi ý theo nội dung:</small>

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

<small>điện cho nội dung.</small>

Bước 3: Hệ thống tính tốn sự tương đồng giữa san phâm dựa trên đặc trưng trích xuất

<small>và sở thích của người dùng. Phương pháp thường sử dụng là tính tốn khoảng cách</small>

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 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

<small>người dùng và khám phá sở thích mới.</small>

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

<small>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</small>

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 ý.

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

<small>Đồ án tốt nghiệp Đại học Chương 2</small>

<small>¢ 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 ý</small>

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ữ

<small>liệu hoặc ít sự tương tác từ người dùng.</small>

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 tố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ả

<small>khơng chính xác.</small>

« 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.

<small>2.2.2 Lọc cộng tác</small>

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

<small>Filtering là Memory—based và Model-based.</small>

<small>+ Phuong pháp dựa trên bộ nhé(Memory—based):</small>

Phương pháp này được tiếp cận theo 2 cách chính là UserBased và ItemBased

<small>e User-Based Collaborative Filtering (CF) là một phương pháp gợi ý dựa trên</small>

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 tồn bộ các Users khác trong nhóm đó.Dựa trên nguyên tắc

<small>này, User-Based CF thực hiện các bước sau:</small>

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

<small>Đồ án tốt nghiệp Đại học Chương 2</small>

<small>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</small>

<small>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</small>

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

<small>xem, mua hoặc đánh giá mục.</small>

<small>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 độ</small>

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ự đốn sở thích cho người dùng: Để dự đố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

<small>người dùng tương tự đã thích mục đó. Những người dùng có độ tương tự cao</small>

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

tốn này gồm 3 bước chính:

Bước 1: Tính tố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 ý

<small>Bước 3: Tính tốn và đưa ra dự đốn gợi ý</small>

<small>+ Phương pháp dựa trên mơ hình(Model-based):</small>

<small>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ử</small>

dụng các tập đánh giá dé xây dựng mơ hình huấn luyện

<small>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</small>

<small>Bước 2: Học mơ hình</small>

<small>Bước 3: Đưa ra dự đốn</small>

<small>Một sơ mơ hình nơi tiêng như:</small>

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

<small>mục tiêu có đặc trưng tương tự.</small>

Ưu điểm của Collaborative Filtering:

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">

<small>Đồ án tốt nghiệp Đại học Chương 2</small> ¢ 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

<small>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.</small>

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 tố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.

<small>2.2.3 Phương pháp lai(hybrid)</small>

Hệ thống gợi ý hybrid là một hệ thống sử dụng cả hai phương pháp chính dé

<small>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</small>

<small>trên người dùng (collaborative filtering).</small>

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ả

<small>năng cải thiện độ chính xác của gợi ý.</small>

Ư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

<small>thiện độ chính xác và đảm bảo gợi ý phù hợp với người dùng.</small>

* 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

<small>phương pháp mới hoặc dữ liệu mới.</small>

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="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.

<small>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</small>

riêng của từng người dùng, đồ án lựa chọn sử dụng thuật tốn lọc nội dung để thực

<small>Hình 4: Mơ hình xử lý của hệ thong goi ÿ</small>

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.

<small>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</small>

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

<small>thuộc tính.</small>

</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">

<small>Đồ án tốt nghiệp Đại học Chương 2</small> 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 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ừ "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.

<small>Cơng thức tính TF-IDF như sau:TF-IDF = TF * IDF (1)</small>

<small>Trong đó:</small>

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

tố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.

<small>Cosine Similarity = (u.v) / |[ul| * ||v|| (2)Trong đó:</small>

¢ ula vector đại diện cho văn bản thứ nhất

<small>® v là vector đại diện cho văn bản thứ hai® |lul| là độ dai của vector u</small>

<small>® ||v|| là độ dai của vector v2.3.2 Thực nghiệm</small>

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:

<small>SV: Phạm Công Tuân — Lớp: DI9CNPM02</small>

</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">

<small>Hà Nội có lịch sứ lâu đời cùng văn hóa truyền th...</small>

<small>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...</small>

<small>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 ...</small>

<small>Lao Cai, viên ngọc quý bên cạnh day núi hùng v...</small>

<small>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 ....</small>

<small>Du lịch Đà Nẵng,với lợi thế về vị trí địa lý và đề...</small>

<small>Du lịch Thành phé Hải Phịng, cảng biến sơi độn...</small>

<small>TP HCM là nơi hội tụ nhiều nên văn hóa, với các ...</small>

<small>di tich lich sử,văn hóa,du lịch ấm thực</small>

<small>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ử</small>

<small>du lich biến thiên nhiên và cảnh quan,ấm thực,...</small>

<small>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à...</small>

<small>rừng núi, thiên nhiên ,phượt,leo núi,văn hóa</small>

<small>rừng núi, thiên nhiên,cảnh quan,chụp ảnh,phượ....</small>

<small>rừng nủi,thiên nhiên,phượt,leo núi</small>

<small>rừng núi,thiên nhiên cảnh quan,phượt,leo núi</small>

<small>du lịch biến, cảnh quan thiên nhiên,cảnh đẹp, c...</small>

<small>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à ...</small>

<small>Thế Thao và Hoạt Động Ngoại Trời</small>

<small>Du lịch vui chơi và giải trí đêm.</small>

<small>11 Nghệ thuật và văn hóa địa phương</small>

<small>12... Dulichphong cách sống và thư gin</small>

<small>13 Vn hóa và di tích lịch sử14 Đơ Thị và Thương Mại</small>

<small>15 Du lịch ấm thực va ấm thực địa phương</small>

4Ð Œ xi Ơ ƠI đà G9 R

<small>6</small>

<small>Hình 6 Mơ tả dữ liệu sở thích du lich</small>

<small>Dữ liệu về sở thích của người dùng</small>

Q 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

<small>đánh giá theo tỉ lệ 8:2.</small>

Đề đá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 ý.

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">

<small>Đồ án tốt nghiệp Đại học Chương 2Hình 8 Mơ ta kết quả thực nghiệm</small>

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

<small>SV: Phạm Công Tuân — Lớp: DI9CNPM02</small>

</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34">

<small>Đồ án tốt nghiệp Đại học Chương 3: Phân tích và thiết kế hệ thống</small>

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

<small>Các chức năng tương ứng với từng actor:</small>

<small>Người dùng:</small>

* 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

<small>với thơng tin cơ bản, hình ảnh, và sở thích du lịch.</small>

« 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 lun,chat, v tng tỏc trong cng

<small>Âô - Tng tỏc vi 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</small>

« 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,

<small>găn với hình ảnh và trải nghiệm.</small>

</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="35">

<small>Đồ án tốt nghiệp Đại học Chương 3: Phân tích và thiết kế hệ thống</small> ¢ 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 u cầu tham gia nhóm

<small>Quản trị viên:</small>

« Quan lý người dùng: cho phép quản trị viên có khả năng tìm kiếm, quan lý

<small>thơng tin người dùng,khóa,xóa tài khoản người dùng.</small>

* 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ý

<small>các nội dung liên quan tới các địa điêm du lịch.</small>

3.1.2. Phân rã biểu đồ Usecase

3.1.2.1 Biểu đồ usecase người dùng:

<small>3.1.2.1.1 Quản lý thông tin cá nhân</small>

<small>Người dùng</small>

<small>Powered By Visual Paradigm Community Edition e</small>

<small>Hình 10: Biểu đồ chỉ tiết usecase quan lý hỗ sơ cá nhân</small>

3.1.2.1.2 Kết nối và tương tác người dùng

=c. Gost) Powe Visual Paradigm Community Edition

<sub>Hình 11: Biểu đồ chỉ tiết usecase kết nối và trơng tác người dùng</sub>

<small>SV: Phạm Công Tuân — Lớp: DI9CNPM02 35</small>

</div><span class="text_page_counter">Trang 36</span><div class="page_container" data-page="36">

<small>Đồ án tốt nghiệp Đại học Chương 3: Phân tích và thiết kế hệ thống</small>

3.1.2.1.3 Tìm kiếm và khám phá địa điểm du lịch

<small>Powered By 1 Community Edition @</small>

<small>Hình 12: Tìm kiếm và khám phá địa điểm du lịch</small>

<small>3.1.2.1.4 Tạo bài đăng</small>

CP = By. Vieual Paradigm Community Edition

<small>Hinh 13: Tao bai dang</small>

<small><<Extend>></small>

</div><span class="text_page_counter">Trang 37</span><div class="page_container" data-page="37">

<small>Đồ án tốt nghiệp Đại học Chương 3: Phân tích và thiết kế hệ thống</small>

<small>3.1.2.1.5 Tương tác bài đăng</small>

‡—— ==>

<small>Người dùng</small>

<> Powarad By Visual Paradigm Community Edition ©

<small>Hình 14: Tương tác bài đăng</small>

</div><span class="text_page_counter">Trang 38</span><div class="page_container" data-page="38">

<small>Đồ án tốt nghiệp Đại học Chương 3: Phân tích và thiết kế hệ thống</small>

3.1.2.2 Biểu đồ usecase quản trị viên

C C Powered By. Visual Paradigm Community Edition @

<small>Hình 17: Quản lý thông tin du lịch</small>

<small>SV: Phạm Công Tuân — Lớp: DI9CNPM02 38</small>

</div><span class="text_page_counter">Trang 39</span><div class="page_container" data-page="39">

<small>Đồ án tốt nghiệp Đại học Chương 3: Phân tích và thiết kế hệ thống</small>

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”

<small>Bảng 1: Kịch bản dang ký</small>

3.1.3.1.2. Quản lý hồ sơ du lịch cá nhân

<small>Cập nhật thông tin cá nhân</small>

Usecase Cập nhật thông tin cá nhân(extend từ Quan lý hồ sơ cá nhân)

<small>SV: Phạm Công Tuân — Lớp: DI9CNPM02 39</small>

</div><span class="text_page_counter">Trang 40</span><div class="page_container" data-page="40">

<small>Đồ án tốt nghiệp Đại học Chương 3: Phân tích và thiết kế hệ thống</small>

<small>Post- Người dùng cập nhật thành công thông tin cá nhân</small>

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ớ

<small>Bảng 2: Kịch bản cập nhật thông tin ca nhân</small>

<small>Cập nhật sở thích</small>

Usecase Cập nhật sở thich(extend từ Quan lý hồ sơ cá nhân)

<small>Pre- Người dùng đã đăng nhập thành công ứng dụngCondition</small>

<small>SV: Phạm Công Tuân — Lớp: DI9CNPM02 40</small>

</div>

×