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

Trong bối cảnh phát triển của khoa học, kỹ thuật và công nghệ thông tin ở thế kỷ XXI, các doanh nghiệp dịch vụ và du lịch đối mặt với yêu cầu chuyển đổi số nhằm tối ưu hóa hoạt động tiếp cận khách hàng. Việc ứng dụng mạng Internet cho phép các đơn vị lữ hành quảng bá sản phẩm, tiếp cận thị trường rộng lớn với chi phí thấp hơn so với phương thức truyền thống, đồng thời giúp khách hàng tra cứu thông tin tour, nhận báo giá và đăng ký dịch vụ trực tuyến nhanh chóng. Sau đại dịch COVID-19, nhu cầu du lịch gia tăng trở lại nhưng quỹ thời gian của khách hàng thường eo hẹp, dẫn đến nhu cầu đặt trước các tour trọn gói trên môi trường số nhằm hạn chế các bất tiện trong khâu tổ chức chuyến đi.

Xuất phát từ thực tiễn trên, đề tài "Xây dựng website đặt tour du lịch" được thực hiện bởi sinh viên Vũ Trung Đức (nghành Ứng dụng phần mềm, Khoa Công nghệ thông tin, Trường Cao đẳng nghề Bách khoa Hà Nội) dưới sự hướng dẫn của ThS. Bùi Thị Hoà, hoàn thành vào tháng 7 năm 2023.

Nhiệm vụ và mục tiêu của đề tài được xác định cụ thể theo các nội dung sau:

  1. Tìm hiểu đề tài, lập kế hoạch phân tích và xây dựng đồ án; tìm hiểu cơ sở lý thuyết và tổng quan bài toán triển khai website thương mại dịch vụ du lịch.
  2. Phân tích và thiết kế hệ thống bài toán, xây dựng các biểu đồ phân rã chức năng (BFD), biểu đồ luồng dữ liệu (DFD), biểu đồ Use Case và mô hình thực thể liên kết (ERD).
  3. Xây dựng website hoàn chỉnh gồm giao diện người dùng (Frontend) và xử lý máy chủ (Backend), cơ sở dữ liệu quan hệ, thực hiện vận hành, cài đặt và kiểm thử chức năng.
  4. Ứng dụng các kiến thức chuyên ngành về thiết kế giao diện/trải nghiệm người dùng (UX/UI), cơ sở dữ liệu MySQL, các ngôn ngữ HTML, CSS, SCSS, JavaScript và PHP để tạo ra hệ thống quản lý bán tour hiệu quả.
  5. Đảm bảo khả năng triển khai thực tế và định hướng mở rộng thêm các tính năng nâng cao trong tương lai.

Đối tượng và phạm vi nghiên cứu của đồ án bao gồm:

  • Đối tượng sử dụng: Được phân định thành hai phía:
    • Phía máy khách (Client): Khách vãng lai và khách hàng đã đăng ký tài khoản có nhu cầu tra cứu thông tin tour, đặt tour và theo dõi đơn hàng.
    • Phía máy chủ (Server): Ban quản trị (Admin) có quyền hạn cao nhất trong việc cấu hình, thống kê, kiểm soát dữ liệu và bộ phận nhân viên phụ trách duyệt đơn, cập nhật trạng thái tour và quản lý khách hàng.
  • Phạm vi môi trường hoạt động: Hệ thống web hoạt động đa nền tảng trên các hệ điều hành máy tính và thiết bị di động có cài đặt trình duyệt web (Windows, macOS, Android, iOS).
  • Phạm vi kỹ thuật: Xây dựng ứng dụng web theo mô hình Client - Server với các thao tác dữ liệu cơ bản (CRUD), quản lý danh mục tour, quản lý đơn đặt tour, hợp đồng và người dùng.

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

