Bối cảnh và vấn đề nghiên cứu

Ngành du lịch toàn cầu và khu vực đang bước vào giai đoạn phục hồi mạnh mẽ sau đại dịch COVID-19. Dữ liệu từ Tổ chức Du lịch Thế giới (UNWTO) năm 2023 cho thấy trong quý I/2023, lượng khách quốc tế đã đạt 80% so với mức trước đại dịch, ước tính có khoảng 235 triệu lượt khách quốc tế trong 3 tháng đầu năm, tăng gấp hai lần so với cùng kỳ năm 2022. Cùng với xu hướng phục hồi này, Ngân hàng Phát triển Châu Á (ADB) dự báo mức tăng trưởng của các nền kinh tế khu vực Châu Á và Thái Bình Dương đạt 4,8% vào năm 2023, tăng từ mức 4,2% của năm 2022, trong đó tiêu dùng và du lịch đóng vai trò là động lực then chốt. Tại Việt Nam, báo cáo từ Bộ Văn hóa, Thể thao và Du lịch ghi nhận số lượng người theo dõi trên các trang mạng xã hội thuộc ngành du lịch tăng 600%, với tỷ lệ tương tác trên nền tảng Instagram đạt 5,61%. Những dữ liệu này khẳng định sự gia tăng của nhu cầu du lịch cá nhân hóa dựa trên nền tảng công nghệ thông tin và Internet.

Qua khảo sát thực trạng, các sản phẩm hiện có trên thị trường bộc lộ một số hạn chế nhất định đối với nhu cầu chuyên biệt của cộng đồng du lịch:

  • Các nền tảng đặt chỗ và thông tin như TripAdvisor, Lonely Planet, Traveloka hay Airbnb có bố cục chức năng tương đối phức tạp, gây khó khăn cho người dùng mới tiếp cận, đồng thời thiếu khả năng tương tác xã hội linh hoạt giữa các thành viên.
  • Mạng xã hội tổng quát như Facebook sở hữu mạng lưới kết nối lớn nhưng giao diện tích hợp quá nhiều chức năng khiến người dùng dễ mất tập trung, phát sinh vấn đề liên quan đến bảo mật thông tin cá nhân, quảng cáo không mong muốn và tình trạng lan truyền tin giả.
  • Website dịch vụ du lịch như Travelocity cung cấp công cụ tìm kiếm và đánh giá dịch vụ đa dạng nhưng hoàn toàn không hỗ trợ tính năng mạng xã hội như đăng bài viết, bình luận, nhắn tin trực tiếp hay tạo lập cộng đồng chia sẻ trải nghiệm đa chiều.

Trước thực trạng đó, khóa luận "Xây dựng mạng xã hội du lịch" (Building a travel social network) được thực hiện nhằm xây dựng một nền tảng chuyên biệt kết nối cộng đồng người yêu thích du lịch và các doanh nghiệp cung cấp dịch vụ, tối giản hóa các chức năng không cần thiết, hạn chế quảng cáo và nâng cao trải nghiệm người dùng thông qua các thuật toán hỗ trợ.

Mục tiêu và nhiệm vụ nghiên cứu của đề tài gồm 4 nội dung:

  1. Nghiên cứu thực trạng, phân tích ưu điểm và nhược điểm của các giải pháp mạng xã hội và website du lịch hiện có trên thị trường.
  2. Xác định yêu cầu, phân tích và thiết kế hệ thống phục vụ 3 nhóm đối tượng sử dụng: Người quản trị (Admin), Doanh nghiệp kết nối và Người dùng phổ thông.
  3. Nghiên cứu và ứng dụng giải thuật học máy (Universal Recommender) nhằm đề xuất địa điểm du lịch và gợi ý kết bạn phù hợp cho từng thành viên; tích hợp thư viện Socket.IO để hỗ trợ nhắn tin và gọi điện thời gian thực.
  4. Hiện thực hóa website hoàn chỉnh dựa trên ngăn xếp công nghệ MERN Stack, đáp ứng các tiêu chuẩn về giao diện, tính năng và bảo mật phân quyền.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Mô hình kiến trúc, quy trình phân tích thiết kế phần mềm mạng xã hội du lịch, giải thuật khuyến nghị nội dung và công nghệ truyền thông thời gian thực trên nền tảng web.
  • Đối tượng sử dụng: Khách hàng cá nhân có nhu cầu chia sẻ và tìm kiếm thông tin du lịch; Doanh nghiệp du lịch có nhu cầu quảng bá sản phẩm, dịch vụ; Người quản trị hệ thống.
  • Phạm vi không gian và thời gian: Khóa luận được thực hiện tại Khoa Công nghệ Phần mềm, Trường Đại học Công nghệ Thông tin - Đại học Quốc gia TP. Hồ Chí Minh, hoàn thành vào tháng 07/2023. Phạm vi sản phẩm là một ứng dụng web hoạt động trên môi trường Internet, hỗ trợ ngôn ngữ tiếng Việt và định hướng hỗ trợ đa ngôn ngữ.
