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

Trong lĩnh vực du lịch và lữ hành, công tác quản trị và vận hành tour là một quy trình nghiệp vụ phức tạp đối với các đơn vị kinh doanh. Quá trình này đòi hỏi doanh nghiệp phải liên tục giám sát các chuyến đi, thiết lập lịch trình chi tiết cho từng hành trình, cập nhật thông tin giá vé, thời gian biểu và các địa điểm tham quan. Phương thức bán và đặt vé truyền thống chủ yếu dựa trên việc khách hàng phải đến trực tiếp văn phòng đại lý, liên hệ qua điện thoại hoặc điền biểu mẫu thủ công. Cách tiếp cận này bộc lộ nhiều hạn chế thực tiễn: tiêu tốn thời gian của cả khách hàng lẫn nhân viên, dễ xảy ra sai sót trong khâu nhập liệu thủ công và gây ra nhiều bất tiện trong việc tra cứu thông tin chuyến đi.

Nhằm giải quyết các bất cập trên, đề tài khóa luận "Xây dựng website đặt tour du lịch trực tuyến" (Building a Website for Online Booking Tour) được thực hiện bởi nhóm sinh viên Nguyễn Văn Hớn và Vũ Hoàng Trúc Vy, dưới sự hướng dẫn của ThS. Nguyễn Trần Thị Vân tại Khoa Đào tạo Quốc tế, Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh (bảo vệ vào tháng 12/2024). Mục tiêu của đề tài là xây dựng một hệ thống website thương mại điện tử hoàn chỉnh cho phép khách hàng tìm kiếm, chọn lọc và đặt tour trực tuyến, đồng thời cung cấp giao diện quản trị hỗ trợ các công ty du lịch vừa và nhỏ quản lý dịch vụ, dữ liệu khách hàng và bán vé.

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

  1. Nhiệm vụ nghiên cứu lý thuyết:

    • Nghiên cứu các công nghệ Next.js, Express và TypeScript.
    • Nghiên cứu giao diện lập trình ứng dụng (API) và kiến trúc REST API.
    • Nghiên cứu hệ cơ sở dữ liệu MongoDB và giải pháp cơ sở dữ liệu đám mây MongoDB Cloud.
    • Nghiên cứu kiến thức về triển khai và lưu trữ ứng dụng trên nền tảng điện toán đám mây Amazon Web Services (AWS).
  2. Nhiệm vụ thực hành và xây dựng sản phẩm:

    • Bộ lọc tìm kiếm tour (Filter Tours): Hỗ trợ người dùng tra cứu và lọc danh sách tour theo nhiều tiêu chí cụ thể.
    • Đặt tour (Book Tours): Cung cấp tính năng đặt chỗ trực tuyến tích hợp các tùy chọn thanh toán.
    • Quản trị tour và người dùng (Manage Tours and Users): Xây dựng bảng điều khiển quản trị (Admin Panel) để quản lý dữ liệu tour và tài khoản người dùng.
    • Quản lý hồ sơ cá nhân (User Profile Management): Cho phép người dùng cập nhật thông tin cá nhân và xem lại lịch sử đặt tour.
    • Thông báo và nhắc nhở (Notifications and Alerts): Tự động gửi thư xác nhận đặt chỗ và thông báo nhắc nhở đến người dùng.
    • Tích hợp thanh toán (Payment Integration): Thiết lập cổng thanh toán trực tuyến an toàn.
    • Quản lý lịch trình tour (Tour Itinerary Management): Cung cấp công cụ khởi tạo và hiệu chỉnh lịch trình tham quan chi tiết.
    • Chính sách hủy và hoàn tiền (Cancellation and Refund Policies): Xử lý quy trình hủy chỗ và quản lý hoàn tiền cho khách hàng.

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

  • Đối tượng nghiên cứu: Bao gồm hai thành tố chính là công nghệ (HTML, CSS, JavaScript, Bootstrap, Node.js, Express, React, TypeScript, Redux, Next.js, MongoDB) và kiến thức thực tiễn (ứng dụng nguyên lý kiến trúc doanh nghiệp nhằm mô hình hóa hệ thống bằng các biểu đồ phục vụ vận hành).
  • Phạm vi không gian và đối tượng thụ hưởng: Đề tài tập trung xây dựng giải pháp phần mềm cho các chủ doanh nghiệp du lịch quy mô nhỏ (small company owners) và nhóm khách hàng có nhu cầu tra cứu, đặt vé trực tuyến.
  • Phạm vi thời gian: Đồ án được triển khai thực hiện trong thời lượng 15 tuần, bắt đầu từ ngày 02/09/2024 đến ngày 13/12/2024.

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