Đồ án vận dụng các cơ sở lý thuyết chuẩn mực trong công nghệ phần mềm và hệ thống thông tin:

  • Ngôn ngữ mô hình hóa thống nhất (UML): Sử dụng các dạng biểu đồ Use Case (tổng quan, phân quyền Admin, Nhân viên, Khách hàng) để đặc tả yêu cầu chức năng; kết hợp lý thuyết biểu đồ lớp (Class Diagram), biểu đồ tương tác (Sequence/Collaboration Diagram), biểu đồ hoạt động (Activity Diagram) và biểu đồ trạng thái (State Diagram) trong quy trình phân tích hướng đối tượng.
  • Mô hình hóa dòng dữ liệu và chức năng: Ứng dụng Biểu đồ phân rã chức năng (BFD), Biểu đồ dòng dữ liệu mức ngữ cảnh (DFD Context) và Biểu đồ dòng dữ liệu mức đỉnh (DFD Mức 0) để biểu diễn luồng dữ liệu giữa các tiến trình và kho dữ liệu.
  • Mô hình dữ liệu quan hệ (Relational Model): Thiết kế thực thể liên kết (ERD) và chuẩn hóa thành các bảng quan hệ cơ sở dữ liệu.
  • Mẫu kiến trúc phần mềm: Đề cập kiến trúc MVC (Model - View - Controller) nhằm phân tách giữa giao diện hiển thị, tầng xử lý logic và tầng dữ liệu.

Phương pháp nghiên cứu thực tế được triển khai qua các bước:

  1. Khảo sát thực tế nền tảng tương tự: Khảo sát mô hình hoạt động của nền tảng du lịch trực tuyến Traveloka (thành lập năm 2012 tại Jakarta, Indonesia) để tìm hiểu cách thức tổ chức dịch vụ đặt phòng, đặt vé và tour tham quan trực tuyến.
  2. Phân tích nghiệp vụ thực tế: Khảo sát quy trình đặt tour hai chiều giữa khách hàng (yêu cầu số lượng người, ngày đi, ngày về) và quản trị viên (kiểm tra tính hợp lệ, xác nhận đơn và gửi thông báo xác nhận cọc).
  3. Thu thập và xử lý tài liệu: Nghiên cứu tài liệu kỹ thuật về các ngôn ngữ lập trình web và hệ quản trị cơ sở dữ liệu.
  4. Thiết kế và cài đặt hệ thống: Sử dụng công cụ thiết kế Figma để phác thảo biểu đồ và giao diện; sử dụng Visual Studio Code làm môi trường phát triển mã nguồn; sử dụng hệ quản trị MySQL để tạo lập và truy vấn dữ liệu.
  5. Kiểm thử và đánh giá: Chạy thử nghiệm hệ thống, kiểm tra tính đúng đắn của các luồng nghiệp vụ chính.

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

Hệ thống website được xây dựng dựa trên ngăn xếp công nghệ Client - Server với các tiêu chuẩn phần cứng và phần mềm cụ thể.

Thành phần Phân loại Công nghệ / Thư viện sử dụng
Client (Máy khách) Ngôn ngữ HTML, CSS, SCSS, JavaScript
Framework giao diện Bootstrap
Thư viện & Plugin jQuery, Font Awesome 5.4 (1.608 biểu tượng miễn phí), Slick Slider (2.js)
Server (Máy chủ) Ngôn ngữ PHP
Truy vấn dữ liệu SQL
Hệ quản trị CSDL MySQL DBMS
Công cụ phát triển Trình soạn thảo mã nguồn Visual Studio Code (Microsoft)
Thiết kế đồ họa & sơ đồ Figma

Yêu cầu cấu hình vận hành hệ thống được tác giả đề xuất:

  • Máy chủ (Server): Tối thiểu vi máy tính Raspberry Pi 4, bộ nhớ RAM lớn hơn 2.048 MB, cài đặt hệ quản trị cơ sở dữ liệu MySQL hoặc SQL Server.
  • Máy trạm (Client): Máy tính cá nhân, bộ nhớ RAM lớn hơn 1.024 MB, cài đặt các trình duyệt web hiện đại như Google Chrome, Microsoft Edge.