Tiêu chí Mạng xã hội tổng quát (Facebook) Website dịch vụ (Travelocity) Hệ thống xây dựng trong khóa luận
Định hướng nội dung Đa chủ đề, giải trí, tin tức tổng hợp Đặt vé máy bay, phòng khách sạn Chuyên biệt về thông tin và trải nghiệm du lịch
Tính năng mạng xã hội Đầy đủ (bài viết, tương tác, nhóm, chat) Không hỗ trợ đăng bài, không có nhắn tin Đầy đủ (bài viết, nhóm, chat thời gian thực, video call)
Chức năng thương mại Gian hàng thương mại, quảng cáo đa dạng Cung cấp dịch vụ đặt chỗ từ nhà cung cấp Gói dịch vụ quảng bá dành riêng cho doanh nghiệp du lịch
Giao diện và trải nghiệm Phức tạp, nhiều tính năng phụ, nhiều quảng cáo Giao diện chuẩn cho tra cứu và đặt chỗ Tinh giản, tập trung vào điểm đến, bản đồ và kết nối

Cơ sở lý thuyết và phương pháp

Khóa luận xây dựng giải pháp dựa trên các cơ sở lý thuyết, mô hình kiến trúc và công nghệ phần mềm chuyên ngành:

  • Mô hình kiến trúc Client - Server: Hệ thống được tổ chức thành 2 tầng chính gồm Tầng Client (nhận thông tin, hiển thị giao diện và gửi yêu cầu từ người dùng) và Tầng Server (xử lý logic nghiệp vụ, quản lý tài nguyên và phản hồi dữ liệu). Hai tầng giao tiếp với nhau thông qua Tầng Web sử dụng giao thức chuẩn HTTP và các giao diện lập trình ứng dụng (API).
  • Công nghệ Machine Learning - The Universal Recommender: Giải pháp thuật toán khuyến nghị được sử dụng để phân tích dữ liệu lịch sử người dùng và mô hình hồi quy, từ đó đề xuất các địa điểm du lịch đáng tin cậy cũng như gợi ý kết bạn phù hợp với sở thích của từng thành viên.
  • Thư viện React.js cho Tầng Front-end: Sử dụng cú pháp JSX kết hợp HTML trong JavaScript, cơ chế Virtual DOM giúp cập nhật giao diện mà không cần thao tác trực tiếp lên DOM thật, kiến trúc phân rã thành các component độc lập có khả năng tái sử dụng, luồng dữ liệu một chiều (single-way data flow) và hỗ trợ cơ chế render tầng server phục vụ tối ưu hóa công cụ tìm kiếm (SEO).
  • Nền tảng Node.js cho Tầng Back-end: Xây dựng máy chủ xử lý dữ liệu tập trung, cung cấp các API để kết nối giữa giao diện người dùng và cơ sở dữ liệu.
  • Hệ quản trị cơ sở dữ liệu MongoDB: Cơ sở dữ liệu NoSQL lưu trữ dữ liệu dưới dạng tài liệu (document) theo định dạng nhị phân BSON (Binary JSON), cấu trúc linh hoạt không bắt buộc định nghĩa schema cứng nhắc. Hỗ trợ các kỹ thuật chỉ mục (indexing), sao lưu dự phòng phân tán (replica sets) và phân mảnh ngang (sharding) phục vụ khả năng mở rộng hệ thống (scale-out).
  • Công nghệ truyền thông thời gian thực Socket.IO: Xây dựng kênh liên lạc hai chiều giữa máy khách và máy chủ, phục vụ các tính năng tương tác trực tiếp bao gồm nhắn tin, thông báo tức thời và cuộc gọi thoại/video.