Để xây dựng hệ thống website đặt tour trực tuyến, đồ án đã tổng hợp nền tảng lý thuyết về kiến trúc phần mềm hướng dịch vụ và mô hình phát triển full-stack JavaScript. Trọng tâm công nghệ được lựa chọn là MERN stack kết hợp ngôn ngữ TypeScript và các dịch vụ hỗ trợ trung gian.

Khung công nghệ và mô hình lý thuyết được phân tích trong đề tài gồm:

  • TypeScript: Ngôn ngữ mã nguồn mở phát triển bởi Microsoft, nâng cấp từ JavaScript với cơ chế gõ tĩnh (Static Typing), hỗ trợ hướng đối tượng qua Interface, Class và Generics. TypeScript hỗ trợ phát hiện lỗi tại thời điểm biên dịch, tăng tính tường minh và khả năng tái cấu trúc hệ thống lớn, dù đòi hỏi bước biên dịch trung gian sang file .js và sự tương thích cấu hình với Node.js runtime.
  • MERN Stack: Mô hình kết hợp 4 công nghệ mã nguồn mở JavaScript gồm MongoDB, Express, React và Node.js, cho phép phát triển đồng bộ từ giao diện người dùng (Frontend) đến logic máy chủ (Backend) và cơ sở dữ liệu.
  • Node.js: Môi trường thực thi JavaScript xây dựng trên V8 Engine của Google, vận hành theo cơ chế I/O bất đồng bộ không chặn (non-blocking I/O) và mô hình đơn luồng (single-thread), giúp xử lý số lượng lớn kết nối đồng thời với mức tiêu thụ bộ nhớ RAM thấp.
  • ExpressJS: Khung ứng dụng backend tối giản chạy trên Node.js, hỗ trợ điều hướng HTTP request và cung cấp cơ chế Middleware cho các tác vụ chứng thực người dùng, ghi nhận nhật ký (logging) và xử lý ngoại lệ.
  • MongoDB: Hệ quản trị cơ sở dữ liệu NoSQL hướng tài liệu (Document-oriented), lưu trữ dữ liệu dưới định dạng JSON/BSON linh hoạt, không sử dụng bảng và lược đồ cố định, hỗ trợ mở rộng quy mô thông qua cơ chế phân mảnh (Sharding). Văn bản chỉ rõ giới hạn của MongoDB là mỗi tài liệu có kích thước tối đa 16MB và giới hạn tối đa 100 tài liệu con lồng nhau bên trong.
  • Redis: Hệ thống lưu trữ dữ liệu dạng cặp khóa - giá trị trên bộ nhớ trong (in-memory), được ứng dụng cho tác vụ bộ nhớ đệm (caching) nhằm đẩy nhanh tốc độ truy xuất dữ liệu thời gian thực.
  • Postman: Công cụ phục vụ kiểm thử API theo kiến trúc RESTful, cho phép khởi tạo, lưu trữ và tự động hóa các kịch bản kiểm tra cho các phương thức HTTP (GET, POST, PUT, DELETE, PATCH).