Cơ sở dữ liệu của hệ thống được tổ chức thành 8 bảng quan hệ:

Tên bảng Số lượng trường Khóa chính (PK) / Khóa ngoại (FK) Chức năng lưu trữ dữ liệu
User 9 PK: Uid Lưu thông tin định danh người dùng: họ tên, tên đăng nhập, mật khẩu, email, địa chỉ, số điện thoại, giới tính, vai trò (Role).
Contact 6 PK: ID_contact Lưu trữ thông tin liên hệ và phản hồi của người dùng: tên, email, số điện thoại, tiêu đề (Subject), nội dung (Message).
Orders 10 PK: ID_order
FK: ID_user, ID_product
Quản lý thông tin đơn đặt tour: mã khách hàng, mã tour, địa chỉ, họ tên, email, yêu cầu riêng (Request), giá bán, số lượng, trạng thái duyệt (Status).
Orders_product 4 PK: ID_order
FK: ID_user, ID_product
Quản lý chi tiết sản phẩm tour trong từng đơn hàng và giá tiền tương ứng.
Products 10 PK: ID_product Lưu trữ thông tin chi tiết của từng tour du lịch: hình ảnh, tên tour, số lượng khách (Guest), số phòng ngủ (Bed), số phòng tắm (Bathroom), giá cả, tiêu đề, mô tả ngắn và mô tả chi tiết.
Books 7 PK: ID_books Lưu trữ thông tin phiếu đặt tour: họ tên, email, địa điểm yêu cầu (Place_name), số người (Number of guest), ngày đi (Arrivals), ngày về (Leaving).
Gallery 4 PK: ID_gallery Quản lý thư viện hình ảnh quảng bá du lịch: hình ảnh, tên gallery, mô tả ngắn.
Places 7 PK: ID_places Lưu danh mục các địa điểm du lịch: thành phố/quốc gia (Country), tên địa điểm (Place), hình ảnh, mô tả, giá hiện tại và giá cũ (Old_price).

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

Chương 1: Tổng quan đề tài và khảo sát thực tế

Chương mở đầu phân tích bối cảnh phát triển của cuộc cách mạng công nghệ thông tin và vai trò của việc số hóa dịch vụ du lịch. Tác giả chỉ rõ thực trạng nhu cầu du lịch tăng cao nhưng việc tổ chức thủ công gây mất thời gian cho khách hàng và khó khăn trong quản lý doanh thu đối với doanh nghiệp lữ hành.

Chương này trình bày kết quả khảo sát thực tế nền tảng thương mại điện tử Traveloka (thông tin doanh nghiệp, địa chỉ Jakarta, Indonesia, hotline, website), từ đó mô hình hóa bài toán giao dịch hai chiều giữa khách hàng và bộ phận quản trị. Các mục tiêu, phạm vi đề tài, đối tượng người dùng (Admin, Nhân viên, Khách hàng) và các yêu cầu hệ thống được xác lập rõ ràng:

  • Yêu cầu chức năng: Phân quyền 3 nhóm người dùng; đăng ký, đăng nhập, đăng xuất; tìm kiếm, truy vấn tour; quản lý khách hàng, sản phẩm tour, đơn đặt tour, nhân viên; báo cáo thống kê.
  • Yêu cầu phi chức năng: Giao diện trực quan, tốc độ tải trang nhanh, khả năng bảo mật thông tin tài khoản và dễ bảo trì, mở rộng.

Chương 2: Cơ sở lý thuyết và công cụ sử dụng

