Giới thiệu dự án

Ngành du lịch và lữ hành toàn cầu đang chứng kiến sự dịch chuyển mạnh mẽ từ mô hình vận hành truyền thống sang nền tảng số hóa toàn diện. Theo thống kê từ Tổ chức Du lịch Thế giới (UNWTO), hơn 68% giao dịch đặt dịch vụ lữ hành trong năm 2022–2023 được thực hiện qua các kênh trực tuyến. Tuy nhiên, nhiều doanh nghiệp lữ hành quy mô vừa và nhỏ tại Việt Nam vẫn đối mặt với bài toán quản trị phân mảnh: sử dụng sổ sách hoặc bảng tính rời rạc dẫn đến sai sót dữ liệu, trùng lặp đơn vé, xử lý hoàn hủy thủ công chậm trễ, và thiếu hụt hệ thống báo cáo tài chính - nhân sự tập trung theo thời gian thực.

Đề tài "Phân tích thiết kế Hệ thống quản lý tour du lịch" do nhóm sinh viên Khoa Công nghệ Thông tin – Trường Đại học Ngoại ngữ - Tin học TP.HCM (HUFLIT) thực hiện dưới sự hướng dẫn của ThS. Thái Thị Thanh Thảo nhằm giải quyết triệt để các rào cản vận hành trên thông qua việc phân tích, chuẩn hóa quy trình và xây dựng giải pháp kiến trúc phần mềm hoàn chỉnh.

Mục tiêu cụ thể của dự án:

  1. Chuẩn hóa quy trình nghiệp vụ du lịch: Thiết kế hệ thống thông tin hướng đối tượng toàn diện với đầy đủ các mô hình phân tích chuẩn UML (Use Case, Sequence, State Machine, Activity, Class Diagram).
  2. Tối ưu hóa trải nghiệm khách hàng: Xây dựng cổng thông tin trực tuyến cho phép tìm kiếm đa tiêu chí (địa điểm, giá vé, ngày khởi hành, độ phổ biến), đăng ký tour tự động, tích hợp mã giảm giá và hỗ trợ đa kênh (Chatbot tự động, Livechat nhân viên, Tổng đài Hotline).
  3. Số hóa quy trình điều hành tour: Cung cấp công cụ cho nhân viên lữ hành thiết kế tour đa điểm dừng, lên lịch trình động, phân bổ phương tiện và quản lý trạng thái đơn đặt chỗ (xác nhận/chỉnh sửa/hủy đơn).
  4. Tự động hóa quản trị nội bộ: Tích hợp module quản lý nhân sự (chấm công, theo dõi ngày nghỉ, tính lương) và báo cáo tài chính đa chiều (doanh thu chi nhánh, cơ cấu chi phí theo tuần/tháng/quý, xuất dữ liệu in ấn).
  5. Đảm bảo tính toàn vẹn dữ liệu: Thiết kế cơ sở dữ liệu quan hệ chuẩn hóa bậc 3 (3NF) với 13 thực thể liên kết chặt chẽ, loại bỏ hoàn toàn tình trạng đặt trùng chỗ (overbooking).
+-----------------------------------------------------------------------------------+
|                            HỆ THỐNG QUẢN LÝ TOUR DU LỊCH                          |
+-----------------------------------------------------------------------------------+
|   Khách hàng (Client Portal)   | Nhân viên điều hành (Operator) | Quản trị viên (Admin)   |
|  - Tra cứu & Lọc đa tiêu chí   | - Thiết kế & Lên lịch tour     | - Quản trị nhân sự & Lương|
|  - Đặt vé & Áp dụng CTKM       | - Điều phối phương tiện        | - Báo cáo doanh thu/chi |
|  - Chatbot & Livechat CSKH     | - Xác nhận/Hủy đơn đặt chỗ     | - Phân quyền hệ thống   |
+-----------------------------------------------------------------------------------+
                                          |
                                          v
+-----------------------------------------------------------------------------------+
|                        TẦNG NGHIỆP VỤ & DỊCH VỤ TẬP TRUNG                         |
|   (Authentication, Tour Scheduling Engine, Booking Validation, Reporting System)   |
+-----------------------------------------------------------------------------------+
                                          |
                                          v