Phương pháp nghiên cứu thực tế bao gồm ba quy trình:

  1. Thu thập dữ liệu (Data Collection): Nhóm tác giả thiết kế bảng câu hỏi khảo sát cấu trúc gửi đến nhóm đối tượng mục tiêu gồm bạn học, người thân và những người có thói quen đi du lịch. Mục tiêu là thu thập thông tin về sở thích xê dịch, kỳ vọng đối với quy trình đặt vé và đánh giá về các tính năng cần có trên nền tảng.
  2. Tổng quan tài liệu và khảo sát hệ thống tương tự (Literature Review): Phân tích các tài liệu học thuật và tiến hành khảo sát thực nghiệm hai nền tảng đặt phòng/tour trực tuyến hàng đầu là Booking.com và Agoda.com để nhận diện ưu nhược điểm giao diện, công cụ tìm kiếm và cấu trúc đường dẫn URL.
  3. Phân tích dữ liệu (Data Analysis): Kết hợp kết quả khảo sát và dữ liệu so sánh thực tiễn để đặc tả các yêu cầu chức năng (Functional Requirements) và phi chức năng (Non-functional Requirements) cho đồ án.
Tiêu chí so sánh Nền tảng Booking.com Nền tảng Agoda.com
Giao diện người dùng Thiết kế sạch sẽ, chuyên nghiệp, màu sắc và typography hài hòa. Giao diện sáng sủa, hấp dẫn, hình ảnh chất lượng cao.
Công cụ tìm kiếm Tìm kiếm theo địa điểm, ngày tháng, số lượng khách linh hoạt. Hỗ trợ lọc theo địa điểm, khoảng thời gian và số khách.
Hỗ trợ ngôn ngữ Hỗ trợ 43 ngôn ngữ, phục vụ phạm vi toàn cầu. Hỗ trợ đa ngôn ngữ mở rộng phạm vi tiếp cận người dùng.
Tài khoản cá nhân Cho phép đăng nhập/đăng ký để nhận ưu đãi cá nhân hóa. Có hệ thống thành viên để tích lũy chiết khấu.
Điểm hạn chế nhận diện Tốc độ tải trang chậm do lượng ảnh lớn; URL dài, chưa tối ưu SEO. Tốc độ tải trang chậm khi hiển thị nhiều dữ liệu; URL phức tạp.

Thiết kế và triển khai

Hệ thống được thiết kế theo mô hình phân quyền chặt chẽ với ba tác nhân tương tác (Actors): Khách vãng lai (Guest), Người dùng đã đăng ký (Registered User) và Quản trị viên (Admin).

[Guest / User / Admin] 

Kiến trúc cơ sở dữ liệu (Collections)

Cơ sở dữ liệu MongoDB của hệ thống được tổ chức thành các bộ sưu tập (Collections) chuyên biệt:

Tên Collection Mô tả nhiệm vụ lưu trữ trong hệ thống
Collection base Lưu trữ các cấu hình chung và thuộc tính nền tảng của hệ thống dữ liệu.
Collection User Quản lý thông tin tài khoản người dùng, email, mật khẩu mã hóa, quyền hạn và ảnh đại diện.
Collection Tours Lưu trữ thông tin chi tiết về tour du lịch: tên tour, lịch trình, đơn giá, địa điểm đón, trạng thái kích hoạt.
Collection Payments Lưu trữ bản ghi giao dịch, mã giao dịch PayPal, phương thức thanh toán, số tiền và trạng thái xử lý.
Collection Bookings Lưu trữ đơn đặt chỗ của khách hàng, số lượng khách tham gia, liên kết tài khoản và trạng thái vé.
Collection Transport Quản lý thông tin các phương tiện vận chuyển được gán cho từng hành trình tour.
Collection Hotel Lưu trữ danh sách thông tin khách sạn, địa chỉ và dịch vụ lưu trú liên kết trong các gói tour.

Phân rã chức năng theo vai trò người dùng