Chương 2 hệ thống hóa nền tảng lý thuyết và công nghệ được sử dụng trong suốt quá trình thực hiện đồ án. Tác giả giới thiệu ngôn ngữ mô hình hóa UML, làm rõ vai trò của các loại biểu đồ trong 4 giai đoạn phát triển phần mềm: giai đoạn phân tích (Use Case, Class, State Diagram), giai đoạn thiết kế (Interaction, Activity Diagram), giai đoạn lập trình và giai đoạn thử nghiệm (Unit testing, Integration testing, System testing).

Chương này cũng giới thiệu chi tiết các công cụ và ngôn ngữ phát triển:

  • Công cụ: Visual Studio Code, hệ quản trị cơ sở dữ liệu MySQL, nền tảng thiết kế Figma.
  • Ngôn ngữ & Thư viện: Cú pháp và vai trò của HTML trong cấu trúc văn bản; CSS và SCSS tiền xử lý giao diện; ngôn ngữ kịch bản JavaScript; ngôn ngữ lập trình phía máy chủ PHP; ngôn ngữ truy vấn cơ sở dữ liệu SQL; framework Bootstrap hỗ trợ thiết kế giao diện tương thích đa màn hình (Responsive Web Design); thư viện jQuery; bộ biểu tượng Font Awesome phiên bản 5.4 và plugin tạo chuyển động Slick Slider (2.js).

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

Chương 3 là phần trọng tâm về kỹ thuật, cung cấp toàn bộ đặc tả phân tích và mô hình hóa dữ liệu của bài toán:

  • Xác định ca sử dụng (Use Case): Hệ thống được phân rã thành 20 Use Case cụ thể thuộc các gói: Gói cập nhật khách hàng (UC1: Đăng ký, UC2: Sửa, UC3: Xóa, UC4: Tìm kiếm); Gói quản lý mặt hàng (UC5: Phân nhóm, UC6: Thêm tour, UC7: Sửa tour, UC8: Xóa tour, UC9: Tìm kiếm tour); Quản lý hợp đồng (UC10: Thêm tour, UC11: Xóa tour, UC12: Xem hợp đồng); Quản lý đơn đặt tour (UC13: Xác nhận đơn, UC14: Hủy đơn, UC15: Xem tình trạng); Quản lý thêm tour (UC16: Xem tour sắp hết, UC17: Nhập thêm); Quản lý quyền truy cập (UC18: Thêm quyền) và Quản lý thành viên (UC20).
  • Mô hình hóa tác nhân: Phân tích tương tác và kết quả đem lại của từng hành vi người dùng đối với Khách hàng, Nhân viên và Quản trị viên.
  • Mô hình hóa chức năng và luồng dữ liệu: Xây dựng biểu đồ phân rã chức năng (BFD), biểu đồ dòng dữ liệu mức ngữ cảnh (DFD Context) và biểu đồ dòng dữ liệu mức 0 (DFD Level 0).
  • Thiết kế cơ sở dữ liệu: Trình bày mô hình thực thể liên kết (ERD) và đặc tả chi tiết kiểu dữ liệu, ràng buộc khóa chính, khóa ngoại của 8 bảng dữ liệu quan hệ (User, Contact, Orders, Orders_product, Products, Books, Gallery, Places).

Chương 4: Xây dựng chương trình

Chương 4 mô tả cấu trúc triển khai và giao diện thực tế của website đặt tour du lịch sau khi lập trình:

  • Tổ chức thư mục: Thiết lập cây cấu trúc thư mục dự án phân tách rõ ràng giữa các tài nguyên giao diện, tệp xử lý logic PHP và tệp lưu trữ hình ảnh.
  • Hiện thực hóa giao diện: Trình bày hình ảnh và mô tả các phân hệ màn hình chức năng chính, bao gồm:
    • Giao diện Trang chủ (hiển thị banner, thanh tìm kiếm, danh sách tour nổi bật và địa điểm).
    • Giao diện Đăng ký / Đăng nhập tài khoản người dùng.
    • Giao diện Giới thiệu và Giao diện Liên hệ (tiếp nhận thông tin phản hồi vào bảng Contact).
    • Phân hệ Giao diện Quản trị viên (Admin Dashboard) hỗ trợ quản lý danh sách tour, duyệt đơn đặt tour của khách hàng và cập nhật danh mục hệ thống.

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

