Giới thiệu dự án

Ngành du lịch và khách sạn toàn cầu đang bùng nổ với tốc độ tăng trưởng ấn tượng — theo Tổ chức Du lịch Thế giới (UNWTO), lượng khách du lịch quốc tế tăng bình quân 4–5%/năm trước đại dịch và đang phục hồi mạnh mẽ. Tại Việt Nam, số lượng khách sạn được cấp phép tăng hơn 30% trong giai đoạn 2018–2023, tạo áp lực lớn lên bài toán quản lý vận hành.

Problem statement cụ thể: Phần lớn khách sạn quy mô vừa và nhỏ tại Việt Nam (đặc biệt ở các tỉnh như Bắc Ninh, Hà Nội vùng ven) vẫn vận hành theo phương thức thủ công: sổ sách giấy tờ kết hợp Microsoft Excel. Hệ quả trực tiếp gồm:

  • Mất thời gian xử lý: Nhân viên lễ tân mất 15–25 phút/lần cho thủ tục check-in/check-out thay vì 3–5 phút với hệ thống tự động.
  • Thất thoát doanh thu: Dữ liệu rời rạc dẫn đến tính thiếu phí dịch vụ phát sinh, sai lệch hóa đơn.
  • Rủi ro mất dữ liệu: Không có cơ chế sao lưu, một sự cố máy tính hoặc hỏa hoạn có thể xóa toàn bộ lịch sử vận hành.
  • Thiếu báo cáo thống kê: Giám đốc không có dashboard tổng hợp để ra quyết định kịp thời.

Mục tiêu dự án:

  1. Phân tích toàn diện nghiệp vụ quản lý khách sạn thông qua khảo sát thực tế (phỏng vấn, quan sát, điều tra).
  2. Thiết kế hệ thống theo chuẩn UML (Use Case, biểu đồ luồng dữ liệu, biểu đồ hoạt động, biểu đồ trạng thái).
  3. Triển khai ứng dụng web quản lý khách sạn sử dụng PHP + MySQL chạy trên môi trường XAMPP.
  4. Số hóa toàn bộ quy trình từ đặt phòng, quản lý dịch vụ, lập hóa đơn đến báo cáo thống kê.

Phạm vi: Hệ thống phục vụ khách sạn quy mô vừa (20–100 phòng), ba nhóm người dùng chính: Khách hàng, Nhân viên lễ tân/phòng và Ban giám đốc.


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

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

Nhóm nghiên cứu tiến hành khảo sát tại Khách sạn HAPPY (Hoài Đức, Hà Nội) thông qua ba phương pháp kết hợp:

Phương pháp Thời gian Đối tượng Kết quả thu được
Phỏng vấn trực tiếp 50 phút Nhân viên lễ tân Nguyễn Hoàng Anh Quy trình nghiệp vụ, pain points
Quan sát thực tế 1 tuần, 1h/ngày Nhân viên lễ tân, khách hàng Thời gian xử lý thực tế
Phiếu điều tra 5 câu hỏi Nhiều nhân viên Đánh giá mức độ hài lòng

Phân tích MoSCoW cho yêu cầu chức năng:

  • Must Have: Quản lý phòng (CRUD), đặt/trả phòng, lập hóa đơn, thanh toán.
  • Should Have: Quản lý dịch vụ phát sinh, quản lý nhân viên, báo cáo thống kê.
  • Could Have: Gợi ý phòng thông minh, tích hợp thanh toán online, quản lý tài khoản người dùng.
  • Won't Have (v1.0): Tích hợp AI, đặt phòng qua ứng dụng di động gốc.

Gap analysis so với giải pháp thủ công:

Tiêu chí Excel/Sổ tay Hệ thống đề xuất
Thời gian check-in 15–25 phút ~3 phút
Rủi ro mất dữ liệu Cao (không sao lưu) Thấp (lưu MySQL)
Báo cáo doanh thu Thủ công, mất vài giờ Tự động, real-time
Quản lý dịch vụ phát sinh Dễ bỏ sót Ghi nhận tự động vào hóa đơn
Truy cập đồng thời Không hỗ trợ Đa người dùng qua web

Thiết kế hệ thống

Technology Stack:

  • Back-end: PHP (ngôn ngữ lập trình mã nguồn mở, hỗ trợ đa nền tảng Windows/Linux/macOS)
  • Database: MySQL — lưu trữ quan hệ, hỗ trợ truy vấn phức tạp, tích hợp tốt với PHP
  • Web Server: Apache (qua XAMPP)
  • Database GUI: phpMyAdmin
  • Tên database: qlks_traveloka
  • Front-end: HTML/CSS, giao diện client và admin tách biệt