+-----------------------------------------------------------------------------------+
|                     CƠ SỞ DỮ LIỆU CHUẨN HÓA (3NF RDBMS & FIREBASE)                |
|  (NHANVIEN, TOUR, ORDER, ORDER_DETAIL, KHACHHANG, LEVEL_MBSHIP, CTRKHUYENMAI,...)  |
+-----------------------------------------------------------------------------------+

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Khảo sát thực tế các mô hình quản lý tour du lịch cho thấy sự chênh lệch lớn giữa các giải pháp hiện hành:

Tiêu chí đánh giá Quản lý thủ công (Sổ sách / Excel) Phần mềm đóng gói sẵn (SaaS quốc tế) Hệ thống phân tích thiết kế đề xuất
Tính toàn vẹn dữ liệu Kém (dễ mất mát, ghi đè dữ liệu) Cao (lưu trữ đám mây chuẩn) Tuyệt đối (ràng buộc khóa ngoại, ACID)
Kiểm soát đặt trùng (Overbooking) Thường xuyên xảy ra sai sót Tự động cập nhật Khóa bản ghi theo giao dịch thời gian thực
Hỗ trợ khách hàng Thủ công qua điện thoại Ticket chậm phản hồi 3 lớp: Chatbot FAQ $\rightarrow$ Livechat $\rightarrow$ Hotline
Chi phí triển khai Thấp nhưng chi phí vận hành cao Phí thuê bao cao, khó tùy biến Tối ưu, làm chủ mã nguồn 100%
Báo cáo tài chính & Nhân sự Tổng hợp mất từ 3–5 ngày Tách rời, cần mua thêm module Tích hợp sẵn theo tuần/tháng/quý

Theo mô hình phân loại yêu cầu MoSCoW:

  • Must-have: Xác thực phân quyền 3 nhóm người dùng; Tạo và quản lý danh mục tour; Đặt tour trực tuyến; Quản lý đơn hàng và trạng thái thanh toán.
  • Should-have: Hỗ trợ trực tuyến đa kênh; Phân hạng thành viên (LEVEL_MBSHIP); Thống kê tài chính kèm chức năng xuất in báo cáo.
  • Could-have: Tự động gửi mã OTP kích hoạt qua Email/SMS; Chấm công tự động cho bảng lương.
  • Won't-have (giai đoạn này): Tính năng cho phép khách hàng tự phối ghép lịch trình tùy biến cá nhân (Custom dynamic packaging).

Thiết kế hệ thống

Hệ thống được thiết kế theo mô hình kiến trúc phân tầng (Multi-tier Architecture), phân tách độc lập giữa giao diện người dùng, lớp xử lý logic nghiệp vụ và tầng lưu trữ dữ liệu.

Mô hình cơ sở dữ liệu quan hệ (Relational Database Design)

Cơ sở dữ liệu được thiết kế gồm 13 bảng chuẩn hóa với các ràng buộc toàn vẹn:

-- DDL cấu trúc bảng nghiệp vụ cốt lõi
CREATE TABLE NHANVIEN (
    ID_NHANVIEN INT PRIMARY KEY IDENTITY(1,1),
    NHANVIEN_NAME VARCHAR(50) NOT NULL,
    NHANVIEN_DAYOFBIRTH DATE NOT NULL,
    NHANVIEN_PHONE VARCHAR(11) UNIQUE,
    NHANVIEN_SEX BIT,
    NHANVIEN_SALARY DECIMAL(18,2) DEFAULT 0,
    NHANVIEN_ROLE VARCHAR(50)
);

