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

Trong bối cảnh ngành du lịch ngày càng phát triển, nhu cầu tìm kiếm thông tin, tham khảo lịch trình và đặt dịch vụ trực tuyến của khách hàng tăng trưởng nhanh chóng. Qua khảo sát thực tế tại thời điểm thực hiện đề tài (năm 2019), tác giả Vũ Thị Phương chỉ ra rằng phần lớn các website du lịch trong nước như dulichviet.vn, newstartour.com, dulichhanoi.vn chủ yếu có cấu trúc và tổ chức thông tin mang tính chất cố định, ít có sự cập nhật linh hoạt, chức năng chủ yếu dừng lại ở mức giới thiệu công ty và dịch vụ. Nhiều hệ thống đương thời được xây dựng trên nền tảng ASP.NET của Microsoft, tồn tại một số rào cản nhất định về môi trường triển khai trên hệ điều hành Linux và sự phụ thuộc vào Visual Studio trong quá trình phát triển mã nguồn.

Nhằm giải quyết các hạn chế về tính linh hoạt trong cập nhật dữ liệu và tối ưu hóa quy trình nghiệp vụ đặt tour, đồ án tốt nghiệp ngành Công nghệ Thông tin tại Trường Đại học Bách Khoa Hà Nội đã lựa chọn đề tài "Xây dựng website đặt tour du lịch trực tuyến" dưới sự hướng dẫn của TS. Nguyễn Tuấn Dũng.

Mục tiêu nghiên cứu và nhiệm vụ đề tài

Đề tài xác định các mục tiêu và nhiệm vụ cụ thể được phân định rõ ràng giữa hai phía người dùng và quản trị viên:

  1. Phía người dùng (Client):

    • Cho phép khách hàng tìm kiếm các tour du lịch theo nhiều tiêu chí (tên, giá cả, địa điểm đến, nơi khởi hành).
    • Cung cấp tính năng xem chi tiết thông tin tour, lịch trình, hình ảnh và tiến hành đặt tour trực tuyến.
    • Hỗ trợ mở rộng dịch vụ đặt phòng khách sạn (Hotel) và đặt phương tiện di chuyển (Car).
    • Thực hiện thanh toán cho các dịch vụ đã đặt.
    • Đăng ký tài khoản thành viên, quản lý thông tin cá nhân và gửi phản hồi, liên hệ về công ty.
  2. Phía quản trị (Provider/Admin):

    • Phân quyền quản lý chặt chẽ theo các vai trò: Quản lý chung, Nhân viên, Kế toán.
    • Tìm kiếm, kiểm tra và xác nhận các đơn đặt chỗ hợp lệ hoặc chưa xác nhận; chỉnh sửa thông tin khách hàng và chi tiết đơn đặt.
    • Thống kê tình hình đặt chỗ theo từng tour và theo dõi danh sách khách hàng tham gia.
    • Thêm mới, chỉnh sửa, cập nhật hoặc xóa bỏ thông tin, hình ảnh về các tour du lịch và các điểm đến tại từng địa phương.
    • Theo dõi, tiếp nhận thông tin phản hồi và yêu cầu liên hệ từ khách hàng qua hệ thống web.

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

  • Đối tượng nghiên cứu: Quy trình nghiệp vụ quản trị và phân phối dịch vụ du lịch trực tuyến; mô hình kiến trúc MVC; các công nghệ phát triển web hướng đối tượng bằng ngôn ngữ PHP, hệ quản trị cơ sở dữ liệu quan hệ MySQL và thư viện giao diện front-end.
  • Phạm vi không gian và thời gian: Đồ án được thực hiện tại Bộ môn Khoa học Máy tính, Viện Công nghệ Thông tin và Truyền thông, Trường Đại học Bách Khoa Hà Nội; hoàn thành nghiệm thu vào tháng 6 năm 2019.

Cơ sở lý thuyết và công nghệ áp dụng