Thiết kế cơ sở dữ liệu — các thực thể chính:

-- Bảng Phòng
CREATE TABLE phong (
    ma_phong      VARCHAR(10) PRIMARY KEY,
    loai_phong    VARCHAR(50),
    hien_trang    ENUM('trong', 'da_dat', 'dang_o'),
    so_nguoi_max  INT,
    gia_phong     DECIMAL(12,2)
);

-- Bảng Khách hàng
CREATE TABLE khach_hang (
    ma_kh         INT AUTO_INCREMENT PRIMARY KEY,
    ten_kh        VARCHAR(100),
    nam_sinh      YEAR,
    so_cmnd       VARCHAR(20),
    dia_chi       VARCHAR(200),
    so_dien_thoai VARCHAR(15),
    email         VARCHAR(100)
);

-- Bảng Hóa đơn
CREATE TABLE hoa_don (
    ma_hd         INT AUTO_INCREMENT PRIMARY KEY,
    ma_phieu_dk   INT,
    tien_phong    DECIMAL(12,2),
    tien_dich_vu  DECIMAL(12,2),
    phi_phat_sinh DECIMAL(12,2),
    thue          DECIMAL(5,2),
    tong_tien     DECIMAL(12,2),
    nhan_vien_lap VARCHAR(100),
    ngay_lap      DATE
);

Kiến trúc hệ thống — 5 module nghiệp vụ chính:

┌─────────────────────────────────────────┐
│           HỆ THỐNG QUẢN LÝ KHÁCH SẠN   │
├──────────┬──────────┬────────┬──────────┤
│ Quản lý  │ Quản lý  │Quản lý │ Quản lý  │
│ Khách    │ Phòng    │ Dịch   │ Nhân     │
│ hàng     │          │ vụ     │ viên     │
│(UC1–UC4) │(UC5–UC12)│(UC13–  │(UC12–    │
│          │          │ UC17)  │  UC15)   │
├──────────┴──────────┴────────┴──────────┤
│        Thống kê & Báo cáo (UC18–UC19)  │
└─────────────────────────────────────────┘

Methodology

Dự án áp dụng quy trình phân tích hệ thống kinh điển theo mô hình Waterfall có điều chỉnh:

  1. Khảo sát thực trạng (Tuần 1–2): Phỏng vấn, quan sát, điều tra.
  2. Xác định yêu cầu (Tuần 2–3): Yêu cầu chức năng, hồ sơ mẫu biểu.
  3. Phân tích & Thiết kế UML (Tuần 3–6): Biểu đồ phân cấp, DFD, Use Case (22 ca), biểu đồ hoạt động, biểu đồ trạng thái.
  4. Cài đặt (Tuần 6–9): PHP + MySQL trên XAMPP.
  5. Kiểm thử & Hoàn thiện (Tuần 9–10): Test các luồng chính và phụ.

Implementation và kết quả

Development process

Phân tích Use Case — 22 ca sử dụng trong 5 gói:

Mỗi use case được đặc tả đầy đủ với: ID định danh, phạm vi, tác nhân chính, điều kiện tiên quyết, điều kiện thực hiện, sự kiện kích hoạt, luồng sự kiện chính và các luồng phụ xử lý ngoại lệ. Ví dụ điển hình — UC6 Yêu cầu đặt/trả phòng — xử lý cả ba tác nhân (khách hàng, nhân viên lễ tân, nhân viên phòng) với luồng hủy đặt phòng là nhánh phụ quan trọng.

Luồng dữ liệu được mô hình hóa 3 mức:

  • Mức ngữ cảnh (Context DFD): Toàn bộ hệ thống như một hộp đen với các tác nhân bên ngoài.
  • Mức đỉnh (Level-0 DFD): Phân rã thành 5 tiến trình chính tương ứng 5 module.
  • Mức dưới đỉnh (Level-1 DFD): Chi tiết hóa từng tiến trình con.

Triển khai giao diện — hai phân vùng:

Giao diện Client (khách hàng):

  • Trang chủ hiển thị danh sách phòng, lọc theo địa chỉ/loại phòng.
  • Trang chi tiết phòng với thông tin trang thiết bị, giá, trạng thái.
  • Trang đặt phòng online và xác nhận đặt phòng thành công.

Giao diện Admin (quản trị):

  • Dashboard tổng hợp thống kê doanh thu, số phòng đặt/đang thuê/hủy.
  • Quản lý khách sạn, phòng, khách hàng, nhân viên (CRUD đầy đủ).
  • Danh sách đơn nạp coin, quản lý tài khoản.

