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

Ngành du lịch được định hướng là ngành kinh tế mũi nhọn tại Việt Nam với tiềm năng phong phú và đa dạng. Trước thời điểm bùng phát dịch bệnh, năm 2019, du lịch Việt Nam ghi nhận mốc đón 18 triệu lượt khách quốc tế (tăng 16,2% so với năm 2018). Trong giai đoạn 2015–2019, lượng khách quốc tế tăng 2,3 lần (từ 7,9 triệu lượt lên 18 triệu lượt), đạt tốc độ tăng trưởng bình quân 22,7%/năm. Du lịch Việt Nam cũng được tổ chức World Travel Awards và World Golf Awards trao tặng nhiều giải thưởng như Điểm đến di sản hàng đầu thế giới, Điểm đến Golf tốt nhất thế giới, Điểm đến hàng đầu châu Á (2 năm liên tiếp 2018–2019), Điểm đến văn hóa hàng đầu châu Á 2019 và Điểm đến ẩm thực hàng đầu châu Á 2019.

Cùng với sự phục hồi kinh tế và sự phát triển của công nghệ thông tin, xu hướng tìm kiếm và đặt dịch vụ du lịch trực tuyến tăng trưởng mạnh. Thống kê từ Google Asia Pacific chỉ ra rằng nhu cầu tìm kiếm thông tin du lịch của người Việt tăng nhanh: 42% người dùng tìm kiếm về địa điểm du lịch, tour; 48% tìm kiếm về đặt phòng khách sạn. Tổng lượng từ khóa tìm kiếm bằng tiếng Việt đạt khoảng 5 triệu lượt xoay quanh các chủ đề tour trong nước, tour nước ngoài, địa điểm và đặt phòng khách sạn.

Tuy nhiên, các công ty và đại lý du lịch tại Việt Nam gặp nhiều khó khăn, yếu thế hơn so với các doanh nghiệp quốc tế về vốn lẫn công nghệ khi vẫn phụ thuộc vào mô hình kinh doanh truyền thống tại văn phòng. Việc chuyển đổi sang mô hình kinh doanh trực tuyến giúp doanh nghiệp tiếp cận khách hàng tiềm năng, giảm chi phí đầu tư cơ sở vật chất, giảm chi phí bán hàng, chi phí giao dịch, rút ngắn thời gian tác nghiệp và hỗ trợ quy trình đặt hàng tự động hóa.

Mục tiêu và nhiệm vụ nghiên cứu của đồ án bao gồm:

  1. Khảo sát nhu cầu thực tiễn về việc tìm kiếm và đặt mua các tour du lịch trong và ngoài nước;
  2. Đề xuất các yêu cầu chức năng cần có của một website thương mại điện tử chuyên ngành du lịch;
  3. Phân tích và thiết kế hệ thống thông tin bao gồm mô tả tác nhân, xây dựng kịch bản ca sử dụng, biểu đồ ca sử dụng, biểu đồ tuần tự, biểu đồ lớp và thiết kế cơ sở dữ liệu quan hệ;
  4. Hiện thực hóa và xây dựng hệ thống đặt tour du lịch trực tuyến tích hợp đặt vé máy bay, đặt phòng khách sạn và thanh toán trực tuyến.

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

  • Đối tượng nghiên cứu: Quy trình nghiệp vụ và hệ thống phần mềm đặt tour du lịch, đặt vé máy bay, đặt phòng khách sạn trực tuyến.
  • Phạm vi nghiên cứu: Thiết kế hệ thống thông tin phục vụ ba nhóm người dùng (Khách hàng, Nhân viên, Quản trị viên) với các module chức năng chính và tích hợp cổng thanh toán trực tuyến MoMo.

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