Phương pháp nghiên cứu và thực hiện:

  • Phương pháp khảo sát và phân tích hiện trạng: Thu thập số liệu thống kê du lịch từ các tổ chức quốc tế (UNWTO, ADB) và cơ quan quản lý nhà nước (Bộ Văn hóa, Thể thao và Du lịch); tiến hành đối sánh tính năng của các ứng dụng mạng xã hội và dịch vụ du lịch đang lưu hành nhằm định vị khoảng trống tính năng.
  • Phương pháp phát triển phần mềm kết hợp (Scrum và Waterfall): Nhóm tác giả áp dụng mô hình Agile/Scrum trong giai đoạn đầu của dự án nhằm tạo sự linh hoạt trong quá trình vừa nghiên cứu giải thuật vừa xây dựng tính năng. Khi các yêu cầu hệ thống đã hoàn toàn ổn định và bước vào giai đoạn nước rút hoàn thiện tính năng trong quỹ thời gian giới hạn, nhóm chuyển dịch sang mô hình Thác nước (Waterfall) để kiểm soát chặt chẽ tiến độ triển khai.
  • Phương pháp phân tích và mô hình hóa hệ thống: Sử dụng biểu đồ Use Case để phân rã chức năng theo tác nhân (Actor), xây dựng sơ đồ tuần tự (Sequence Diagram) để mô hình hóa luồng thông điệp giữa các đối tượng và thiết kế sơ đồ logic cơ sở dữ liệu.

Thiết kế và triển khai

Hệ thống được xây dựng theo kiến trúc phân tầng MERN Stack (MongoDB, Express, React, Node.js), kết hợp các mô-đun dịch vụ phụ trợ nhằm giải quyết các yêu cầu kỹ thuật đặc thù:

Kiến trúc phân tầng và giao tiếp hệ thống

  • Tầng máy khách (Client Layer): Được xây dựng bằng React.js, đóng vai trò hiển thị giao diện người dùng, tiếp nhận thao tác, quản lý trạng thái cục bộ và điều hướng màn hình. Client giao tiếp với Back-end thông qua các yêu cầu HTTP/REST API và thiết lập kết nối thời gian thực qua WebSockets (Socket.IO).
  • Tầng máy chủ (Server Layer): Vận hành trên môi trường Node.js kết hợp Express framework, đảm nhận việc tiếp nhận các yêu cầu từ Tầng Client, kiểm tra xác thực phân quyền tài khoản, thực thi các quy tắc nghiệp vụ, điều phối việc truy xuất cơ sở dữ liệu và vận hành bộ máy gợi ý Universal Recommender.
  • Tầng lưu trữ (Database Layer): Triển khai trên MongoDB, tổ chức dữ liệu dưới dạng các bộ sưu tập (collections) phi quan hệ, tối ưu hóa cho các thao tác đọc ghi dữ liệu mạng xã hội và thông tin doanh nghiệp.

Thiết kế cơ sở dữ liệu

Cơ sở dữ liệu logic của hệ thống được tổ chức thành 18 collection chính nhằm lưu trữ toàn bộ các thực thể hoạt động trên nền tảng:

