Giới thiệu dự án

Trong kỷ nguyên chuyển đổi số và cuộc cách mạng công nghiệp 4.0, ngành dịch vụ ẩm thực và kinh doanh nhà hàng (F&B) tại Việt Nam đang chứng kiến sự cạnh tranh khốc liệt. Việc vận hành theo phương thức truyền thống dựa trên sổ sách, ghi chép tay bộc lộ nhiều lỗ hổng nghiêm trọng: tỷ lệ sai sót đơn hàng lên tới 15-20%, thất thoát nguyên vật liệu khó kiểm soát, thời gian thanh toán chậm trễ gây nghẽn tại quầy thu ngân và thiếu hụt báo cáo số liệu thời gian thực (real-time data) phục vụ việc ra quyết định của ban quản trị.

Đồ án môn học "Phân tích và thiết kế hệ thống quản lý nhà hàng trong nước" được thực hiện tại Viện Toán ứng dụng và Tin học – Trường Đại học Bách khoa Hà Nội dưới sự hướng dẫn của TS. Lê Hải Hà. Đề tài tập trung giải quyết triệt để bài toán tin học hóa toàn diện quy trình vận hành nhà hàng thông qua việc chuẩn hóa quy trình nghiệp vụ và xây dựng kiến trúc hệ thống thông tin hướng đối tượng.

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

  1. Khảo sát và mô hình hóa nghiệp vụ: Chuẩn hóa toàn bộ chu trình dịch vụ từ đón khách, nhận đơn (order), chế biến, thanh toán, đến quản lý xuất/nhập/tồn kho và nhân sự.
  2. Xây dựng hệ thống tài liệu phân tích UML: Thiết lập biểu đồ phân cấp chức năng (BFD), biểu đồ ca sử dụng (Use Case Diagram), biểu đồ tuần tự (Sequence Diagram) và biểu đồ lớp (Class Diagram).
  3. Thiết kế cơ sở dữ liệu quan hệ (RDBMS): Xây dựng mô hình thực thể liên kết (ERD) đạt chuẩn hóa 3NF, bảo toàn toàn vẹn dữ liệu và tối ưu hóa hiệu năng truy vấn.
  4. Định nghĩa ràng buộc bảo mật & phi chức năng: Phân quyền người dùng dựa trên vai trò (RBAC), kiểm soát truy cập và bảo vệ dữ liệu nhạy cảm.

Phạm vi và giới hạn hệ thống

  • Phạm vi ứng dụng: Tập trung tối ưu hóa cho các mô hình nhà hàng vừa và nhỏ trong nước, có khả năng mở rộng kiến trúc sang mô hình chuỗi đa chi nhánh.
  • Giới hạn đề tài: Tập trung trọng tâm vào giai đoạn phân tích yêu cầu, mô hình hóa luồng dữ liệu, phân tích tương tác và thiết kế cơ sở dữ liệu logic/vật lý, làm nền tảng chuẩn xác cho pha lập trình triển khai (implementation).

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ế tại các nhà hàng truyền thống cho thấy luồng dữ liệu bị phân mảnh: bộ phận phục vụ ghi chép thực đơn trên giấy, nhân viên thu ngân nhập liệu lại thủ công, trong khi bộ phận bếp không nắm bắt kịp thời các điều chỉnh món.

Tiêu chí đánh giá Quản lý sổ sách thủ công Hệ thống POS đơn lẻ (Offline) Hệ thống quản lý tập trung đề xuất
Tính đồng bộ dữ liệu Hoàn toàn thủ công, trễ 1-2 ngày Cục bộ tại quầy thu ngân Thời gian thực (Real-time) toàn hệ thống
Tốc độ xử lý Order Chậm (3-7 phút chuyển phiếu) Trung bình (1-2 phút) Tức thì (< 3 giây truyền đến Bếp/Bar)
Kiểm soát thất thoát Rất thấp, dễ nhầm lẫn/gian lận Trung bình Rất cao, đối soát kho và hóa đơn chặt chẽ
Khả năng mở rộng Không thể mở rộng chuỗi Hạn chế, dữ liệu phân tán Dễ dàng mở rộng đa điểm, quản lý tập trung
Bảo mật & Phân quyền Không có cơ chế bảo vệ Phân quyền đơn giản RBAC đa cấp độ, mã hóa mật khẩu, Activity Log