Đồ án xây dựng trên nền tảng kiến trúc phần mềm hướng dịch vụ web hiện đại, kết hợp chặt chẽ giữa mô hình MVC chuẩn và hệ sinh thái mã nguồn mở PHP.

1. Kiến trúc Model - View - Controller (MVC)

Hệ thống phân tách logic ứng dụng thành ba thành phần độc lập:

  • Model: Đảm nhiệm việc tương tác trực tiếp với cơ sở dữ liệu quan hệ, thực hiện các phương thức truy vấn, xử lý và đóng gói dữ liệu để Controller sử dụng.
  • View: Tiếp nhận dữ liệu từ Controller và chuyển đổi thành giao diện hiển thị cho người dùng thông qua mã HTML/CSS/JavaScript.
  • Controller: Đóng vai trò trung gian điều phối, tiếp nhận HTTP Request từ trình duyệt, gọi các Model tương ứng để xử lý nghiệp vụ, sau đó kết xuất dữ liệu sang View hoặc định dạng JSON trả về cho client.

2. Laravel Framework (Phiên bản 5.7)

Laravel là PHP framework mã nguồn mở được phát triển bởi Taylor Otwell. Đồ án lựa chọn Laravel 5.7 nhờ cấu trúc mã nguồn khoa học và các tính năng hỗ trợ toàn diện:

  • Cấu trúc thư mục chuẩn:
    • app/: Chứa mã nguồn cốt lõi gồm Controllers, Middleware, Models, Providers và Console commands.
    • database/: Chứa các tệp migrations (khởi tạo và sửa đổi cấu trúc bảng), seeds (chèn dữ liệu mẫu) và factories (tạo dữ liệu giả phục vụ kiểm thử).
    • resources/: Chứa các tệp giao diện (Blade templates), CSS, JS và ngôn ngữ.
    • routes/: Định nghĩa các tuyến đường xử lý gồm web.php, api.php, console.php.
  • Artisan CLI: Công cụ dòng lệnh hỗ trợ tự động hóa việc tạo controller, model, migration và chạy máy chủ thử nghiệm cục bộ.
  • Blade Template Engine: Phân tách rõ ràng giữa logic hiển thị và mã PHP, cú pháp ngắn gọn, hỗ trợ kế thừa layout.
  • Cơ chế bảo mật tích hợp: Hỗ trợ xác thực dữ liệu đầu vào (Form Validation), chống tấn công SQL Injection thông qua PDO Parameter Binding, bảo vệ phiên làm việc (Session, Cookie) và kiểm soát lỗi qua Middleware.

3. Công nghệ Front-end và Cơ sở dữ liệu

  • Bootstrap Framework: Framework HTML, CSS và JavaScript cung cấp hệ thống lưới (grid system) linh hoạt, hỗ trợ thiết kế giao diện thích ứng (Responsive Design) tương thích trên nhiều thiết bị (Desktop, Tablet, Mobile) và các trình duyệt phổ biến (Chrome, Firefox, Safari, Opera, IE từ phiên bản 9 trở lên).
  • Thư viện jQuery: Hỗ trợ thao tác trên cây DOM (Document Object Model), xử lý sự kiện giao diện, hiệu ứng chuyển động và gọi bất đồng bộ AJAX (Asynchronous JavaScript and XML) giúp truyền nhận dữ liệu nền mà không cần tải lại toàn bộ trang web.
  • Hệ quản trị cơ sở dữ liệu MySQL: Hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở tốc độ cao, hỗ trợ phân quyền truy cập người dùng theo tài khoản, tích hợp tốt với môi trường máy chủ Apache và PHP.

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

Phân tích kiến trúc người dùng và phân quyền

Hệ thống được thiết kế phân định rõ ràng giữa hai không gian làm việc chính: Phân hệ người dùng công cộng (Client) và Phân hệ quản trị nội bộ (Provider).