Tên Collection Chức năng lưu trữ trong hệ thống
PackageOrder Lưu trữ các đơn đặt mua gói dịch vụ quảng bá của doanh nghiệp
Role Định nghĩa các quyền hạn và vai trò người dùng trong hệ thống
Notify Quản lý danh sách các thông báo hoạt động gửi tới người dùng
Group Lưu trữ thông tin chi tiết về các hội nhóm du lịch
Company Hồ sơ, thông tin liên hệ và trạng thái của các tài khoản doanh nghiệp
User Dữ liệu định danh, thông tin cá nhân và mật khẩu của người dùng
Payment Lịch sử các giao dịch nạp tiền và thanh toán qua ngân hàng
PackageTravel Định nghĩa các gói dịch vụ du lịch do doanh nghiệp cung cấp
Location Dữ liệu về tọa độ bản đồ, vị trí địa lý của các điểm đến
Friend Quan hệ bạn bè, danh sách đang theo dõi và người theo dõi
Post Nội dung bài viết, hình ảnh, video chia sẻ trải nghiệm du lịch
message Nội dung các tin nhắn văn bản và tệp đa phương tiện
Client Thông tin quản lý phiên kết nối của các máy khách
Comment Nội dung các phản hồi và bình luận dưới bài viết
Package Cấu hình tham số và mức phí của các gói dịch vụ hệ thống
Event Quản lý các sự kiện cá nhân theo từng mốc thời gian
Story Dữ liệu hiển thị bảng tin ngắn tạm thời (tin nhanh)
Conversation Quản lý phiên hội thoại giữa các người dùng trong chức năng chat

Phân tích Use Case và phân hệ chức năng

Hệ thống xác định 3 tác nhân (Actor) chính:

  • Admin (Quản trị viên): Quản lý doanh thu, xem báo cáo tổng quan, cấu hình gói dịch vụ, quản lý hội nhóm, quản lý doanh nghiệp và quản lý người dùng.
  • Doanh nghiệp: Xem báo cáo số liệu công ty, nạp tiền vào hệ thống, mua gói dịch vụ quảng bá, đăng bài và quản trị sản phẩm trên cửa hàng du lịch.
  • Người dùng: Đăng ký, đăng nhập, quản lý hồ sơ cá nhân, đăng bài viết, tương tác (thả cảm xúc, bình luận, lưu, chia sẻ), kết bạn, tham gia/tạo hội nhóm, nhắn tin và gọi điện thoại/video trực tiếp.

Hệ thống xây dựng 15 Use Case tổng thể kèm theo đặc tả chi tiết các luồng xử lý chính và luồng xử lý ngoại lệ cho từng nghiệp vụ: Đăng nhập, Xem báo cáo công ty, Mua dịch vụ, Nạp tiền, Quản lý sự kiện cá nhân, Quản lý nhóm, Quản lý doanh nghiệp, Quản lý người dùng, Xem báo cáo tổng quan, Cấu hình dịch vụ, Quản lý hồ sơ, Bài đăng, Chat, Quản lý bạn bè, Quản lý hội nhóm và Quản lý sản phẩm.

Sơ đồ tuần tự (Sequence Diagram) được xây dựng chi tiết cho 7 chức năng trọng tâm: Đăng nhập, Đăng ký, Đăng bài, Tạo nhóm, Nhắn tin, Nạp tiền và Mua dịch vụ.

Thiết kế giao diện người dùng

Giao diện phần mềm được chia tách thành hai phân hệ độc lập:

  • Phân hệ quản trị (Admin Dashboard): Gồm hệ thống màn hình phân tích (hỗ trợ cả giao diện sáng và Dark mode), các biểu đồ thống kê chuyên sâu (biểu đồ cột tổng quan, biểu đồ tròn phân bố gói dịch vụ, biểu đồ đường theo dõi biến động trong năm) cùng các giao diện quản trị danh sách người dùng, doanh nghiệp, hội nhóm, sự kiện, câu hỏi và dịch vụ.
  • Phân hệ người dùng và doanh nghiệp (Client): Gồm hơn 50 màn hình hiển thị chi tiết, bao gồm màn hình bảng tin, giao diện tạo bài viết (tích hợp tính năng gắn thẻ bạn bè và gắn địa chỉ du lịch), giao diện chi tiết hội nhóm, cửa hàng du lịch (danh sách sản phẩm, thêm sản phẩm, chi tiết sản phẩm), hệ thống thanh toán/nạp tiền ngân hàng, giao diện nhắn tin tức thời và giao diện thực hiện cuộc gọi video trực tuyến.