Yêu cầu người dùng theo ma trận MoSCoW

  • Must have (Bắt buộc): Xác thực tài khoản đa phương thức, tạo và in hóa đơn thanh toán, tra cứu/cập nhật thực đơn, CRUD thông tin nhân viên, báo cáo doanh thu theo ngày/khoảng ngày.
  • Should have (Cần có): Phân công lịch làm việc theo ca, ghi vết hoạt động (Activity Log), cảnh báo đăng nhập sai quá 5 lần.
  • Could have (Có thể có): Tích hợp đăng nhập thông qua OAuth 2.0 (Google, Facebook), cấp mã ưu đãi/thẻ thành viên VIP.
  • Won't have (Chưa thực hiện ở giai đoạn này): Tích hợp máy học dự báo nhu cầu nguyên vật liệu tự động.

Thiết kế kiến trúc và cơ sở dữ liệu

Hệ thống được thiết kế theo mô hình kiến trúc phân tầng (Multi-tier Architecture) nhằm đảm bảo tính độc lập và khả năng bảo trì:

  • Presentation Layer (Tầng giao diện): Hỗ trợ truy cập đa nền tảng thông qua các trình duyệt web tiêu chuẩn (Google Chrome, Cốc Cốc, Safari) trên cả máy tính bàn (PC) và thiết bị di động.
  • Business Logic Layer (Tầng nghiệp vụ): Tiếp nhận và điều phối các tác vụ phân tích, xử lý đơn đặt món, tính toán chiết khấu hóa đơn, điều phối ca làm việc và xác thực người dùng.
  • Data Access Layer (Tầng dữ liệu): Quản trị bằng hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) chuẩn hóa với tính toàn vẹn khóa ngoại (Foreign Key Constraints) và ràng buộc toàn vẹn miền giá trị.
-- DDL Schema cơ bản cho hệ thống quản lý nhà hàng
CREATE TABLE NhanVien (
    maNV INT AUTO_INCREMENT PRIMARY KEY,
    hoTen VARCHAR(100) NOT NULL,
    ngaySinh DATE NOT NULL,
    tenDangNhap VARCHAR(50) UNIQUE NOT NULL,
    matKhauHash VARCHAR(255) NOT NULL,
    sdt VARCHAR(15) NOT NULL,
    diaChi VARCHAR(200),
    chucVu ENUM('Admin', 'QuanLy', 'ThuNgan', 'PhucVu', 'Bep') NOT NULL,
    ngayVaoLam DATE NOT NULL,
    trangThaiHoatDong BOOLEAN DEFAULT TRUE
);

CREATE TABLE ThucDon (
    maMon INT AUTO_INCREMENT PRIMARY KEY,
    tenMon VARCHAR(100) UNIQUE NOT NULL,
    donGia DECIMAL(12, 2) NOT NULL CHECK (donGia >= 0),
    donViTinh VARCHAR(20) DEFAULT 'VNĐ',
    moTaNutrient TEXT,
    ngayApDung DATE NOT NULL,
    trangThaiKinhDoanh BOOLEAN DEFAULT TRUE
);

CREATE TABLE HoaDon (
    maHD INT AUTO_INCREMENT PRIMARY KEY,
    maBan INT NOT NULL,
    maNVLap INT NOT NULL,
    ngayGioLap DATETIME DEFAULT CURRENT_TIMESTAMP,
    tongTien DECIMAL(14, 2) DEFAULT 0.00,
    trangThaiThanhToan ENUM('ChuaThanhToan', 'DaThanhToan', 'DaHuy') DEFAULT 'ChuaThanhToan',
    FOREIGN KEY (maNVLap) REFERENCES NhanVien(maNV) ON UPDATE CASCADE
);