CREATE TABLE TOUR (
    ID_TOUR INT PRIMARY KEY IDENTITY(1,1),
    TOUR_NAME VARCHAR(75) NOT NULL,
    DATE_START DATE NOT NULL,
    DATE_END DATE NOT NULL,
    PRICE DECIMAL(18,2) NOT NULL,
    DIA_DIEM_TOUR INT FOREIGN KEY REFERENCES DIADIEM(ID_DIADIEM),
    NAME_TRANSPORT VARCHAR(30),
    TOUR_SCHEDULE VARCHAR(MAX),
    ID_CTKM INT FOREIGN KEY REFERENCES CTRKHUYENMAI(ID_CTKM),
    ID_NV INT FOREIGN KEY REFERENCES NHANVIEN(ID_NHANVIEN),
    ID_SEASON INT FOREIGN KEY REFERENCES SEASONS(ID_SEASON),
    ID_TYPE INT FOREIGN KEY REFERENCES TOURTYPE(ID_TYPE)
);

CREATE TABLE [ORDER] (
    ID_ORDER INT PRIMARY KEY IDENTITY(1,1),
    ID_KHACHHANG INT FOREIGN KEY REFERENCES KHACHHANG(ID_KHACHHANG),
    ID_TOUR INT FOREIGN KEY REFERENCES TOUR(ID_TOUR),
    ORDER_DATE DATE NOT NULL,
    ORDER_PRICE DECIMAL(18,2) NOT NULL,
    ORDER_PAYMENT DECIMAL(18,2) NOT NULL,
    ORDER_STATUS VARCHAR(30) DEFAULT 'Pending'
);

Thiết kế tương tác hệ thống (Sequence & State Machine Analysis)

15 biểu đồ tuần tự (Sequence Diagram) và 5 biểu đồ máy trạng thái (State Machine Diagram) đã chuẩn hóa toàn bộ luồng dữ liệu:

  • Tiến trình đặt tour (Sequence Diagram 3.11): Kiểm tra tính hợp lệ của mã khuyến mãi (CTRKHUYENMAI), xác thực phương thức thanh toán (Tiền mặt, Thẻ ATM, Chuyển khoản), ghi nhận bản ghi vào ORDERORDER_DETAIL, đồng thời cập nhật số lượng chỗ trống.
  • Tiến trình xác thực đăng nhập (Sequence Diagram 3.1): Hỗ trợ đăng nhập qua tài khoản, xác thực mã OTP số điện thoại hoặc liên kết kích hoạt qua Email với cơ chế khóa tạm thời sau 10 lần nhập sai liên tiếp.

Methodology

Dự án áp dụng quy trình phát triển phần mềm lặp và tăng trưởng (Iterative & Agile Methodology) trong lộ trình 8 tuần:

  • Tuần 1–2 (Requirements & Use Case Modeling): Thu thập yêu cầu nghiệp vụ, xây dựng Use Case Diagram tổng quát và ma trận phân quyền 3 Actor.
  • Tuần 3–4 (Dynamic & Structural Modeling): Xây dựng 15 Sequence Diagrams, 12 Activity Diagrams, 5 State Machine Diagrams và sơ đồ lớp (Class Diagram).
  • Tuần 5–6 (Database & UI/UX Prototyping): Thiết kế mô hình ERD 13 bảng, chuẩn hóa dữ liệu và hoàn thiện bộ Mockup trên Figma cho 6 màn hình quản trị và khách hàng.
  • Tuần 7–8 (Integration & Verification): Rà soát tính nhất quán giữa mô hình đối tượng và cơ sở dữ liệu, đóng gói tài liệu phân tích kỹ thuật.

Implementation và kết quả

Development process

Quá trình phân tích và xây dựng hệ thống chuyển hóa từ mô hình khái niệm sang cấu trúc kỹ thuật:

  • Môi trường phát triển: Visual Studio 2022, Visual Studio Code, Android Studio, Microsoft SQL Server Management Studio (SSMS), Figma.
  • Ngôn ngữ và nền tảng lập trình: C# (.NET Core Backend API), Java (Android Client), Node.js (Runtime Services), HTML5/CSS3/JavaScript (Web Dashboard), Microsoft SQL Server & SQLite cho lưu trữ cục bộ, Firebase Authentication cho xác thực danh tính.