Nội dung chính theo từng chương

Chương 1: Tổng quan đề tài

Chương mở đầu tập trung trình bày bối cảnh thực tiễn của ngành du lịch hậu đại dịch thông qua các báo cáo thống kê của UNWTO, ADB và Bộ Văn hóa, Thể thao và Du lịch Việt Nam. Tác giả tiến hành khảo sát và đánh giá chi tiết các ưu điểm, nhược điểm của hai nhóm sản phẩm điển hình trên thị trường: mạng xã hội Facebook (mạnh về tương tác nhưng giao diện phức tạp, nhiều quảng cáo, nguy cơ lộ thông tin) và website du lịch Travelocity (mạnh về dữ liệu dịch vụ nhưng thiếu hoàn toàn chức năng tương tác xã hội). Từ đó, chương xác định mục tiêu xây dựng một mạng xã hội du lịch chuyên biệt, vạch rõ phạm vi đề tài, phạm vi chức năng, 3 nhóm đối tượng sử dụng (Admin, Doanh nghiệp, Người dùng), phương pháp thực hiện kết hợp giữa khảo sát và mô hình hóa, cùng danh mục công nghệ cốt lõi dự kiến sử dụng (Node.js, React.js, MongoDB, Socket.IO, Universal Recommender).

Chương 2: Tìm hiểu cơ sở lý thuyết

Chương 2 trình bày các kiến thức nền tảng và công nghệ được sử dụng trong suốt quá trình phát triển dự án. Nội dung bao gồm:

  • Bản chất và nguyên lý vận hành của mô hình kiến trúc Client - Server trong dịch vụ web qua giao thức HTTP.
  • Khái niệm, đặc trưng tùy biến theo dữ liệu lịch sử và ưu điểm của giải thuật học máy The Universal Recommender trong việc xây dựng hệ thống khuyến nghị nội dung.
  • Các đặc tính kỹ thuật của thư viện React.js: cấu trúc thành phần (components), cơ chế cập nhật giao diện bằng Virtual DOM, ngôn ngữ mẫu JSX, luồng dữ liệu một chiều và kỹ thuật render phía server hỗ trợ SEO.
  • Hệ quản trị cơ sở dữ liệu MongoDB: kiến trúc hướng tài liệu BSON, khả năng mở rộng với sharding và replica sets; đồng thời phân tích rõ các nhược điểm kỹ thuật như suy giảm hiệu năng khi ghi đồng thời, việc thiếu hỗ trợ các giao dịch (transactions) phức tạp và nguy cơ mất kiểm soát dữ liệu do tính chất không ràng buộc schema cứng.

Chương 3: Phân tích phần mềm

Chương này đi sâu vào phân tích yêu cầu kỹ thuật của hệ thống, bao gồm danh mục các yêu cầu chức năng (kết bạn, gọi video, tương tác bài viết, tìm kiếm, quản lý hội nhóm, thông báo, bảng tin, quản trị hồ sơ, hiển thị vị trí bản đồ) và yêu cầu phi chức năng (giao diện tiếng Việt tối ưu trải nghiệm, bảo mật phân quyền). Tác giả xây dựng sơ đồ Use Case tổng thể; định nghĩa vai trò của 3 Actor (Admin, Doanh nghiệp, Người dùng); lập danh mục 15 Use Case nghiệp vụ; xây dựng bảng đặc tả chi tiết cho từng ca sử dụng với đầy đủ tiền điều kiện, hậu điều kiện, luồng xử lý chính và luồng xử lý phụ; đồng thời cung cấp các sơ đồ tuần tự (Sequence Diagram) cho các luồng nghiệp vụ quan trọng.

Chương 4: Thiết kế phần mềm