Hệ thống phân chia quyền hạn tương tác cho từng đối tượng cụ thể:

  • Khách vãng lai (Guest): Xem danh sách tour, xem tour nổi bật trong tháng (Hot tours), xem tour mới nhất (Latest tours), tra cứu tour theo từ khóa/vùng miền/mức giá, xem chi tiết tour, đăng ký tài khoản thành viên, đọc các trang điều khoản dịch vụ (Terms of use), chính sách quyền riêng tư (Privacy policy) và quy định hủy vé (Tour cancellation policy).
  • Người dùng đã đăng ký (Registered User): Thừa hưởng toàn bộ quyền của Guest, đồng thời có quyền: đăng nhập/đăng xuất, đổi mật khẩu, đổi email xác thực, cập nhật ảnh hồ sơ cá nhân, đặt tour trực tuyến (Book tour), thực hiện thanh toán qua cổng PayPal, thanh toán phần phí còn lại (Pay remaining fee) trước ngày khởi hành đối với các đơn đặt cọc trước, theo dõi trạng thái đơn đặt chỗ (Booking status), xem lịch sử giao dịch và gửi yêu cầu hủy đơn đặt chỗ (Cancel booking).
  • Quản trị viên (Admin): Đăng nhập vào bảng điều khiển quản trị để thực hiện:
    • Quản lý tour: Thêm mới, cập nhật thông tin, thay đổi trạng thái (Active, Canceled), xóa tour, tải ảnh lên thư viện.
    • Quản lý phương tiện và khách sạn: Thêm mới, cập nhật, xóa thông tin phương tiện vận chuyển và địa điểm lưu trú.
    • Quản lý vận hành tour: Kiểm tra danh sách tour sắp khởi hành (Incoming tours). Phê duyệt tour trong vòng 7 ngày trước ngày khởi hành nếu đạt đủ số lượng khách đăng ký tối thiểu; hủy tour nếu không đạt đủ số lượng hành khách quy định.
    • Quản lý đơn hàng và hoàn tiền: Tra cứu chi tiết đơn đặt vé (Order details), theo dõi danh sách hoàn tiền (Refund list) và cập nhật trạng thái xử lý hoàn tiền (Completed, Pending) khi tour bị hủy bởi khách hoặc doanh nghiệp.

Yêu cầu phi chức năng

Đồ án xác lập hệ thống yêu cầu phi chức năng qua ba lăng kính:

  1. Đối với hệ thống: Tính bền bỉ và khả năng thích ứng (Resilience), cho phép cập nhật tính năng theo yêu cầu kinh doanh mà không làm gián đoạn vận hành; tính an toàn và tiện lợi (Convenience/Security), bảo mật cơ sở dữ liệu và duy trì thời gian phản hồi tức thì.
  2. Đối với người dùng: Giao diện đồ họa trực quan (Friendly interface), các nút bấm chức năng được bố trí khoa học, các cửa sổ chức năng tương tác đồng bộ và không tạo ra rào cản ngăn cách luồng thao tác.
  3. Đối với công ty/quản trị: Tính tái sử dụng (Reusability), kiến trúc mã nguồn và các module chức năng có thể đóng gói, kế thừa và áp dụng cho các dự án phần mềm tiếp theo mà không làm biến đổi cấu trúc cốt lõi.

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

Báo cáo khóa luận được cấu trúc thành 5 chương với các nội dung trọng tâm như sau:

Chương 1: Giới thiệu tổng quan đề tài (Introduction)

Chương mở đầu trình bày động lực chọn đề tài từ nhu cầu chuyển đổi số thực tế trong ngành du lịch lữ hành. Nhóm tác giả phân tích các bất cập của phương thức đặt vé thủ công và xác định mục tiêu xây dựng một nền tảng web thương mại điện tử phục vụ quản trị và đặt tour trực tuyến. Chương này phân định rõ phạm vi đề tài tập trung vào đối tượng doanh nghiệp du lịch quy mô nhỏ, xác lập khung thời gian 15 tuần và làm rõ ba phương pháp nghiên cứu chính: thu thập dữ liệu bằng bảng hỏi cấu trúc, tổng quan tài liệu qua các nền tảng Booking.com/TripAdvisor và phân tích dữ liệu khảo sát.

Chương 2: Cơ sở nền tảng và công nghệ (Fundamental Basis)