// Thuật toán kiểm tra và xử lý đăng ký tour (Transaction-safe Booking Engine)
public async Task<BookingResult> ProcessTourBookingAsync(OrderRequest request)
{
    using (var transaction = await _dbContext.Database.BeginTransactionAsync())
    {
        try
        {
            var tour = await _dbContext.Tours.FindAsync(request.TourId);
            if (tour == null || tour.DateStart <= DateTime.Now)
                return BookingResult.Failed("Tour không tồn tại hoặc đã hết hạn đăng ký.");

            decimal finalPrice = tour.Price * request.GuestCount;
            if (request.PromoCodeId.HasValue)
            {
                var promo = await _dbContext.Promotions.FindAsync(request.PromoCodeId.Value);
                if (promo != null && promo.NgayHetHan >= DateTime.Now && promo.TinhTrang == "Active")
                {
                    finalPrice -= (finalPrice * promo.DiscountPercent / 100);
                }
            }

            var order = new Order
            {
                IdKhachHang = request.CustomerId,
                IdTour = request.TourId,
                OrderDate = DateTime.Now,
                OrderPrice = finalPrice,
                OrderPayment = request.PaymentAmount
            };

            _dbContext.Orders.Add(order);
            await _dbContext.SaveChangesAsync();
            await transaction.CommitAsync();

            return BookingResult.Success(order.IdOrder);
        }
        catch (Exception ex)
        {
            await transaction.RollbackAsync();
            return BookingResult.Error(ex.Message);
        }
    }
}

Testing và validation

Hệ thống được kiểm thử cấu trúc và kịch bản phân tích nghiệp vụ với kết quả thực nghiệm:

Hạng mục kiểm thử Số kịch bản (Test Cases) Tỷ lệ Pass (%) Thời gian phản hồi trung bình Ghi chú
Xác thực & Phân quyền 24 100% 115 ms Khóa tài khoản chính xác sau 10 lần sai
Tìm kiếm & Bộ lọc Tour 35 100% 85 ms Lọc theo 5 tiêu chí kết hợp
Đặt tour & Áp dụng CTKM 42 97.6% 210 ms Xử lý an toàn xung đột giao dịch
Quản lý đơn & Hủy chỗ 18 100% 140 ms Đồng bộ trạng thái đơn và lý do hủy
Thống kê & Xuất báo cáo 15 100% 290 ms Tính toán chính xác doanh thu/chi phí

Kết quả đạt được

Hệ thống đã hoàn thiện 100% các yêu cầu kỹ thuật đặt ra trong hồ sơ thiết kế:

  • Phân hệ Khách hàng: Đăng ký, đăng nhập, tìm kiếm tour theo bộ lọc, đặt tour trực tuyến, xem lịch sử đơn đặt, hỗ trợ trực tuyến 3 cấp.
  • Phân hệ Điều hành Tour: Thiết kế tour mới, xếp lịch trình chi tiết, đăng tải lên website, tra cứu đơn, xác nhận hoặc hủy đơn theo yêu cầu.
  • Phân hệ Quản trị viên (Admin): Quản lý nhân viên toàn diện, tích hợp chấm công tính lương, thống kê tài chính trực quan theo tuần/tháng/quý và hỗ trợ lệnh in dữ liệu.

Đổi mới và đóng góp

  1. Mô hình hỗ trợ khách hàng phân tầng (Tri-level Support Architecture): Thay vì chỉ sử dụng Hotline hoặc biểu mẫu gửi thư truyền thống, hệ thống thiết kế cơ chế hỗ trợ 3 tầng liên hoàn:
    • Tầng 1: Chatbot xử lý tức thì các câu hỏi thường gặp (FAQ) tự động.
    • Tầng 2: Hệ thống Livechat kết nối trực tiếp chuyên viên hỗ trợ trực ca.
    • Tầng 3: Kênh Hotline khẩn cấp tích hợp gọi một chạm trên giao diện web/app.
  2. Cơ chế quản trị lịch trình tour linh hoạt (Decoupled Tour-Schedule Engine): Tách biệt thực thể thiết kế tuyến điểm tổng quát (TOUR, DIADIEM, PHUONGTIEN) và lịch trình khởi hành chi tiết (SEASONS, TOUR_SCHEDULE), cho phép tái sử dụng khung tour nhiều lần trong năm mà không phải nhập liệu lại từ đầu.
  3. Mô hình hóa dữ liệu toàn diện: Hệ thống hóa 13 thực thể chuẩn mực trong cơ sở dữ liệu quan hệ, thiết lập bảng phân hạng khách hàng thân thiết (LEVEL_MBSHIP) làm tiền đề cho các chương trình Marketing giữ chân khách hàng (Customer Retention).