Chương 4 thể hiện kết quả thiết kế kỹ thuật của hệ thống trên hai phương diện:

  • Thiết kế cơ sở dữ liệu: Trình bày sơ đồ logic và đặc tả chi tiết cấu trúc dữ liệu của 18 bộ sưu tập (collections) trong MongoDB (từ PackageOrder, Role, User, Post đến message, Conversation, Location).
  • Thiết kế giao diện: Lập danh mục và mô tả chi tiết cách bố phối, luồng hoạt động của hơn 50 màn hình chức năng thuộc hệ thống quản trị Admin (Bảng 4.19) và hệ thống máy khách Client (Bảng 4.20), bao gồm các giao diện phân tích số liệu thống kê, quản lý bán hàng của doanh nghiệp, các màn hình tạo bài viết gắn tọa độ địa lý và giao diện gọi điện video trực tiếp.

Chương 5: Tổng kết

Chương cuối cùng tổng kết các kết quả đạt được của đề tài sau quá trình triển khai thực tế. Tác giả phân tích những thuận lợi về mặt công nghệ khi ứng dụng ngăn xếp MERN Stack và các thư viện hiện đại, thẳng thắn nhìn nhận những khó khăn gặp phải trong quá trình nghiên cứu thuật toán khuyến nghị và chuyển đổi quy trình phát triển từ Scrum sang Waterfall do hạn chế về thời gian; đồng thời đề xuất các định hướng phát triển phần mềm trong tương lai.

Kết quả và đóng góp

Khóa luận đạt được các kết quả cụ thể về mặt xây dựng phần mềm và đóng góp kỹ thuật:

Kết quả kỹ thuật đạt được

  • Xây dựng thành công hệ thống website mạng xã hội du lịch hoàn chỉnh, vận hành đồng bộ trên nền tảng MERN Stack với sự kết nối thông suốt giữa Front-end (React.js) và Back-end (Node.js) thông qua hệ thống API RESTful.
  • Thiết kế và chuẩn hóa 15 Use Case chức năng phục vụ đầy đủ cho 3 nhóm đối tượng riêng biệt: Quản trị viên (quản lý người dùng, nhóm, doanh nghiệp, cấu hình dịch vụ, thống kê doanh thu), Doanh nghiệp (mua dịch vụ, nạp tiền, quản lý sản phẩm du lịch) và Người dùng phổ thông (kết nối, chia sẻ, gọi điện, nhắn tin).
  • Xây dựng cấu trúc cơ sở dữ liệu NoSQL trên MongoDB gồm 18 collection, bao quát toàn diện các luồng thông tin từ tương tác xã hội (Post, Comment, Story, Group, Friend), truyền thông tức thời (message, Conversation), định vị (Location) đến giao dịch kinh tế (Payment, Package, PackageOrder).
  • Hiện thực hóa thành công tính năng gọi thoại và gọi video trực tuyến tích hợp với hệ thống nhắn tin tức thời dựa trên công nghệ Socket.IO.
  • Ứng dụng giải thuật Universal Recommender nhằm xử lý bài toán gợi ý địa điểm du lịch và đề xuất bạn bè dựa trên dữ liệu tương tác.

Đóng góp về mặt giải pháp và phương pháp

  • Đề xuất mô hình phát triển phần mềm linh hoạt theo từng giai đoạn: sử dụng Scrum để thích ứng nhanh với các thay đổi và thử nghiệm thuật toán trong giai đoạn đầu, sau đó chuyển sang mô hình Thác nước (Waterfall) ở giai đoạn cuối nhằm tối ưu hóa thời gian và đảm bảo hoàn thiện các tính năng cốt lõi đúng hạn.
  • Giải quyết bài toán phân mảnh thông tin du lịch bằng cách kết hợp giữa mô hình mạng xã hội tương tác (chia sẻ bài viết, trải nghiệm cá nhân) với mô hình giới thiệu dịch vụ doanh nghiệp trong một giao diện tinh giản, khắc phục nhược điểm phức tạp, nhiều quảng cáo của các mạng xã hội phổ quát và sự thiếu hụt tính tương tác của các website đặt vé truyền thống.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế của đề tài

  • Về công nghệ lưu trữ: Cơ sở dữ liệu MongoDB bộc lộ các nhược điểm cố hữu đã được chính tác giả phân tích trong cơ sở lý thuyết, bao gồm hiệu năng bị ảnh hưởng khi xử lý các yêu cầu ghi dữ liệu lớn diễn ra đồng thời vào cùng tài liệu; hệ thống không hỗ trợ các giao dịch (transactions) phức tạp như cơ sở dữ liệu quan hệ SQL; tính chất phi cấu trúc (schema-less) dễ dẫn đến tình trạng mất kiểm soát cấu trúc dữ liệu nếu hệ thống mở rộng quy mô lớn; tính toàn vẹn dữ liệu không được ràng buộc chặt chẽ.
  • Về quy trình thực hiện: Giới hạn về quỹ thời gian khiến nhóm nghiên cứu phải từ bỏ mô hình Scrum ở giai đoạn sau để chuyển sang mô hình Thác nước nhằm kịp tiến độ, dẫn đến việc giảm bớt tính linh hoạt trong việc tiếp nhận các thay đổi tính năng vào cuối chu kỳ dự án.