Phân hệ Nhóm tác nhân (Actor) Quyền hạn và Chức năng chính
Phía Client Khách vãng lai (Guest) Tìm kiếm tour, tìm khách sạn, tìm xe; xem chi tiết thông tin dịch vụ; tạo đơn đặt chỗ; gửi biểu mẫu liên hệ; đăng ký tài khoản.
Thành viên (Member) Sở hữu toàn bộ chức năng của khách vãng lai; có thêm quyền đăng nhập hệ thống (bằng tài khoản hoặc liên kết Google/Facebook), bình luận, quản lý và chỉnh sửa thông tin cá nhân.
Phía Provider Quản lý chung (Admin) Quyền hạn tối cao trong hệ thống: quản lý danh sách nhân viên, phân quyền chức vụ, giám sát toàn bộ hoạt động của doanh nghiệp.
Nhân viên (Staff) Tiếp nhận và xử lý đơn đặt của khách hàng; quản lý danh mục tour du lịch, phòng khách sạn, phương tiện xe (thêm, sửa, xóa, duyệt).
Kế toán (Accountant) Quản lý ngân sách, thu - chi; theo dõi các tài khoản thanh toán (tiền mặt, ngân hàng); xử lý hóa đơn, đối soát công nợ và số tiền thanh toán của khách.

Đặc tả ca sử dụng (Use Case) tiêu biểu

Quá trình phân tích hệ thống được chi tiết hóa thông qua các biểu đồ Use Case, biểu đồ hoạt động (Activity Diagram), biểu đồ trình tự (Sequence Diagram) và biểu đồ lớp (Class Diagram) cho từng dịch vụ cốt lõi:

  1. Nghiệp vụ Đặt tour (Tour Booking):

    • Điều kiện tiên quyết: Khách hàng đã chọn một tour cụ thể trên giao diện.
    • Luồng sự kiện chính: Khách hàng nhấn nút đặt tour/thanh toán -> Giao diện hiển thị biểu mẫu thanh toán kèm thông tin mặc định của tour -> Khách hàng nhập thông tin cá nhân, số lượng người, ngày khởi hành -> Xác nhận đặt chỗ -> Hệ thống kiểm tra dữ liệu, lưu đơn đặt vào cơ sở dữ liệu và phản hồi thông báo thành công.
  2. Nghiệp vụ Quản lý nhân viên (Dành cho Quản lý chung):

    • Thêm nhân viên: Quản lý nhập thông tin tài khoản, mật khẩu, chức vụ -> Hệ thống kiểm tra tính hợp lệ và ghi dữ liệu mới.
    • Cập nhật / Xóa nhân viên: Quản lý truy xuất danh sách -> Chọn đối tượng nhân viên -> Thực hiện chỉnh sửa hoặc xác nhận xóa -> Hệ thống cập nhật trạng thái trong cơ sở dữ liệu.
  3. Nghiệp vụ Quản lý thanh toán (Dành cho Kế toán):

    • Kế toán truy cập danh sách đơn đặt -> Mở giao diện thanh toán tương ứng -> Nhập số tiền thanh toán thực tế và hình thức thu nợ -> Hệ thống kiểm tra, cập nhật trạng thái hóa đơn và gửi phản hồi trạng thái hoàn tất.

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

Chương I: Đặt vấn đề và định hướng giải pháp

Chương mở đầu trình bày tính cấp thiết của việc ứng dụng công nghệ thông tin vào thương mại điện tử ngành du lịch. Tác giả phân tích hiện trạng các trang web du lịch tại Việt Nam, chỉ ra điểm hạn chế của các giải pháp tĩnh nền tảng ASP.NET cũ về khả năng tương thích môi trường và tính đóng kín của mã nguồn. Từ đó, tác giả xác định mục tiêu xây dựng một ứng dụng web hướng dịch vụ hoàn chỉnh bằng Laravel framework, liệt kê toàn bộ yêu cầu chức năng cho cả hai phân hệ Client và Quản trị viên.