Chương 2 cung cấp cơ sở lý thuyết về các công nghệ được lựa chọn trong quá trình phát triển hệ thống. Nhóm nghiên cứu tiến hành đánh giá ưu điểm và hạn chế của từng công nghệ:

  • Ngôn ngữ TypeScript với thế mạnh về hệ thống kiểu tĩnh và khả năng tái cấu trúc mã nguồn.
  • MERN stack hỗ trợ quy trình lập trình JavaScript toàn diện.
  • Nền tảng Node.js và khung làm việc ExpressJS tối ưu cho kiến trúc REST API và xử lý bất đồng bộ.
  • Hệ quản trị cơ sở dữ liệu NoSQL MongoDB với ưu thế lược đồ linh hoạt và hạn chế về dung lượng tài liệu 16MB.
  • Các công cụ bổ trợ gồm bộ nhớ đệm Redis, thư viện giao diện React với kiến trúc Virtual DOM, và công cụ kiểm thử Postman.

Chương 3: Khảo sát và phân tích yêu cầu hệ thống (Survey and Requirement Analysis)

Chương 3 trình bày kết quả khảo sát thực tế trên hai nền tảng Booking.com và Agoda, chỉ ra những ưu điểm về trải nghiệm tìm kiếm và hạn chế về độ trễ hiển thị hình ảnh cùng cấu trúc URL chưa tối ưu cho SEO. Từ đó, chương này thiết lập bảng đặc tả các yêu cầu chức năng hệ thống (System Functional Requirements) gồm 6 chức năng tài khoản cốt lõi và 20 yêu cầu nghiệp vụ quản trị (Business Requirements). Đồng thời, chương 3 phân định chi tiết vai trò của 3 tác nhân (Guest, Registered User, Admin), mô hình hóa các tương tác qua biểu đồ Use Case tổng thể và thiết lập kịch bản đặc tả chi tiết (Use Case Specifications) cho các luồng thao tác như tìm kiếm tour (UC1-01), xem tour hot (UC1-02), xem tour mới nhất (UC1-03) và xem chi tiết tour (UC1-04).

Chương 4: Phân tích và thiết kế hệ thống (System Analysis and Design)

Chương 4 tập trung vào khâu thiết kế chi tiết kiến trúc dữ liệu và giao diện người dùng:

  • Thiết kế mô hình thực thể mối quan hệ và đặc tả chi tiết 7 bộ sưu tập cơ sở dữ liệu trong MongoDB (Base, User, Tours, Payments, Bookings, Transport, Hotel).
  • Thiết kế hệ thống bố cục giao diện (Wireframe/Layout Design) cho toàn bộ các màn hình ứng dụng:
    • 13 bố cục giao diện người dùng (Client layout): Trang chủ, danh sách tour, chi tiết tour, đăng nhập, quên mật khẩu, đăng ký, điền thông tin đặt chỗ, trang thanh toán, điều hướng tài khoản, trang hồ sơ cá nhân, popup đặt lại mật khẩu, trang quản lý đặt chỗ và chi tiết đơn đặt vé.
    • 11 bố cục giao diện quản trị (Admin layout): Màn hình đăng nhập quản trị, bố cục chung (General layout), danh sách tour, biểu mẫu tạo mới/cập nhật tour, danh sách và biểu mẫu phương tiện, danh sách và biểu mẫu khách sạn, danh sách tour sắp diễn ra, danh sách đơn hàng và danh sách hoàn tiền.

Chương 5: Hiện thực hóa và kiểm thử hệ thống (Implementation and Testing)

Chương cuối cùng ghi nhận kết quả chuyển giao từ bản thiết kế sang hệ thống phần mềm hoàn chỉnh:

  • Trình bày kết quả lập trình giao diện thực tế và tích hợp chức năng: màn hình danh sách và nhập liệu khách sạn, màn hình quản lý xe, giao diện tạo lập tour mới, hiển thị tour hot và tour mới nhất trên trang chủ, quy trình điền form thông tin đặt tour, giao diện cổng thanh toán trực tuyến PayPal và giao diện lịch sử đặt tour.
  • Đánh giá toàn diện các điểm mạnh đã đạt được và những hạn chế kỹ thuật còn tồn tại trong quá trình thực thi hệ thống (Strengths and Drawbacks).

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