Hướng nghiên cứu tiếp

  • Tối ưu hóa hiệu năng của hệ cơ sở dữ liệu khi mở rộng quy mô người dùng và xử lý đồng thời, nghiên cứu áp dụng các cơ chế kiểm soát toàn vẹn dữ liệu chặt chẽ hơn.
  • Tiếp tục huấn luyện và tinh chỉnh giải thuật khuyến nghị Universal Recommender với các tập dữ liệu người dùng lớn hơn để nâng cao độ chính xác khi gợi ý hành trình và địa điểm du lịch.
  • Mở rộng hoàn thiện tính năng hỗ trợ đa ngôn ngữ trên toàn bộ hệ thống nhằm phục vụ đối tượng du khách quốc tế theo đúng mục tiêu ban đầu đã đề ra.

Giá trị tham khảo

Báo cáo khóa luận mang lại giá trị tham khảo thiết thực cho các đối tượng học thuật và kỹ thuật:

  • Sinh viên ngành Kỹ thuật Phần mềm và Công nghệ Thông tin: Có thể sử dụng khóa luận như một tài liệu mẫu về quy trình phát triển phần mềm chuẩn mực, bao gồm các bước phân tích khảo sát hiện trạng, xây dựng biểu đồ Use Case, vẽ sơ đồ tuần tự (Sequence Diagram), thiết kế cơ sở dữ liệu NoSQL và phân rã màn hình giao diện.
  • Người phát triển các dự án ứng dụng MERN Stack: Cung cấp tài liệu tham khảo chi tiết về việc tổ chức dữ liệu trên MongoDB (thông qua đặc tả 18 collection cụ thể), cách thức tích hợp truyền thông thời gian thực Socket.IO cho tính năng chat và video call, cũng như mô hình kết nối giữa Front-end React.js và Back-end Node.js qua API.
  • Các nghiên cứu phát triển mạng xã hội ngách (niche social network): Đưa ra các phân tích so sánh thực tế giữa mạng xã hội tổng quát (Facebook) và nền tảng dịch vụ đặc thù (Travelocity), làm cơ sở lý luận để xây dựng các giải pháp phần mềm chuyên biệt cho từng lĩnh vực kinh tế - xã hội.

Câu hỏi thường gặp

1. Tại sao nhóm tác giả lại thay đổi quy trình phát triển từ mô hình Scrum sang mô hình Thác nước?

Trong giai đoạn đầu của dự án, nhóm áp dụng Scrum nhằm tận dụng tính linh hoạt và khả năng thích ứng với các thay đổi để vừa tiến hành nghiên cứu công nghệ vừa phát triển các tính năng thử nghiệm. Tuy nhiên, khi bước vào giai đoạn tiếp theo với các chức năng cuối cùng và quỹ thời gian bị giới hạn, các yêu cầu hệ thống đã trở nên rõ ràng; việc chuyển đổi sang mô hình Thác nước (Waterfall) giúp nhóm tập trung đẩy nhanh tốc độ hoàn thiện chức năng và kiểm soát chặt chẽ thời hạn nộp đồ án.