Đồ án áp dụng các cơ sở lý thuyết, mô hình kiến trúc và tiêu chuẩn công nghệ trong kỹ thuật phần mềm:

  • Mô hình kiến trúc Client - Server và Single-Page Application (SPA): Phân tách giữa tầng giao diện người dùng và tầng dịch vụ xử lý dữ liệu.
  • Tiêu chuẩn giao tiếp RESTful API: Định dạng cấu trúc trao đổi dữ liệu giữa client và server thông qua các phương thức HTTP.
  • Cơ chế xác thực và ủy quyền: Áp dụng các giao thức OpenID Connect và OAuth 2.0; hỗ trợ cơ chế Đăng nhập một lần (Single Sign-On - SSO).
  • Hệ quản trị cơ sở dữ liệu quan hệ (RDBMS): Mô hình hóa và quản lý dữ liệu thông qua các bảng quan hệ với ngôn ngữ truy vấn SQL.
  • Phương pháp phân tích và thiết kế hướng đối tượng (OOAD): Sử dụng ngôn ngữ mô hình hóa thống nhất (UML) bằng công cụ Visual Paradigm Community Edition để xây dựng biểu đồ ca sử dụng (Use Case Diagram), biểu đồ tuần tự (Sequence Diagram) và biểu đồ lớp (Class Diagram).

Nguồn dữ liệu sử dụng trong nghiên cứu:

  • Số liệu thống kê tăng trưởng ngành du lịch Việt Nam giai đoạn 2015–2019 và giải thưởng quốc tế.
  • Báo cáo dữ liệu xu hướng tìm kiếm người dùng từ Google Asia Pacific.
  • Dữ liệu đánh giá hiệu năng và kích thước truyền tải của các web framework từ các bảng xếp hạng công nghệ (TIOBE, benchmark framework).

Thiết kế và triển khai hệ thống

Hệ thống được thiết kế và xây dựng dựa trên ngăn xếp công nghệ (tech stack) hiện đại, đảm bảo tính phân tách thành phần và khả năng mở rộng:

Thành phần Công nghệ / Công cụ sử dụng Vai trò và đặc tính kỹ thuật trong hệ thống
Backend Java Spring (Spring Framework) Xây dựng dịch vụ RESTful API; tận dụng mô hình hướng đối tượng, cơ chế đa luồng và độ bảo mật cao của ngôn ngữ Java để xử lý nghiệp vụ hệ thống.
Frontend Angular Phát triển giao diện Single-Page Application (SPA) từ Google; hỗ trợ cơ chế Two-way Data Binding, tối ưu hóa hiệu suất CPU và kích thước chuyển dữ liệu.
Cơ sở dữ liệu MySQL Hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) mã nguồn mở; lưu trữ dữ liệu người dùng, tour, chuyến bay, khách sạn, phòng và đơn hàng.
Xác thực & Phân quyền Keycloak Quản lý định danh độc lập, hỗ trợ giao thức OpenID Connect, OAuth 2.0, SSO; tích hợp đồng bộ danh tính (LDAP, Active Directory) và đăng nhập mạng xã hội (Google, Facebook, Twitter, Stack Overflow).
Đóng gói & Triển khai Docker Đóng gói ứng dụng thành các container trên nền tảng ảo hóa, thiết lập môi trường đồng nhất và hỗ trợ khởi chạy dịch vụ độc lập.
Hạ tầng đám mây Google Cloud Platform (GCP) Lưu trữ máy ảo tùy biến cấu hình CPU/RAM/SSD, bảo mật thông qua IAM, hệ thống mạng VPC kết nối với tốc độ 2–16 Gbps và hỗ trợ cân bằng tải toàn cầu.
Thanh toán trực tuyến Cổng thanh toán MoMo Hỗ trợ phương thức thanh toán điện tử bằng hình thức quét mã QR trên đơn đặt tour, vé máy bay và phòng khách sạn.

Hệ thống phân định rõ ba nhóm tác nhân chính:

  • Quản trị hệ thống (Admin): Quản lý người dùng, cấp và phân quyền tài khoản cho nhân viên, thay đổi mật khẩu và quản lý thông tin hệ thống.
  • Nhân viên: Quản lý dữ liệu nghiệp vụ bao gồm thêm, sửa, xóa danh sách tour du lịch, danh sách chuyến bay, danh sách khách sạn và danh sách phòng nghỉ tương ứng.
  • Khách hàng: Tìm kiếm dịch vụ (tour, vé máy bay, khách sạn), chọn chi tiết đặt chỗ (loại phòng, số lượng người lớn/trẻ em, số ghế máy bay, khối lượng hành lý ký gửi), thực hiện thanh toán qua ví điện tử và nhận thông tin xác nhận qua email.

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