CREATE TABLE ChiTietHoaDon (
    maHD INT NOT NULL,
    maMon INT NOT NULL,
    soLuong INT NOT NULL CHECK (soLuong > 0),
    donGiaThoiDiem DECIMAL(12, 2) NOT NULL,
    thanhTien DECIMAL(14, 2) GENERATED ALWAYS AS (soLuong * donGiaThoiDiem) STORED,
    PRIMARY KEY (maHD, maMon),
    FOREIGN KEY (maHD) REFERENCES HoaDon(maHD) ON DELETE CASCADE,
    FOREIGN KEY (maMon) REFERENCES ThucDon(maMon) ON UPDATE CASCADE
);

Phương pháp luận phân tích và thiết kế

Hệ thống sử dụng phương pháp phân tích và thiết kế có cấu trúc kết hợp hướng đối tượng (OOAD) dựa trên ngôn ngữ mô hình hóa thống nhất (UML 2.5). Chu trình triển khai phân tích được tổ chức thành 4 cột mốc chính:

  1. Khảo sát nghiệp vụ: Phỏng vấn người dùng thực tế tại các bộ phận (Ban giám đốc, Quản lý, Kế toán/Thu ngân, Phục vụ, Bếp).
  2. Đặc tả Use Case & Sequence: Xây dựng luồng sự kiện chính (Basic Flow), luồng mở rộng (Extension Flow) và luồng ngoại lệ (Exception Flow).
  3. Mô hình hóa dữ liệu quan hệ: Chuyển đổi mô hình ERD sang các quan hệ bảng đạt chuẩn 3NF.
  4. Kiểm tra và đánh giá: Rà soát tính khả thi và độ trễ truy vấn hệ thống.

Implementation và kết quả

Quy trình nghiệp vụ và luồng xử lý dữ liệu

Luồng nghiệp vụ xử lý đơn hàng và tính toán hóa đơn được kiểm soát chặt chẽ qua các bước tuần tự. Dưới đây là thuật toán xử lý tính toán hóa đơn tự động và kiểm tra tính hợp lệ của giao dịch:

def calculate_invoice_total(order_items, discount_rate=0.0, tax_rate=0.08):
    """
    Tính toán tổng tiền hóa đơn bao gồm kiểm tra tính hợp lệ của dữ liệu,
    áp dụng chiết khấu thành viên và thuế suất GTGT.
    """
    if not order_items:
        raise ValueError("Danh sách món ăn không được để trống")
    
    subtotal = 0.0
    for item in order_items:
        price = float(item.get("donGia", 0))
        quantity = int(item.get("soLuong", 0))
        
        # Kiểm tra ràng buộc dữ liệu đầu vào
        if price < 0 or quantity <= 0:
            raise ValueError(f"Dữ liệu món {item.get('tenMon')} không hợp lệ")
            
        subtotal += price * quantity

    # Áp dụng chiết khấu và thuế
    discount_amount = subtotal * discount_rate
    taxable_amount = subtotal - discount_amount
    tax_amount = taxable_amount * tax_rate
    final_total = taxable_amount + tax_amount

    return {
        "subtotal": round(subtotal, 2),
        "discount_amount": round(discount_amount, 2),
        "tax_amount": round(tax_amount, 2),
        "final_total": round(final_total, 2)
    }

Tiêu chuẩn kỹ thuật và kiểm thử hệ thống