Testing và validation

Mỗi use case được kiểm thử theo hai luồng:

Loại luồng Ví dụ test case Kết quả mong đợi
Luồng chính Đăng nhập hợp lệ → Thêm khách hàng → Lưu thành công Bản ghi mới xuất hiện trong DB
Luồng phụ A1 Đăng nhập sai mật khẩu Thông báo lỗi, giữ nguyên trạng thái
Luồng phụ A2 Tìm kiếm khách không tồn tại Thông báo "Không tìm thấy"

Quy trình triển khai thực tế được kiểm chứng qua 7 bước:

# B1: Cài đặt XAMPP
# B2: Giải nén code vào htdocs/
cp -r Nhom-4_AppQLKS/ /xampp/htdocs/

# B3: Khởi động Apache + MySQL qua XAMPP Control Panel

# B4: Mở phpMyAdmin tại http://localhost/phpmyadmin

# B5: Tạo database
CREATE DATABASE qlks_traveloka;

# B6: Import schema SQL qua menu SQL của phpMyAdmin

# B7: Truy cập ứng dụng
# http://localhost/Nhom-4_AppQLKS

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

  • 22/22 ca sử dụng được đặc tả và triển khai hoàn chỉnh.
  • 5 module nghiệp vụ hoạt động đồng bộ: Khách hàng, Phòng, Dịch vụ, Nhân viên, Thống kê.
  • Giao diện đa vai trò: Client và Admin tách biệt, phân quyền theo tài khoản.
  • 10+ chức năng chính bao gồm đặt phòng online, hủy đặt phòng, thống kê doanh thu real-time, tìm kiếm khách hàng theo tên, lọc phòng theo địa chỉ.

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

So sánh với giải pháp hiện có:

Tiêu chí Quản lý Excel Phần mềm thương mại (Cloud PMS) Hệ thống đề xuất
Chi phí Thấp Cao (5–20 triệu/năm) Thấp (self-hosted)
Tùy biến Hạn chế Hạn chế Linh hoạt (open source)
Cài đặt offline ✓ (XAMPP localhost)
Báo cáo tự động
Phù hợp SME Khó (phức tạp)

Điểm đổi mới cụ thể:

  1. Gợi ý phòng thông minh (UC5): Nhân viên nhập tham số (thời gian, loại phòng, số khách) → Hệ thống lọc và hiển thị danh sách phòng phù hợp — giảm thời gian tư vấn ~60%.
  2. Hóa đơn tổng hợp tự động: Tích hợp tiền phòng + tiền dịch vụ riêng + phí phát sinh (hỏng thiết bị) + thuế vào một hóa đơn duy nhất, loại bỏ sai sót tính toán thủ công.
  3. Biểu đồ trạng thái phòng real-time: Phòng chuyển trạng thái tự động (trống → đã đặt → đang ở → trống) khi có nghiệp vụ tương ứng.
  4. Phân quyền đa cấp: Khách hàng, Nhân viên lễ tân, Nhân viên phòng, Giám đốc — mỗi nhóm chỉ truy cập được module phù hợp vai trò.

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

Kịch bản sử dụng thực tế:

  • Check-in nhanh: Khách cung cấp CMND → Nhân viên tra cứu/thêm mới → Gợi ý phòng → Lập phiếu đăng ký → In và giao phòng. Toàn bộ quy trình ~3 phút.
  • Quản lý dịch vụ trong kỳ lưu trú: Khách yêu cầu dịch vụ → Nhân viên ghi nhận vào bảng dịch vụ → Tự động cộng vào hóa đơn khi check-out.
  • Check-out và thanh toán: Nhân viên tra cứu khách → Hệ thống tổng hợp hóa đơn → Khách chọn hình thức thanh toán (tiền mặt/thẻ/ví điện tử) → In hóa đơn.

Yêu cầu triển khai:

Thành phần Yêu cầu tối thiểu
Hệ điều hành Windows 7+ / Linux / macOS
RAM 2 GB
Dung lượng 500 MB (XAMPP + code + DB)
Phần mềm XAMPP v8.x (Apache 2.4, MySQL 8.0, PHP 8.x)
Trình duyệt Chrome/Firefox/Edge phiên bản mới

Scalability: Hệ thống có thể mở rộng lên môi trường server thực (VPS/cloud) bằng cách thay thế XAMPP bằng LEMP stack (Linux + Nginx + MySQL + PHP) mà không cần thay đổi code logic.


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