Chương I: Giới thiệu chung

Chương này khảo sát bối cảnh thực tiễn của ngành du lịch Việt Nam, làm rõ sự thay đổi trong hành vi người tiêu dùng khi chuyển sang tìm kiếm và đặt dịch vụ du lịch qua môi trường mạng. Tác giả phân tích lợi ích của việc ứng dụng thương mại điện tử vào du lịch nhằm tiết kiệm chi phí vận hành, giảm nhân sự bán hàng và nâng cao năng lực cạnh tranh cho doanh nghiệp. Trên cơ sở đó, chương I đề xuất 10 nhóm chức năng cốt lõi cho hệ thống:

  1. Đăng ký tài khoản;
  2. Đăng nhập hệ thống (bằng tài khoản hệ thống hoặc tài khoản bên thứ ba như Google);
  3. Đặt tour du lịch trực tuyến;
  4. Đặt vé máy bay trực tuyến;
  5. Đặt phòng khách sạn trực tuyến;
  6. Thanh toán trực tuyến qua cổng thanh toán điện tử;
  7. Quản lý tài khoản và phân quyền người dùng;
  8. Quản lý danh mục tour du lịch;
  9. Quản lý lịch trình và thông tin chuyến bay;
  10. Quản lý thông tin khách sạn và phòng nghỉ.

Đồng thời, tác giả tiến hành khảo sát, so sánh và lựa chọn các công cụ lập trình, framework và hạ tầng công nghệ (Java Spring, Angular, MySQL, Keycloak, Docker, Google Cloud Platform).

Chương II: Phân tích và thiết kế hệ thống

Chương II tập trung vào phân tích chi tiết yêu cầu phần mềm và thiết kế kiến trúc hệ thống thông qua hệ thống biểu đồ UML:

  • Xác định tác nhân và ca sử dụng: Phân chia thành ba nhóm tác nhân (Admin, Nhân viên, Khách hàng) và lập 25 bảng kịch bản ca sử dụng chi tiết (từ Bảng 1 đến Bảng 25) mô tả rõ tiền điều kiện, chuỗi sự kiện chính và các trường hợp ngoại lệ (như lỗi trùng email/username, nhập sai thông tin, thanh toán thất bại).
  • Mô hình hóa ca sử dụng: Xây dựng biểu đồ ca sử dụng tổng quát (Hình 4) và 7 biểu đồ phân rã ca sử dụng chi tiết: Quản lý tài khoản (Hình 5), Quản lý tour (Hình 6), Quản lý chuyến bay (Hình 7), Quản lý khách sạn & phòng (Hình 8), Đặt tour (Hình 9), Đặt phòng khách sạn (Hình 10) và Đặt vé máy bay (Hình 11).
  • Mô hình hóa hành vi: Xây dựng 22 biểu đồ tuần tự (Hình 12 đến Hình 33) mô tả tương tác giữa các lớp đối tượng giao diện, lớp điều khiển (UserService, TourService, FlightService, HotelService), lớp thực thể và cơ sở dữ liệu đối với từng luồng thao tác.
  • Thiết kế cấu trúc và dữ liệu: Xây dựng biểu đồ lớp phân tích (Hình 34), biểu đồ lớp thiết kế (Hình 35), bảng mô tả các lớp điều khiển (Bảng 26) và thiết kế lược đồ cơ sở dữ liệu quan hệ (Bảng 27, Hình 36) để lưu trữ thông tin nghiệp vụ.

Chương III: Xây dựng và thử nghiệm hệ thống

Chương III trình bày kết quả hiện thực hóa phần mềm từ các mô hình thiết kế đã xây dựng ở chương trước. Tác giả giới thiệu giao diện và luồng thao tác của các chức năng tiêu biểu:

  • Quy trình Đặt tour du lịch: Người dùng tìm kiếm theo điểm đến, hệ thống lọc danh sách tour phù hợp; khách hàng nhập thông tin liên hệ, tiến hành thanh toán qua mã QR MoMo và nhận email xác nhận chi tiết sau khi thanh toán thành công.
  • Quy trình Đặt vé máy bay: Khách hàng tìm kiếm chuyến bay theo nơi khởi hành, nơi đến, thời gian bay, số lượng hành khách (người lớn, trẻ em); sau đó chọn ghế ngồi, chọn khối lượng hành lý ký gửi mua thêm và thực hiện thanh toán hóa đơn.
  • Quy trình Đặt phòng khách sạn: Tìm kiếm khách sạn theo điểm đến, ngày nhận phòng (check-in), ngày trả phòng (check-out), số lượng khách; lựa chọn danh sách phòng còn trống, điền thông tin và hoàn tất đơn hàng qua cổng MoMo.

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