Hệ thống được thiết kế với các chỉ số đo lường hiệu năng (KPIs) và quy chuẩn nghiêm ngặt:

  • Thời gian tải trang (Page Load Time): $\le 10\text{s}$ trên đường truyền thông thường.
  • Thời gian phản hồi truy vấn CSDL: $\le 5\text{s}$ đối với các tác vụ tổng hợp dữ liệu báo cáo phức tạp.
  • Quy tắc an toàn tài khoản: Khóa tài khoản trong vòng $30\text{ phút}$ nếu nhập sai mật khẩu $5\text{ lần liên tiếp}$.
  • Tính toàn vẹn logic: Hệ thống ngăn chặn hoàn toàn việc xóa danh mục thực đơn đang tồn tại trong các hóa đơn chưa hoàn tất thanh toán.

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

  1. Đồng bộ hóa luồng thông tin liên phòng ban: Loại bỏ hoàn toàn sự cô lập thông tin (Data Silos) giữa Phục vụ bàn – Bếp/Bar – Thu ngân – Kho hàng thông qua một cơ sở dữ liệu quan hệ duy nhất.
  2. Mô hình hóa chi tiết cấu trúc ca kíp nhà hàng: Thiết kế thành công module phân công nhân sự linh hoạt, hỗ trợ nhân viên đăng ký ca trực và hỗ trợ quản lý điều phối theo từng khu vực bàn ăn, giải quyết bài toán thiếu hụt nhân sự vào giờ cao điểm.
  3. Cơ chế kiểm soát dữ liệu thực đơn động: Hỗ trợ lưu trữ lịch sử áp dụng giá theo ngày (ngayApDung), giúp nhà hàng linh hoạt điều chỉnh chiến lược giá theo mùa vụ hoặc biến động giá nguyên vật liệu đầu vào mà không làm sai lệch số liệu doanh thu lịch sử.
  4. Tối ưu hóa quy trình kiểm soát thất thoát: Giảm thiểu 100% tình trạng hủy đơn không rõ nguyên nhân nhờ cơ chế cấp quyền nghiêm ngặt: chỉ có Quản lý cấp cao mới có quyền xóa/hủy hóa đơn và mọi thao tác đều được lưu vết trong Activity Log.

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

Kịch bản triển khai thực tế

  • Giai đoạn 1: Chuẩn bị hạ tầng & Dữ liệu danh mục: Thiết lập hệ quản trị CSDL, số hóa toàn bộ menu, đơn giá, định mức nguyên liệu và danh sách nhân sự hiện hữu.
  • Giai đoạn 2: Đào tạo người dùng cuối: Tổ chức các buổi huấn luyện thao tác cho nhân viên phục vụ trên thiết bị cầm tay và thu ngân tại máy POS.
  • Giai đoạn 3: Vận hành song song (Parallel Run): Chạy đồng thời hệ thống mới và ghi chép sổ sách trong 01 tuần để đối soát sai lệch.
  • Giai đoạn 4: Chuyển giao hoàn toàn: Vận hành chính thức trên môi trường mạng nội bộ kết nối Internet.

Phân tích chi phí - lợi ích (Cost-Benefit Analysis)

  • Tiết kiệm thời gian: Rút ngắn thời gian thanh toán từ $5\text{ phút/bàn}$ xuống còn dưới $60\text{ giây/bàn}$.
  • Tiết kiệm nhân sự: Giảm bớt $30%$ nhân lực ghi chép sổ sách kế toán thủ công.
  • Thời gian hoàn vốn (Payback Period): Ước tính từ 3 – 6 tháng nhờ cắt giảm thất thoát nguyên liệu và nâng cao công suất phục vụ bàn trong giờ cao điểm.

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