Đồ án ghi nhận các kết quả cụ thể đã hoàn thành theo báo cáo:

  • Xây dựng thành công hệ thống website đặt tour du lịch hoàn chỉnh, giải quyết được mục tiêu phân tích thiết kế, cài đặt, vận hành và kiểm thử các chức năng cơ bản.
  • Ứng dụng chạy ổn định trên môi trường trình duyệt web, đảm bảo tính đồng nhất về mặt giao diện trên các nền tảng thiết bị.
  • Hệ thống hỗ trợ đầy đủ các thao tác quản lý dữ liệu (CRUD) đối với thông tin khách hàng, danh mục tour, quản lý đơn đặt tour, danh sách liên hệ và phân quyền người dùng.
  • Về mặt giải pháp, đồ án cung cấp một mô hình ứng dụng web giúp các đơn vị kinh doanh du lịch quảng bá sản phẩm, kiểm soát đơn đặt hàng và tương tác với khách hàng trên không gian số, thay thế cho quy trình giao dịch trực tiếp truyền thống.
  • Đóng góp tự nêu của tác giả: Đồ án là công trình tổng hợp quy trình thực hành xây dựng phần mềm thực tế của sinh viên chuyên ngành Ứng dụng phần mềm, kết hợp từ khâu khảo sát thực tế, phân tích UML, thiết kế CSDL đến lập trình tích hợp Frontend - Backend.

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

Trong phần kết luận chung, tác giả thẳng thắn thừa nhận các điểm hạn chế xuất phát từ thời gian thực hiện và kinh nghiệm lập trình:

  • Giao diện website vẫn chưa đạt mức độ tối ưu hoàn toàn về mặt trải nghiệm người dùng (UX/UI) như mục tiêu thiết kế ban đầu đề ra.
  • Một số tính năng thuộc phần xử lý máy chủ (Backend) chưa được hoàn thiện đầy đủ so với toàn bộ các ca sử dụng đã đặc tả trong giai đoạn phân tích hệ thống.

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

  • Hoàn thiện và tối ưu hóa các module xử lý logic phía máy chủ.
  • Nâng cấp giao diện người dùng theo các chuẩn thiết kế hiện đại, tăng tính thân thiện và dễ sử dụng.
  • Mở rộng thêm các chức năng nâng cao phục vụ hoạt động quản lý kinh doanh và thanh toán trong tương lai.

Giá trị tham khảo

Đồ án "Xây dựng website đặt tour du lịch" là tài liệu học thuật mang tính ứng dụng, hữu ích cho:

  • Sinh viên ngành Công nghệ thông tin và Ứng dụng phần mềm: Tham khảo cấu trúc một đồ án tốt nghiệp hệ cao đẳng nghề hoàn chỉnh, từ quy trình khảo sát, mô hình hóa phân tích thiết kế đến hiện thực hóa mã nguồn web.
  • Người nghiên cứu phát triển website thương mại điện tử / đặt chỗ: Có thể kế thừa trực tiếp mô hình cơ sở dữ liệu quan hệ gồm 8 bảng với các ràng buộc thuộc tính chi tiết phục vụ bài toán quản lý tour, đơn hàng và phản hồi của khách hàng.
  • Phần giá trị tham khảo trọng tâm: Hệ thống 20 ca sử dụng (Use Case) và bảng đặc tả cấu trúc bảng cơ sở dữ liệu tại Chương 3 là nguồn tư liệu có tính ứng dụng cao cho các đề tài xây dựng cổng thông tin du lịch quy mô vừa và nhỏ bằng ngôn ngữ PHP - MySQL.

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