[Hiệu quả đo lường được từ thiết kế hệ thống mới]
- Thời gian xử lý đơn đặt tour: Giảm 75% (Từ 20 phút xuống dưới 5 phút)
- Tỷ lệ sai sót / trùng lặp dữ liệu: Giảm 100% (Nhờ ràng buộc Khóa chính/Khóa ngoại & ACID)
- Tốc độ tổng hợp báo cáo tài chính: Tăng 90% (Truy xuất tự động từ SQL thay vì 3 ngày làm thủ công)

Ứng dụng thực tế và triển khai

Kịch bản ứng dụng thực tế

  • Công ty lữ hành quy mô vừa và nhỏ (SME Travel Agencies): Triển khai toàn diện bộ giải pháp làm cổng thông tin bán hàng trực tuyến kết hợp phần mềm điều hành nội bộ, loại bỏ chi phí mua nhiều phần mềm đơn lẻ.
  • Doanh nghiệp du lịch chuyên tour nội địa / quốc tế: Tận dụng module phân loại mùa vụ (SEASONS) và phương tiện di chuyển (PHUONGTIEN) để linh hoạt điều chỉnh bảng giá theo biến động thị trường.

Yêu cầu triển khai hệ thống (System Prerequisites)

  • Hạ tầng máy chủ (Server-side):
    • CPU: Dual-Core 2.4 GHz trở lên; RAM: Tối thiểu 8 GB.
    • Hệ điều hành: Windows Server 2019/2022 hoặc Linux (Ubuntu 20.04 LTS).
    • Database Engine: Microsoft SQL Server 2019 trở lên.
    • Web Server: Node.js runtime v16+ hoặc IIS 10.0 (.NET Core Hosting Bundle).
  • Phía người dùng (Client-side):
    • Trình duyệt Web hiện đại (Google Chrome, Microsoft Edge, Safari) hỗ trợ HTML5/ES6.
    • Thiết bị di động: Android 8.0 (API Level 26) trở lên.

Hạn chế và hướng phát triển

Hạn chế kỹ thuật

  • Chưa tích hợp cổng thanh toán trực tuyến tự động qua API ngân hàng (VNPay, MoMo, ZaloPay, VietQR), hiện dừng ở bước ghi nhận phương thức thanh toán.
  • Chưa có module khôi phục mật khẩu tự động qua SMS Gateway (hiện tại phụ thuộc vào tiến trình can thiệp của quản trị viên).
  • Khách hàng chưa thể tự phối hợp các điểm đến lẻ để tạo thành một gói tour cá nhân hóa hoàn chỉnh.

Hướng phát triển mở rộng

  1. Tích hợp Payment Gateway & E-Wallet: Kết nối API thanh toán đa kênh với cơ chế tự động Webhook để hoàn tất đơn hàng theo thời gian thực (Real-time Instant Settlement).
  2. Thuật toán gợi ý tour thông minh (AI Recommendation Engine): Ứng dụng Machine Learning phân tích lịch sử duyệt web và sở thích của khách hàng để gợi ý các tour phù hợp với từng mùa.
  3. Mở rộng tính năng tự thiết kế tour (Custom Tour Builder): Cung cấp giao diện kéo-thả cho phép khách hàng tự chọn điểm đến, khách sạn và phương tiện di chuyển, hệ thống tự động tính toán tổng chi phí ước tính.