2. Hệ thống phân chia người dùng thành những tác nhân (Actor) nào và quyền hạn của họ ra sao?

Hệ thống xác định 3 tác nhân chính:

  • Admin: Sử dụng trang quản trị để quản lý doanh thu, cấu hình dịch vụ, xem báo cáo tổng quan bằng biểu đồ, quản trị hội nhóm, doanh nghiệp và người dùng.
  • Doanh nghiệp: Xem các báo cáo số liệu liên quan đến công ty, nạp tiền vào hệ thống, mua các gói dịch vụ quảng bá và quản lý sản phẩm du lịch trên trang cửa hàng.
  • Người dùng: Sử dụng trang sản phẩm để đăng bài, lưu/chia sẻ bài viết, tạo lập và tham gia hội nhóm, tìm kiếm bạn bè, nhắn tin, gọi video và xem thông tin sản phẩm từ các doanh nghiệp.

3. Công nghệ nào được sử dụng để xây dựng hệ thống khuyến nghị và tính năng truyền thông thời gian thực?

Hệ thống sử dụng giải thuật học máy The Universal Recommender để thực hiện nhiệm vụ gợi ý địa điểm du lịch đáng tin cậy và đề xuất bạn bè phù hợp dựa trên dữ liệu lịch sử người dùng và mô hình hồi quy. Đối với các tính năng truyền thông thời gian thực như thông báo, nhắn tin trực tiếp và gọi thoại/video, hệ thống tích hợp công nghệ Socket.IO.

4. Cơ sở dữ liệu của phần mềm được thiết kế gồm những bảng/bộ sưu tập (collections) nào?

Cơ sở dữ liệu được xây dựng trên MongoDB gồm 18 collection: PackageOrder (đơn mua dịch vụ), Role (vai trò), Notify (thông báo), Group (hội nhóm), Company (doanh nghiệp), User (người dùng), Payment (thanh toán), PackageTravel (gói du lịch), Location (vị trí địa lý), Friend (bạn bè), Post (bài đăng), message (tin nhắn), Client (máy khách), Comment (bình luận), Package (gói dịch vụ), Event (sự kiện cá nhân), Story (tin ngắn) và Conversation (cuộc trò chuyện).

5. Dữ liệu thực tiễn nào chứng minh nhu cầu xây dựng mạng xã hội du lịch trong khóa luận?

Tác giả trích dẫn số liệu năm 2023 từ UNWTO cho thấy quý I/2023 lượng khách quốc tế đạt 80% mức trước dịch với 235 triệu lượt (gấp đôi cùng kỳ 2022); ADB dự báo tăng trưởng kinh tế Châu Á - Thái Bình Dương đạt 4,8% năm 2023 nhờ tiêu dùng và du lịch phục hồi; số liệu của Bộ Văn hóa, Thể thao và Du lịch Việt Nam ghi nhận số người theo dõi trên mạng xã hội du lịch tăng 600% và tỷ lệ tương tác Instagram đạt 5,61%.

Kết luận

Khóa luận tốt nghiệp "Xây dựng mạng xã hội du lịch" của sinh viên Nguyễn Đức Chí Đạt và Hồ Quang Linh (ngành Kỹ thuật Phần mềm, Trường Đại học Công nghệ Thông tin - Đại học Quốc gia TP. Hồ Chí Minh, 2023) đã giải quyết bài toán kết nối cộng đồng du lịch thông qua việc kết hợp nền tảng mạng xã hội và dịch vụ chuyên ngành. Dựa trên kiến trúc MERN Stack, Socket.IO và thuật toán Universal Recommender, công trình đã hoàn thiện đầy đủ quy trình kỹ nghệ từ phân tích 15 Use Case nghiệp vụ đến thiết kế 18 collection cơ sở dữ liệu và hơn 50 màn hình giao diện. Đây là một tài liệu kỹ thuật có giá trị tham khảo rõ ràng cho sinh viên và các kỹ sư phần mềm quan tâm đến việc xây dựng hệ thống mạng xã hội ngách và ứng dụng công nghệ web hiện đại.