Chương II: Cơ sở công nghệ áp dụng

Tập trung làm rõ nền tảng lý thuyết và công nghệ được triển khai trong đồ án:

  • Phân tích chi tiết khái niệm, nguồn gốc và các thành phần cốt lõi của Laravel 5.7, bao gồm cấu trúc các thư mục chức năng, vai trò của Artisan, Service Providers, Middleware và cơ chế Routing.
  • Trình bày nguyên lý hoạt động của mô hình MVC trong Laravel, phân tích ưu điểm (dễ bảo trì, dễ phân chia mô-đun làm việc nhóm) và nhược điểm (độ trễ so với PHP thuần nhưng không đáng kể).
  • Giới thiệu công nghệ giao diện jQuery và Bootstrap, nhấn mạnh khả năng tối ưu hóa DOM, cơ chế xử lý AJAX không tải lại trang và tính năng Responsive trên đa dạng kích thước màn hình.
  • Phân tích hệ quản trị cơ sở dữ liệu MySQL về cơ chế phân quyền, khả năng mở rộng và tốc độ xử lý dữ liệu quan hệ.

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

Đây là chương nội dung trọng tâm của đồ án, chiếm dung lượng lớn nhất với quy trình thiết kế công phu:

  • Xác định yêu cầu hệ thống: Đặc tả chi tiết các yêu cầu quản lý thông tin tour, địa điểm du lịch, quy trình đặt chỗ và theo dõi liên hệ khách hàng.
  • Thiết kế ứng dụng web phía Client: Xây dựng biểu đồ Use Case tổng quát; phân rã Use Case cho các chức năng Đăng nhập, Tìm kiếm tour/hotel/car, Quản lý thông tin cá nhân; lập bảng đặc tả ca sử dụng; mô hình hóa quy trình bằng biểu đồ hoạt động, biểu đồ trình tự và biểu đồ lớp đối tượng cho từng phân hệ con.
  • Thiết kế ứng dụng web Provider: Xây dựng biểu đồ Use Case cho người quản trị; định nghĩa 3 nhóm vai trò (Quản lý chung, Nhân viên, Kế toán); phân rã ca sử dụng Quản lý nhân viên, Quản lý tour, Quản lý đơn đặt, Quản lý thanh toán; vẽ biểu đồ hoạt động và biểu đồ trình tự tương ứng.
  • Thiết kế và đặc tả cơ sở dữ liệu: Xây dựng cấu trúc các bảng dữ liệu, khóa chính, khóa ngoại phục vụ lưu trữ thông tin tour, khách hàng, đơn đặt, khách sạn, phương tiện và tài khoản quản trị.

Chương IV: Kết luận và hướng phát triển

Chương cuối tổng kết lại toàn bộ khối lượng công việc đã hoàn thành, đối chiếu với các mục tiêu ban đầu và đề xuất các định hướng nâng cấp, mở rộng hệ thống trong tương lai.


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

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

Đồ án đã thiết kế và xây dựng thành công một hệ thống website đặt tour du lịch trực tuyến hoàn chỉnh với các kết quả cụ thể:

  1. Về mặt kiến trúc và phân tích nghiệp vụ:

    • Xây dựng đầy đủ bộ tài liệu thiết kế hệ thống theo chuẩn UML, bao gồm hệ thống biểu đồ Use Case phân rã, biểu đồ hoạt động (Activity Diagram), biểu đồ trình tự (Sequence Diagram) và biểu đồ lớp (Class Diagram) cho cả dịch vụ tour, khách sạn và phương tiện.
    • Thiết kế mô hình cơ sở dữ liệu quan hệ chặt chẽ trên MySQL, đáp ứng toàn diện các mối quan hệ giữa danh mục dịch vụ, khách hàng, đơn đặt và phân quyền nhân sự.
  2. Về mặt chức năng phần mềm:

    • Phân hệ Client: Cung cấp giao diện trực quan, cho phép người dùng lọc và tìm kiếm linh hoạt theo nhiều trường dữ liệu; hỗ trợ quy trình đặt tour, đặt phòng khách sạn và thuê xe trực tuyến; tích hợp chức năng đăng ký, đăng nhập tài khoản trực tiếp hoặc thông qua mạng xã hội (Facebook, Google); hỗ trợ quản lý hồ sơ cá nhân và gửi phản hồi tương tác.
    • Phân hệ Quản trị (Provider): Hiện thực hóa cơ chế phân quyền 3 cấp độc lập (Quản lý chung, Nhân viên, Kế toán), cho phép quản lý vòng đời dữ liệu tour/dịch vụ (thêm, sửa, xóa, duyệt), xử lý trạng thái đơn đặt chỗ và thực hiện nghiệp vụ thanh toán, kiểm soát công nợ.