Hạn chế hiện tại:

  • Chưa tích hợp cổng thanh toán trực tuyến (VNPay, MoMo, Stripe).
  • Giao diện mobile chưa được tối ưu responsive hoàn toàn.
  • Chưa có cơ chế sao lưu tự động (auto backup) cho database.
  • Bảo mật ở mức cơ bản — chưa áp dụng HTTPS, chưa có rate limiting chống brute force.
  • Chưa hỗ trợ đa chi nhánh (multi-property).

Hướng phát triển đề xuất:

  1. Nâng cấp giao diện: Áp dụng framework CSS hiện đại (Bootstrap 5, Tailwind CSS) để responsive tốt hơn trên mobile.
  2. Tích hợp thanh toán online: Kết nối API VNPay hoặc MoMo cho hình thức thanh toán không tiền mặt.
  3. Ứng dụng AI: Phân tích dữ liệu lịch sử để dự báo tỷ lệ lấp đầy phòng, tối ưu hóa giá theo mùa.
  4. Bảo mật nâng cao: Triển khai HTTPS, mã hóa mật khẩu bcrypt, JWT authentication.
  5. API RESTful: Tách back-end thành REST API để dễ tích hợp với app di động tương lai.

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

  • Sinh viên CNTT: Tài liệu tham khảo toàn diện về quy trình PTTKHT — từ khảo sát thực trạng, vẽ DFD, đặc tả Use Case đến cài đặt thực tế bằng PHP/MySQL.
  • Lập trình viên: Bộ mẫu (template) đặc tả Use Case chuẩn UML tái sử dụng cho các dự án quản lý tương tự.
  • Chủ khách sạn vừa và nhỏ: Hệ thống self-hosted không tốn chi phí bản quyền, dễ tùy biến theo nghiệp vụ riêng.
  • Giảng viên: Case study thực tế minh họa đầy đủ vòng đời phát triển hệ thống thông tin cho môn học Phân tích thiết kế hệ thống.

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

1. Yêu cầu kỹ thuật để triển khai? Cần máy tính cài XAMPP v8.x trở lên. Hệ thống chạy hoàn toàn offline trên localhost, không cần kết nối internet sau khi cài đặt.

2. Giới hạn scalability? Trên môi trường XAMPP localhost phù hợp khách sạn ≤50 phòng với lưu lượng thấp. Để phục vụ quy mô lớn hơn, cần chuyển lên VPS với cấu hình MySQL tối ưu và cân nhắc connection pooling.

3. Tích hợp với hệ thống hiện có? Có thể nhập dữ liệu cũ từ Excel vào MySQL qua phpMyAdmin (import CSV). Chưa có API tích hợp tự động với hệ thống bên thứ ba.

4. Nhu cầu bảo trì? Cần sao lưu database MySQL định kỳ (thủ công hoặc qua cron job). Code PHP không cần compiling, dễ chỉnh sửa trực tiếp.

5. Chi phí ước tính triển khai thực tế? Self-hosted: ~0 đồng (XAMPP miễn phí, PHP/MySQL open source). Nếu nâng lên VPS: ~200.000–500.000 đồng/tháng tùy nhà cung cấp.


Kết luận

Bài tập lớn "Phân tích thiết kế hệ thống quản lý khách sạn" của nhóm sinh viên Trường Đại học Công nghệ Đông Á đã hoàn thành đầy đủ chu trình phát triển hệ thống thông tin: từ khảo sát thực trạng bằng phỏng vấn và quan sát thực tế, xác định 22 ca sử dụng trong 5 module nghiệp vụ, thiết kế hệ thống bằng bộ biểu đồ UML đầy đủ (DFD 3 mức, Use Case, Activity Diagram, State Diagram, Sequence Diagram, Collaboration Diagram), đến triển khai thực tế bằng PHP và MySQL trên nền tảng XAMPP.

Giá trị cốt lõi của dự án nằm ở tính thực tiễn cao — được xây dựng dựa trên nghiên cứu thực tế tại khách sạn HAPPY và hướng đến giải quyết bài toán số hóa quản lý vận hành cho các khách sạn vừa và nhỏ tại Việt Nam. Hệ thống thay thế hoàn toàn quy trình thủ công Excel/sổ sách, rút ngắn thời gian xử lý nghiệp vụ đáng kể và loại bỏ rủi ro mất mát, sai lệch dữ liệu.

Hướng phát triển tiếp theo tập trung vào tích hợp thanh toán trực tuyến, áp dụng AI cho dự báo và tối ưu hóa, đồng thời nâng cấp bảo mật để đáp ứng tiêu chuẩn triển khai thương mại.