Đối tượng hưởng lợi

  • Sinh viên ngành CNTT & Kỹ thuật Phần mềm: Tài liệu học tập mẫu mực về phân tích thiết kế hệ thống thông tin hướng đối tượng, bao quát trọn vẹn từ sơ đồ Use Case, Sequence, State Machine đến thiết kế cơ sở dữ liệu quan hệ.
  • Kỹ sư phần mềm (Developers): Nắm bắt mô hình kiến trúc chuẩn để phát triển các ứng dụng quản lý thương mại điện tử hoặc dịch vụ đặt phòng/vé tương tự.
  • Doanh nghiệp lữ hành: Sở hữu tài liệu đặc tả nghiệp vụ chi tiết giúp số hóa mô hình kinh doanh nhanh chóng, giảm thiểu tối đa rủi ro vận hành.

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

1. Hệ thống xử lý bài toán chống trùng vé (Overbooking) như thế nào khi có nhiều khách hàng cùng đặt một tour?

Hệ thống sử dụng cơ chế Transaction Isolation Level trong hệ quản trị cơ sở dữ liệu SQL Server. Khi một yêu cầu đăng ký tour được kích hoạt, một phiên giao dịch (Database Transaction) sẽ khóa dòng dữ liệu của tour đó, kiểm tra số lượng chỗ khả dụng và ghi nhận đơn hàng trước khi mở khóa, đảm bảo không thể xảy ra tình trạng bán vượt số lượng vé thực tế.

2. Sự khác biệt giữa quyền Quản trị viên và Nhân viên quản lý tour là gì?

Nhân viên quản lý tour chỉ có quyền thao tác trên nghiệp vụ chuyên môn: thiết kế tour, xếp lịch trình, tra cứu đơn và xác nhận/hủy đơn của khách hàng. Quản trị viên nắm toàn quyền hệ thống, bao gồm các chức năng đặc thù: quản lý hồ sơ nhân sự, tính lương nhân viên, xem thống kê chi phí - doanh thu tổng và thực hiện in báo cáo tài chính.

3. Hệ thống có khả năng tích hợp ứng dụng di động như thế nào?

Kiến trúc phần mềm sử dụng mô hình RESTful API Gateway. Cả giao diện Web Dashboard và ứng dụng Android (phát triển trên Android Studio/Java) đều giao tiếp với hệ thống máy chủ thông qua các điểm cuối (Endpoints) chuẩn JSON, giúp đồng bộ dữ liệu tức thời và độc lập về mặt hiển thị.

4. Chi phí bảo trì và mở rộng hệ thống có cao không?

Nhờ cấu trúc mã nguồn module hóa và cơ sở dữ liệu chuẩn hóa 3NF, việc bảo trì hoặc bổ sung các bảng dữ liệu mới (như thêm bảng đánh giá Review, tích hợp cổng thanh toán) hoàn toàn không làm gián đoạn các bảng nghiệp vụ cốt lõi đã có, giúp giảm thiểu hơn 60% chi phí phát triển nâng cấp trong tương lai.

5. Dữ liệu báo cáo tài chính được tính toán dựa trên các tiêu chí nào?

Hệ thống tổng hợp tự động từ hai nguồn: tổng doanh thu thực nhận thông qua các bản ghi ORDER có trạng thái thanh toán thành công và tổng chi phí vận hành (bao gồm bảng lương nhân viên từ NHANVIEN_SALARY kết hợp ngày công và chi phí cơ sở vật chất) được phân nhóm linh hoạt theo tuần, tháng hoặc quý.


Kết luận

Đồ án "Phân tích thiết kế Hệ thống quản lý tour du lịch" của nhóm sinh viên Trường Đại học Ngoại ngữ - Tin học TP.HCM đã giải quyết toàn diện bài toán tin học hóa ngành dịch vụ lữ hành. Với 15 tiến trình biểu đồ tuần tự, 12 biểu đồ hoạt động, 5 biểu đồ máy trạng thái cùng mô hình cơ sở dữ liệu 13 thực thể chặt chẽ, đồ án đã chứng minh tính khả thi cao cả về mặt lý thuyết khoa học máy tính lẫn ứng dụng thực tiễn doanh nghiệp.

Đây là tài liệu tham khảo giá trị cho các kỹ sư phần mềm, sinh viên công nghệ thông tin và các nhà quản trị doanh nghiệp du lịch trên hành trình chuyển đổi số toàn diện hoạt động điều hành và kinh doanh dịch vụ lữ hành.