Đóng góp thực tiễn của đề tài

  • Cung cấp một giải pháp thay thế hiệu quả cho các website du lịch dạng tĩnh truyền thống, cho phép doanh nghiệp du lịch dễ dàng cập nhật thông tin tour tuyến, giá cả và hình ảnh liên tục theo thời gian thực.
  • Chứng minh tính khả thi, hiệu quả và tính linh hoạt của việc áp dụng framework mã nguồn mở Laravel 5.7 trong việc phát triển các ứng dụng thương mại điện tử phức tạp, hỗ trợ cấu trúc mã nguồn sáng sủa và dễ bảo trì.

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

Hạn chế của hệ thống

Căn cứ trên phạm vi nghiên cứu và nội dung văn bản:

  • Hệ thống xây dựng trên nền tảng Laravel yêu cầu máy chủ hỗ trợ phiên bản PHP hiện đại, chưa tương thích ngược với các máy chủ sử dụng phiên bản PHP cũ.
  • Thư viện jQuery sử dụng trong hệ thống nếu bị lạm dụng xử lý quá nhiều logic phía client có thể gây ảnh hưởng đến hiệu năng tải trang trên các thiết bị cấu hình yếu.
  • Phạm vi tích hợp cổng thanh toán trực tuyến tự động và cơ chế bảo mật cấp cao cho các giao dịch ngân hàng thời gian thực vẫn cần hoàn thiện thêm ở mức chuyên sâu.

Hướng phát triển trong tương lai

Đề tài vạch ra các hướng hoàn thiện và mở rộng hệ thống trong tương lai:

  • Tích hợp thêm các cổng thanh toán điện tử trực tuyến phổ biến (VNPay, Momo, thẻ quốc tế Visa/Mastercard) để tự động hóa hoàn toàn quy trình thu tiền.
  • Xây dựng hệ thống gợi ý tour thông minh dựa trên lịch sử tìm kiếm và sở thích của người dùng.
  • Tối ưu hóa hiệu năng phía client, áp dụng các kỹ thuật lưu bộ nhớ đệm (Caching) nâng cao.
  • Phát triển thêm ứng dụng di động (Mobile App) đồng bộ dữ liệu qua RESTful API để tăng tính tiện dụng cho khách hàng.

Giá trị tham khảo

Đồ án là tài liệu chuyên khảo có giá trị học thuật và ứng dụng thực tiễn cao, đặc biệt hữu ích cho:

  • Sinh viên ngành Công nghệ Thông tin, Kỹ thuật Phần mềm và Hệ thống Thông tin: Tham khảo phương pháp phân tích thiết kế hệ thống thông tin theo hướng đối tượng; cách vẽ và đặc tả các biểu đồ UML chuẩn mực (Use Case, Activity, Sequence, Class Diagrams).
  • Lập trình viên web PHP/Laravel: Cung cấp tài liệu mẫu về việc tổ chức cấu trúc dự án Laravel theo chuẩn MVC, phân quyền người dùng đa cấp (Multi-auth / Role-based Access Control), và quy trình thiết kế cơ sở dữ liệu quan hệ cho các bài toán thương mại dịch vụ (Tour, Khách sạn, Xe).

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