Đồ án đã hoàn thành các mục tiêu nghiên cứu và kỹ thuật đề ra trong đề cương khóa luận:

  • Kết quả triển khai phần mềm: Xây dựng thành công hệ sinh thái web phục vụ đặt và quản trị tour du lịch trực tuyến. Hệ thống vận hành đầy đủ 6 chức năng xác thực người dùng cơ bản và 20 chức năng nghiệp vụ quản lý, tích hợp thành công phương thức thanh toán an toàn thông qua cổng PayPal.
  • Quy trình nghiệp vụ cụ thể: Thiết lập được quy trình kiểm soát tour chặt chẽ: quản trị viên có cơ chế duyệt các tour sắp diễn ra trong khung thời gian 7 ngày trước ngày khởi hành dựa trên tiêu chí đủ số lượng người đăng ký tối thiểu, hoặc hủy tour và tự động chuyển dữ liệu sang danh sách hoàn tiền nếu không đáp ứng đủ số lượng khách.
  • Đóng góp về mặt giải pháp:
    • Khắc phục các nhược điểm của quy trình đặt vé thủ công truyền thống, giảm thiểu sai sót dữ liệu và thời gian giao dịch của người dùng.
    • Cung cấp một giải pháp phần mềm quản trị tập trung, tinh gọn cho các doanh nghiệp du lịch quy mô nhỏ, tích hợp đồng bộ công tác quản lý lịch trình, khách sạn, phương tiện vận tải và kiểm soát tài chính hoàn tiền trên cùng một nền tảng.
    • Tài liệu hóa toàn diện hệ thống từ khâu khảo sát thực tế, phân tích Use Case, đặc tả bộ sưu tập NoSQL đến thiết kế bố cục giao diện người dùng.

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

Dựa trên nội dung đánh giá và phạm vi nghiên cứu được nhóm tác giả ghi nhận trong văn bản:

  • Hạn chế:
    • Phạm vi ứng dụng của hệ thống mới tập trung phục vụ các chủ doanh nghiệp du lịch quy mô nhỏ (small company owners), chưa được kiểm thử trong môi trường doanh nghiệp quy mô lớn với lượng truy cập đồng thời đột biến.
    • Thời gian thực hiện dự án có giới hạn (15 tuần), kiến thức chuyên môn và kinh nghiệm quản lý hệ thống của nhóm sinh viên còn ở mức độ bước đầu nên một số khâu kỹ thuật chưa tránh khỏi thiếu sót.
    • Kiến trúc NoSQL với MongoDB có hạn chế cố hữu về việc thiếu hỗ trợ các phép kết nối bảng (JOIN) ở mức cơ sở dữ liệu, việc xử lý quan hệ phức tạp giữa tour, khách sạn và phương tiện phải phụ thuộc vào mã nguồn ứng dụng; tài liệu đơn lẻ bị giới hạn trần dung lượng 16MB.
  • Hướng nghiên cứu tiếp:
    • Tiếp tục hoàn thiện và khắc phục các điểm hạn chế đã được ghi nhận trong phần đánh giá của đồ án.
    • Tối ưu hóa cấu trúc đường dẫn URL thân thiện cho công cụ tìm kiếm (SEO) và tối ưu hóa thời gian tải trang khi số lượng hình ảnh tour tăng cao, khắc phục nhược điểm đã được nhóm chỉ ra từ khảo sát các hệ thống Booking.com và Agoda.
    • Nâng cấp và mở rộng khả năng tái sử dụng của các module mã nguồn để có thể triển khai đóng gói thành các giải pháp thương mại điện tử độc lập.

Giá trị tham khảo