Kết quả chính của đồ án:

  • Hoàn thành đầy đủ tài liệu phân tích và thiết kế hệ thống hướng đối tượng bao gồm 25 kịch bản ca sử dụng chi tiết, hệ thống biểu đồ ca sử dụng, biểu đồ phân rã, biểu đồ tuần tự, biểu đồ lớp và lược đồ cơ sở dữ liệu quan hệ.
  • Xây dựng thành công ứng dụng web thương mại điện tử hoàn chỉnh theo mô hình kiến trúc phân lớp: Frontend bằng Angular, Backend RESTful API bằng Java Spring, lưu trữ dữ liệu trên MySQL.
  • Tích hợp thành công hệ thống quản lý định danh và truy cập Keycloak (hỗ trợ SSO, OpenID Connect, OAuth 2.0) giúp nâng cao tính an toàn và bảo mật cho tài khoản người dùng và nhân viên.
  • Tích hợp phương thức thanh toán điện tử quét mã QR qua ví điện tử MoMo và cơ chế tự động gửi email thông báo chi tiết đơn hàng sau khi giao dịch hoàn tất.

Đóng góp của đồ án:

  • Hệ thống hóa quy trình nghiệp vụ đặt tour trực tuyến tích hợp đa dịch vụ (kết hợp tour trọn gói, vé máy bay và phòng khách sạn) trên cùng một hệ thống duy nhất.
  • Đưa ra giải pháp kỹ thuật cụ thể cho các đại lý, công ty du lịch vừa và nhỏ tại Việt Nam trong việc chuyển đổi số mô hình bán tour truyền thống sang kinh doanh trực tuyến với chi phí vận hành tối ưu.

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

Hạn chế của đồ án:

  • Phạm vi nghiên cứu chủ yếu tập trung vào luồng nghiệp vụ đặt dịch vụ và tích hợp một cổng thanh toán trực tuyến MoMo; chưa mở rộng tích hợp các cổng thanh toán quốc tế khác (như Visa/Mastercard trực tiếp) hoặc đa dạng ví điện tử khác.
  • Dữ liệu chuyến bay và phòng khách sạn đang vận hành nội bộ trên hệ thống dữ liệu tự xây dựng, chưa tích hợp API trực tiếp theo thời gian thực từ các hãng hàng không và các hệ thống quản lý khách sạn toàn cầu (GDS).

Hướng nghiên cứu và phát triển tiếp theo:

  • Nâng cấp và mở rộng thêm các tính năng tiện ích cho hệ thống nhằm tăng trải nghiệm người dùng.
  • Mở rộng phương thức thanh toán trực tuyến đa dạng hơn.
  • Kết nối và đồng bộ dữ liệu với các đối tác cung cấp dịch vụ du lịch, vận chuyển và lưu trú bên ngoài thông qua các chuẩn kết nối API chuyên ngành.

Giá trị tham khảo

Đồ án là tài liệu tham khảo phù hợp cho:

  • Sinh viên ngành Công nghệ thông tin, Hệ thống thông tin và Kỹ thuật phần mềm: Cung cấp tài liệu mẫu mực về phương pháp phân tích và thiết kế hệ thống hướng đối tượng (OOAD) hoàn chỉnh, từ việc khảo sát yêu cầu, lập kịch bản ca sử dụng đến thiết kế biểu đồ tuần tự và biểu đồ lớp.
  • Người phát triển ứng dụng web thương mại điện tử: Tham khảo mô hình kết hợp công nghệ hiện đại bao gồm Angular (Frontend Single-Page App), Java Spring (Backend RESTful API), MySQL (CSDL), Keycloak (Quản lý định danh/SSO), Docker (Đóng gói ứng dụng) và Google Cloud Platform (Triển khai hạ tầng).
  • Phần đáng tham khảo nhất: Chương II với hệ thống 25 kịch bản ca sử dụng chi tiết và chuỗi biểu đồ tuần tự thể hiện rõ ràng luồng tương tác giữa Client - Service - Database trong kiến trúc phần mềm.

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