1. Đồ án giải quyết bài toán nghiệp vụ gì và tại sao lại chọn Laravel framework?
Đồ án giải quyết bài toán xây dựng website đặt tour du lịch trực tuyến, khắc phục nhược điểm của các website du lịch tĩnh thời điểm đó. Tác giả chọn Laravel framework vì đây là PHP framework mã nguồn mở phổ biến, có cấu trúc thư mục rõ ràng, hệ thống thư viện phong phú, tích hợp sẵn công cụ dòng lệnh Artisan, công cụ template Blade, khả năng xác thực biểu mẫu tốt, hỗ trợ bảo mật cao (chống SQL Injection, CSRF, quản lý Session/Cookie) và áp dụng mô hình MVC dễ bảo trì.

2. Phân hệ quản trị (Provider) trong đồ án được phân chia thành những vai trò nào?
Phân hệ quản trị được phân quyền thành 3 tác nhân chính:

  • Người quản lý chung: Có quyền hạn cao nhất, quản lý tài khoản và phân quyền cho nhân viên, giám sát toàn hệ thống.
  • Nhân viên: Quản lý danh mục tour, phòng khách sạn, xe và xử lý thông tin các đơn đặt chỗ của khách hàng.
  • Kế toán: Quản lý ngân sách thu - chi, theo dõi các tài khoản thanh toán và xử lý hóa đơn, thanh toán đơn hàng.

3. Phân hệ người dùng (Client) hỗ trợ những loại hình dịch vụ nào ngoài tour du lịch?
Ngoài chức năng tìm kiếm, xem chi tiết và đặt các tour du lịch, hệ thống phía client còn mở rộng hỗ trợ khách hàng tìm kiếm, xem chi tiết và đặt phòng khách sạn (Hotel) cùng với tìm kiếm và thuê xe phương tiện di chuyển (Car).

4. Khách hàng có thể đăng nhập vào hệ thống bằng những phương thức nào?
Hệ thống cho phép khách hàng đăng nhập thông qua hai phương thức: sử dụng tài khoản/mật khẩu truyền thống đã đăng ký trên hệ thống, hoặc sử dụng phương thức đăng nhập liên kết mạng xã hội (OAuth) thông qua tài khoản Facebook hoặc Google.

5. Cơ sở dữ liệu của hệ thống được quản trị bằng công nghệ gì và ưu điểm của nó là gì?
Hệ thống sử dụng hệ quản trị cơ sở dữ liệu quan hệ MySQL. Ưu điểm của MySQL được tác giả nêu rõ bao gồm: dễ dàng cài đặt và sử dụng, giàu tính năng SQL, hỗ trợ bảo mật cấp cao, tốc độ thực thi truy vấn nhanh và khả năng mở rộng linh hoạt khi dữ liệu tăng trưởng.


Kết luận

Đồ án tốt nghiệp "Xây dựng website đặt tour du lịch trực tuyến" của sinh viên Vũ Thị Phương đã hoàn thành đầy đủ các mục tiêu đề ra, bao quát từ khâu khảo sát thực trạng, nghiên cứu cơ sở lý thuyết đến phân tích thiết kế hệ thống theo mô hình hướng đối tượng. Việc ứng dụng framework Laravel 5.7 kết hợp với Bootstrap, jQuery và MySQL đã tạo nên một giải pháp phần mềm hoàn chỉnh, đáp ứng tốt nghiệp vụ đặt dịch vụ đa dạng cho khách hàng và phân quyền quản trị chặt chẽ cho doanh nghiệp du lịch. Công trình là tài liệu tham khảo có giá trị cao về mặt phân tích thiết kế hệ thống và phát triển ứng dụng web thương mại điện tử.