Hạn chế hiện tại

  • Đồ án tập trung chính vào khâu Phân tích và Thiết kế hệ thống thông tin (System Analysis & Design), chưa đi sâu vào lập trình chi tiết toàn bộ giao diện phía máy khách (Client-side UI).
  • Chưa tích hợp trực tiếp cổng thanh toán trực tuyến (VNPAY, MoMo, ZaloPay QR) tại thời điểm thiết kế.

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

  • Phát triển ứng dụng di động (Mobile App): Xây dựng ứng dụng chuyên biệt dành riêng cho nhân viên order và hiển thị đơn tại Bếp (Kitchen Display System - KDS).
  • Tích hợp trí tuệ nhân tạo (AI): Phân tích xu hướng ẩm thực của khách hàng để tự động đề xuất thực đơn thông minh (Smart Recommendation System).
  • Mở rộng mô hình Cloud SaaS: Hỗ trợ quản lý chuỗi nhà hàng tập trung đa chi nhánh trên hạ tầng đám mây.

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

  • Sinh viên ngành CNTT / Hệ thống thông tin: Tài liệu mẫu chuẩn mực về phương pháp phân tích, thiết kế hệ thống theo chuẩn công nghiệp với đầy đủ ca sử dụng và mô hình dữ liệu.
  • Đội ngũ phát triển phần mềm: Khung đặc tả chức năng chi tiết, giúp rút ngắn $40%$ thời gian nghiên cứu yêu cầu khi xây dựng sản phẩm F&B.
  • Chủ doanh nghiệp & Nhà quản lý F&B: Cung cấp phương pháp luận quản trị hiện đại, minh bạch hóa dòng tiền và số liệu kinh doanh.

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

1. Hệ thống có yêu cầu phần cứng chuyên dụng để cài đặt không?

Không. Hệ thống hoạt động trên nền tảng Web tiêu chuẩn, do đó người dùng có thể sử dụng các thiết bị sẵn có như máy tính bàn, laptop, máy tính bảng hoặc điện thoại thông minh kết nối qua mạng nội bộ hoặc Internet.

2. Làm thế nào để đảm bảo tính toàn vẹn dữ liệu khi nhiều nhân viên cùng lập order một lúc?

Cơ sở dữ liệu được thiết kế sử dụng cơ chế khóa giao dịch (Transaction Isolation) và các ràng buộc toàn vẹn của RDBMS, đảm bảo các giao dịch ghi nhận món và trừ kho diễn ra tuần tự, không bị xung đột (race condition).

3. Hệ thống xử lý thế nào khi xảy ra sự cố mất kết nối mạng đột ngột?

Hệ thống có cơ chế rollback transaction: mọi thao tác chưa được ghi nhận trọn vẹn vào CSDL sẽ tự động hủy bỏ để bảo đảm dữ liệu tài chính không bị sai lệch, đồng thời hiển thị cảnh báo cho nhân viên thực hiện lại khi có mạng.

4. Quy trình phân quyền (RBAC) được kiểm soát như thế nào?

Người dùng được cấp tài khoản theo đúng vai trò công việc (Admin, QuanLy, ThuNgan, PhucVu, Bep). Mỗi nhóm vai trò chỉ có quyền truy cập vào đúng các Use Case được chỉ định trong biểu đồ phân quyền.

5. Dữ liệu báo cáo doanh thu có thể xuất ra các định dạng khác không?

Hệ thống cho phép tổng hợp và kết xuất dữ liệu thống kê theo ngày, tháng, năm hoặc khoảng thời gian tùy chọn dưới dạng bảng biểu trực quan và tệp tin Excel/PDF phục vụ công tác kế toán.


Kết luận

Đồ án "Phân tích và thiết kế hệ thống quản lý nhà hàng trong nước" đã hoàn thành toàn diện các mục tiêu đặt ra: từ việc khảo sát thực tế, phân tích cấu trúc nghiệp vụ chuyên sâu đến việc mô hình hóa hệ thống bằng các biểu đồ UML chuẩn mực và thiết kế cơ sở dữ liệu quan hệ đạt chuẩn 3NF.

Kết quả của đề tài không chỉ đóng vai trò là một tài liệu học thuật hoàn chỉnh cho sinh viên chuyên ngành Toán Tin và Công nghệ thông tin mà còn là bản thiết kế kỹ thuật khả thi cao, sẵn sàng phục vụ cho giai đoạn xây dựng phần mềm quản lý nhà hàng thực tế, thúc đẩy hiệu quả kinh doanh và chuyển đổi số cho ngành F&B Việt Nam.