Báo cáo khóa luận là tài liệu tham khảo hữu ích cho các nhóm đối tượng sau:

  • Sinh viên ngành Công nghệ Thông tin và Kỹ thuật Phần mềm: Tài liệu cung cấp quy trình bài bản từ khâu khảo sát, phân tích yêu cầu, mô hình hóa Use Case, thiết kế cơ sở dữ liệu NoSQL (MongoDB) đến việc xây dựng giao diện người dùng và bảng điều khiển quản trị bằng MERN stack kết hợp TypeScript.
  • Người làm đề tài về thương mại điện tử và du lịch lữ hành: Cung cấp mẫu phân tích nghiệp vụ thực tế về quy trình đặt tour, kiểm tra điều kiện khởi hành tour trong 7 ngày, quy trình hủy và xử lý danh sách hoàn tiền, cùng phương pháp tích hợp cổng thanh toán quốc tế PayPal.
  • Các phần đáng tham khảo nhất trong báo cáo: Bảng đặc tả Use Case chi tiết (Chương 3), bảng thiết kế 7 bộ sưu tập cơ sở dữ liệu MongoDB (Chương 4) và hệ thống khung giao diện người dùng kết hợp bảng quản trị hoàn tiền (Chương 4 và 5).

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

1. Hệ thống xử lý các tour du lịch sắp đến ngày khởi hành (Incoming tours) theo quy tắc nghiệp vụ nào?
Theo quy định nghiệp vụ tại Bảng 3-7 và Bảng 3-2 của đồ án, quản trị viên (Admin) sẽ tiến hành kiểm tra và phê duyệt các tour sắp diễn ra trong khung thời gian 7 ngày trước ngày khởi hành nếu tour đó đạt đủ số lượng khách đăng ký tối thiểu quy định. Trong trường hợp không đủ số lượng du khách tham gia, quản trị viên có quyền hủy tour và đưa đơn hàng vào danh sách hoàn tiền cho khách hàng.

2. Khách hàng sử dụng hình thức thanh toán nào trên website và có được đặt cọc trước hay không?
Website hỗ trợ thanh toán trực tuyến thông qua cổng thanh toán bảo mật PayPal. Hệ thống cho phép người dùng đặt cọc trước cho chuyến đi; trong trường hợp này, người dùng có chức năng thanh toán phần phí còn lại (Pay remaining fee - mã Use Case UC1-13) trước khi tour chính thức khởi hành.

3. Cơ sở dữ liệu MongoDB của hệ thống quản lý dữ liệu qua những bộ sưu tập (Collections) nào?
Theo phân tích thiết kế ở Chương 4, hệ thống cơ sở dữ liệu bao gồm 7 bộ sưu tập chính: Collection base (cấu hình nền tảng), Collection User (tài khoản người dùng), Collection Tours (thông tin tour và lịch trình), Collection Payments (dữ liệu giao dịch thanh toán), Collections Bookings (dữ liệu đơn đặt chỗ), Collection Transport (danh mục phương tiện di chuyển) và Collection Hotel (danh mục khách sạn lưu trú).

4. Khách vãng lai (Guest) chưa đăng nhập có thể thực hiện những thao tác nào trên hệ thống?
Khách vãng lai được phân quyền thực hiện 8 chức năng: xem danh sách tour hot trong tháng, xem tất cả tour hiện có, xem chi tiết tour, tìm kiếm tour theo tiêu chí, đăng ký tài khoản mới, xem trang điều khoản sử dụng (Terms of use), xem chính sách bảo mật (Privacy policy) và xem chính sách hủy tour của công ty (Tour cancellation policy). Khách vãng lai không thể thực hiện đặt tour nếu chưa đăng ký/đăng nhập.


Kết luận

Khóa luận "Xây dựng website đặt tour du lịch trực tuyến" của sinh viên Nguyễn Văn Hớn và Vũ Hoàng Trúc Vy đã giải quyết trọn vẹn bài toán số hóa quy trình quản lý và đặt vé du lịch cho các đơn vị kinh doanh lữ hành quy mô nhỏ. Đồ án áp dụng thành công hệ công nghệ MERN stack kết hợp ngôn ngữ TypeScript và cổng thanh toán PayPal, xây dựng được hệ thống phân quyền 3 tác nhân với đầy đủ quy trình từ tra cứu, đặt chỗ, thanh toán đến xử lý hủy và hoàn tiền. Báo cáo cung cấp tư liệu tham khảo thực tế về phương pháp phân tích yêu cầu, thiết kế cơ sở dữ liệu NoSQL hướng tài liệu và xây dựng ứng dụng web thương mại điện tử chuyên ngành.