1. Hệ thống phân quyền cho những nhóm tác nhân nào và nhiệm vụ của từng nhóm là gì?
Hệ thống xác định ba nhóm tác nhân chính:

  • Quản trị hệ thống (Admin): Quản lý danh sách tài khoản người dùng, cấp tài khoản cho nhân viên, phân quyền và thay đổi mật khẩu tài khoản.
  • Nhân viên: Quản trị danh mục dữ liệu nghiệp vụ bao gồm thêm, sửa, xóa thông tin tour du lịch, danh sách chuyến bay, thông tin khách sạn và danh sách phòng khách sạn.
  • Khách hàng: Đăng ký/đăng nhập tài khoản, tìm kiếm thông tin, thực hiện đặt tour, đặt vé máy bay (chọn ghế, mua thêm hành lý), đặt phòng khách sạn và thanh toán hóa đơn.

2. Công nghệ nào được sử dụng để quản lý xác thực và phân quyền trong hệ thống?
Đồ án sử dụng giải pháp mã nguồn mở Keycloak. Keycloak hỗ trợ các giao thức OpenID Connect, OAuth 2.0, cung cấp tính năng Đăng nhập một lần (SSO), quản lý danh tính độc lập, đồng bộ với cơ sở dữ liệu LDAP/Active Directory và hỗ trợ đăng nhập qua các nhà cung cấp danh tính mạng xã hội như Google, Facebook, Twitter, Stack Overflow.

3. Khách hàng thực hiện quy trình thanh toán trên hệ thống như thế nào?
Khi khách hàng chọn đặt dịch vụ (tour, vé máy bay hoặc phòng khách sạn) và nhấn nút thanh toán, hệ thống sẽ hiển thị trang thanh toán chứa thông tin chi tiết đơn hàng và một mã QR. Khách hàng sử dụng ứng dụng ví điện tử MoMo để quét mã QR và xác nhận giao dịch. Khi thanh toán thành công, hệ thống ghi nhận trạng thái, lưu dữ liệu vào CSDL và tự động gửi email thông tin đơn hàng cho khách hàng.

4. Kiến trúc công nghệ tổng thể của đồ án gồm những gì?
Hệ thống được xây dựng theo mô hình Client - Server với kiến trúc RESTful API. Tầng giao diện người dùng (Frontend) được phát triển bằng Angular để xây dựng ứng dụng Single-Page Application; tầng xử lý nghiệp vụ (Backend) sử dụng framework Java Spring; cơ sở dữ liệu lưu trữ quan hệ sử dụng MySQL; hệ thống xác thực định danh do Keycloak đảm nhiệm; toàn bộ ứng dụng được đóng gói trong các container Docker và lưu trữ, vận hành trên nền tảng đám mây Google Cloud Platform (GCP).

Kết luận

Đồ án tốt nghiệp "Xây dựng hệ thống đặt tour du lịch trực tuyến" của sinh viên Phạm Minh Quốc (ngành Hệ thống thông tin, Học viện Công nghệ Bưu chính Viễn thông) đã giải quyết toàn diện bài toán tin học hóa quy trình kinh doanh dịch vụ du lịch trong bối cảnh chuyển đổi số. Bằng việc áp dụng phương pháp phân tích thiết kế hướng đối tượng chặt chẽ kết hợp ngăn xếp công nghệ phổ biến (Angular, Java Spring, Keycloak, MySQL, Docker, GCP), tác giả đã xây dựng thành công nền tảng web thương mại điện tử tích hợp đặt tour, vé máy bay, phòng khách sạn và thanh toán trực tuyến. Công trình là tài liệu tham khảo có giá trị cao về mặt kỹ thuật và phương pháp luận cho sinh viên, kỹ sư phần mềm khi triển khai các hệ thống thông tin thương mại điện tử thực tế.