1. Hệ thống website đặt tour du lịch trong đồ án sử dụng các công nghệ chính nào?
Hệ thống sử dụng các công nghệ gồm: HTML, CSS, SCSS, JavaScript, framework Bootstrap, thư viện jQuery, Font Awesome 5.4 và plugin Slick Slider (2.js) cho phía Client; ngôn ngữ lập trình PHP, ngôn ngữ truy vấn SQL và hệ quản trị cơ sở dữ liệu MySQL cho phía Server; công cụ phát triển mã nguồn Visual Studio Code và công cụ thiết kế Figma.

2. Cơ sở dữ liệu của hệ thống gồm những bảng nào và có tổng cộng bao nhiêu bảng?
Cơ sở dữ liệu của đồ án gồm chính xác 8 bảng quan hệ: User (lưu thông tin tài khoản và phân quyền), Contact (lưu phản hồi liên hệ), Orders (quản lý đơn đặt tour), Orders_product (chi tiết sản phẩm trong đơn hàng), Products (thông tin chi tiết về tour du lịch), Books (thông tin đặt chỗ theo ngày và số lượng khách), Gallery (thư viện hình ảnh) và Places (danh mục địa điểm du lịch).

3. Hệ thống phân quyền cho những đối tượng người dùng nào?
Hệ thống thiết lập 3 nhóm quyền sử dụng chính:

  • Khách (Guest): Xem thông tin tour, tra cứu địa điểm, đăng ký tài khoản.
  • Khách hàng (User/Customer): Xem chi tiết tour, gửi yêu cầu đặt tour với số lượng người và ngày đi/về cụ thể, quản lý danh sách hợp đồng và hủy đơn đặt tour.
  • Quản trị viên và Nhân viên (Admin/Staff): Tiếp nhận, kiểm tra tính hợp lệ và xác nhận/hủy đơn đặt tour; quản lý danh mục tour (thêm, sửa, xóa, cập nhật giá); quản lý thông tin khách hàng và tài khoản nhân viên.

4. Cấu hình phần cứng tối thiểu được đề xuất để triển khai hệ thống là gì?
Theo đặc tả của đồ án, máy chủ cần cấu hình tối thiểu là Raspberry Pi 4 với bộ nhớ RAM trên 2.048 MB, cài đặt MySQL hoặc SQL Server. Máy trạm phía người dùng chỉ cần máy tính cá nhân có RAM trên 1.024 MB và cài đặt trình duyệt web thông dụng như Chrome hoặc Edge.

5. Những hạn chế kỹ thuật nào được tác giả chỉ ra trong đồ án?
Tác giả nêu rõ hai hạn chế kỹ thuật chính: giao diện website chưa đạt được độ hoàn thiện tối ưu về trải nghiệm và thẩm mỹ UX/UI như mong đợi; một số tính năng xử lý phía máy chủ (Backend) vẫn chưa được hoàn thiện đầy đủ so với các yêu cầu đã phân tích và thiết kế ban đầu.


Kết luận

Đồ án tốt nghiệp "Xây dựng website đặt tour du lịch" của sinh viên Vũ Trung Đức đã hoàn thành các mục tiêu cơ bản trong việc nghiên cứu, phân tích thiết kế và hiện thực hóa một hệ thống thương mại điện tử dịch vụ lữ hành. Báo cáo thể hiện đầy đủ quy trình kỹ thuật phần mềm thông qua việc mô hình hóa hệ thống bằng biểu đồ UML, thiết kế cơ sở dữ liệu quan hệ 8 bảng và xây dựng giao diện tương tác dựa trên nền tảng PHP - MySQL. Mặc dù còn những hạn chế nhất định về trải nghiệm giao diện và một số xử lý phía máy chủ, công trình là tài liệu tham khảo có giá trị thực tiễn cho sinh viên chuyên ngành công nghệ thông tin trong việc triển khai các ứng dụng web quản lý dịch vụ.