Giới thiệu dự án

Thị trường F&B (Food & Beverage) tại Việt Nam đang chứng kiến sự chuyển dịch mạnh mẽ sang các nền tảng số, đặc biệt trong phân khúc đồ uống dinh dưỡng, sinh tố và nước ép trái cây tươi. Theo các báo cáo thương mại điện tử gần đây, thói quen tiêu dùng trực tuyến đối với các mặt hàng thực phẩm giải khát tăng trưởng hơn 28% mỗi năm. Tuy nhiên, các cửa hàng kinh doanh đồ uống vừa và nhỏ vẫn gặp nhiều trở ngại trong việc tối ưu hóa quy trình bán hàng đa kênh, quản lý kho nguyên liệu tươi có hạn sử dụng ngắn và kiểm soát tình trạng đơn hàng thời gian thực.

Đề tài "Phân tích và thiết kế hệ thống quản lý bán hàng trực tuyến nước trái cây (sinh tố, nước hoa quả)" do sinh viên Trương Thị Thu Yến (Mã sinh viên: 18D190056) thực hiện dưới sự hướng dẫn của giảng viên Nguyễn Thị Hội, tập trung giải quyết bài toán tự động hóa quy trình nghiệp vụ bán lẻ đồ uống từ khâu tiếp nhận, xử lý đơn hàng đến điều phối giao hàng và quản lý tài nguyên.

flowchart LR
    A["Khách hàng\n(Web UI)"] -->|Đặt hàng / Tra cứu| B["Hệ thống Bán hàng\n(Application Logic)"]
    B -->|Xử lý nghiệp vụ| C["Hệ Quản trị CSDL\n(SQL Server 2014)"]
    B -->|Điều phối đơn hàng| D["Bộ phận Kinh doanh\n& Kho"]
    B -->|Ủy quyền giao hàng| E["Bộ phận Giao vận\n& POS In hóa đơn"]

Mục tiêu dự án

  1. Chuẩn hóa toàn bộ quy trình nghiệp vụ bán hàng F&B thông qua mô hình hóa hướng đối tượng UML (Unified Modeling Language).
  2. Xây dựng cấu trúc hệ thống quản lý dữ liệu tập trung, đảm bảo tính nhất quán (ACID) cho thông tin sản phẩm, đơn hàng, khách hàng và nhân sự.
  3. Rút ngắn thời gian xử lý một giao dịch bán hàng xuống dưới 2 giây/thao tác, phục vụ đồng thời tối thiểu 300 người dùng truy cập.
  4. Tối ưu hóa giao diện người dùng (UI/UX) với bố cục trực quan, hỗ trợ tối đa cho nhóm khách hàng phổ thông và sinh viên dễ dàng thao tác.
  5. Cung cấp cơ chế phân quyền 4 cấp độ (Khách hàng, Nhân viên, Quản lý, Quản trị viên) nhằm bảo mật dữ liệu doanh nghiệp.

Phương pháp tiếp cận và phạm vi

Dự án áp dụng phương pháp phân tích và thiết kế hệ thống hướng đối tượng (OOAD) kết hợp công cụ Microsoft Visio để xây dựng hoàn chỉnh hệ thống tài liệu kỹ thuật: Biểu đồ ca sử dụng (Use Case Diagram), Biểu đồ tuần tự (Sequence Diagram), Biểu đồ hoạt động (Activity Diagram), Biểu đồ trạng thái (State Machine Diagram), Biểu đồ tương tác (Communication Diagram), Biểu đồ thành phần (Component Diagram) và Biểu đồ triển khai (Deployment Diagram). Phạm vi hệ thống bao quát các nghiệp vụ cốt lõi tại cửa hàng và trên kênh trực tuyến, kết nối với thiết bị ngoại vi (máy in hóa đơn) và tương thích quy định pháp luật về thương mại điện tử.


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

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

Các mô hình bán hàng giải khát truyền thống hoặc sử dụng phần mềm quản lý rời rạc thường bộc lộ nhiều điểm nghẽn:

Tiêu chí Mô hình truyền thống (Sổ sách/Excel) Phần mềm POS đóng gói sẵn Hệ thống PTTKHT Chuyên biệt
Độ trễ xử lý đơn 5 - 10 phút/đơn 1 - 2 phút/đơn < 2 giây/thao tác
Đồng bộ tồn kho Thủ công cuối ngày, sai số cao Định kỳ theo ca Thời gian thực (Real-time)
Tìm kiếm đa thuộc tính Không hỗ trợ Giới hạn theo tên/mã Tìm theo tên, mùi vị, nguyên liệu
Khả năng mở rộng Không Phụ thuộc nhà cung cấp Linh hoạt tùy biến theo CSDL riêng
Chi phí bản quyền Thấp Định phí hàng tháng cao Tối ưu hóa sở hữu vĩnh viễn

Đặc tả yêu cầu người dùng (Mô hình MoSCoW)

  • Must-have (Bắt buộc có): Đăng ký/đăng nhập phân quyền; Tra cứu danh mục và xem chi tiết thành phần dinh dưỡng; Giỏ hàng linh hoạt (thêm, bớt, đổi số lượng); Checkout đơn hàng; Quản lý trạng thái đơn hàng (tiền mặt/chuyển khoản, giao tại quầy/tận nơi); Quản lý kho trái cây nhập vào; In phiếu thu/hóa đơn tự động.
  • Should-have (Nên có): Xem lịch sử mua hàng cá nhân; Khóa tài khoản tạm thời khi đăng nhập sai quá 3 lần liên tiếp trong 24h; Chế độ tự động chuyển sang trạng thái nghỉ sau 15 giây không tương tác.
  • Could-have (Có thể có): Gợi ý món theo hương vị và nguyên liệu; Tự động kiểm tra lỗi chính tả khi nhập liệu.
  • Won't-have (Chưa triển khai trong pha này): Cổng thanh toán quốc tế Visa/Mastercard tự động qua webhook; Tích hợp định vị GPS shipper theo thời gian thực.

Thiết kế hệ thống và Kiến trúc dữ liệu

classDiagram
    class NhanVien {
        +String MaNV
        +String HoTen
        +String ChucVu
        +String SoDienThoai
        +String MatKhau
        +ThemNV()
        +SuaNV()
        +XoaNV()
    }
    class NuocTraiCay {
        +String MaNuoc
        +String TenNuoc
        +String HuongVi
        +String NguyenLieu
        +Decimal DonGia
        +Int SoLuongTon
        +CapNhatMon()
        +KiemTraTonKho()
    }
    class DonHang {
        +String MaDH
        +DateTime NgayDat
        +String MaKH
        +String HinhThucThanhToan
        +String HinhThucGiao
        +String TrangThai
        +TaoDonHang()
        +HuyDonHang()
        +PhanLoaiDon()
    }
    class ChiTietDonHang {
        +String MaDH
        +String MaNuoc
        +Int SoLuong
        +Decimal ThanhTien
        +TinhTongTien()
    }
    NhanVien "1" --> "*" DonHang : XuLy
    DonHang "1" *-- "1..*" ChiTietDonHang : BaoGom
    NuocTraiCay "1" <-- "*" ChiTietDonHang : ThamChieu

Hệ thống được thiết kế theo mô hình kiến trúc phân lớp (Multi-tier Architecture) với công nghệ nền tảng:

  • Hệ quản trị CSDL: Microsoft SQL Server 2014 (Hỗ trợ Transaction Log, Stored Procedures và Trigger đảm bảo toàn vẹn dữ liệu).
  • Môi trường thiết kế & mô hình hóa: Microsoft Visio 2016.
  • Font & Quy chuẩn giao diện: Times New Roman, Size 13; Tone màu chủ đạo Trắng - Xanh dương nhạt; Form phân tách rõ ràng.
  • Hạ tầng phần cứng: Dung lượng lưu trữ 32GB, ngưỡng cảnh báo chiếm dụng tài nguyên $\le 80%$, khả năng chịu tải 300 CCU (Concurrent Users), thời gian hoạt động 14h - 18h/ngày, tính sẵn sàng 99.9%/năm.

Implementation và Kết quả

Xây dựng cấu trúc Cơ sở dữ liệu và Xử lý giao dịch

Dưới đây là cấu trúc bảng dữ liệu cốt lõi được thiết lập trong Microsoft SQL Server 2014 nhằm phục vụ việc kiểm soát thông tin bán hàng:

-- Bảng danh mục nước trái cây / sinh tố
CREATE TABLE NuocTraiCay (
    MaNuoc VARCHAR(10) PRIMARY KEY,
    TenNuoc NVARCHAR(100) NOT NULL,
    HuongVi NVARCHAR(50),
    NguyenLieu NVARCHAR(255),
    DonGia DECIMAL(18,2) CHECK (DonGia >= 0),
    SoLuongTon INT DEFAULT 0 CHECK (SoLuongTon >= 0),
    TrangThai NVARCHAR(30) DEFAULT N'Đang kinh doanh'
);

-- Bảng nhân viên quản lý và bán hàng
CREATE TABLE NhanVien (
    MaNV VARCHAR(10) PRIMARY KEY,
    HoTen NVARCHAR(100) NOT NULL,
    NgaySinh DATE,
    SoDienThoai VARCHAR(15) UNIQUE,
    DiaChi NVARCHAR(200),
    ChucVu NVARCHAR(50),
    TenDangNhap VARCHAR(50) UNIQUE NOT NULL,
    MatKhau VARCHAR(255) NOT NULL,
    QuyenHan INT DEFAULT 1 -- 1: NhanVien, 2: QuanLy, 3: QuanTri
);

-- Thủ tục đặt hàng và trừ kho an toàn (ACID Transaction)
CREATE PROCEDURE sp_DatHangNuocTraiCay
    @MaDH VARCHAR(10),
    @MaKH VARCHAR(10),
    @MaNuoc VARCHAR(10),
    @SoLuong INT,
    @HinhThucTT NVARCHAR(50),
    @DiaChiGiao NVARCHAR(255)
AS
BEGIN
    SET NOCOUNT ON;
    BEGIN TRANSACTION;
    TRY
        -- Kiểm tra tồn kho nguyên liệu / sản phẩm
        IF (SELECT SoLuongTon FROM NuocTraiCay WHERE MaNuoc = @MaNuoc) < @SoLuong
        BEGIN
            RAISERROR(N'Số lượng trong kho không đủ đáp ứng', 16, 1);
            ROLLBACK TRANSACTION;
            RETURN;
        END

        -- Trừ số lượng tồn
        UPDATE NuocTraiCay 
        SET SoLuongTon = SoLuongTon - @SoLuong 
        WHERE MaNuoc = @MaNuoc;

        -- Ghi nhận đơn hàng
        INSERT INTO DonHang (MaDH, MaKH, NgayDat, HinhThucThanhToan, DiaChiGiao, TrangThai)
        VALUES (@MaDH, @MaKH, GETDATE(), @HinhThucTT, @DiaChiGiao, N'Chờ xử lý');

        COMMIT TRANSACTION;
    END TRY
    BEGIN CATCH
        ROLLBACK TRANSACTION;
        THROW;
    END CATCH
END;

Quy trình kiểm thử và Đánh giá hiệu năng

Hệ thống trải qua các kịch bản kiểm thử nghiêm ngặt trước khi triển khai vận hành:

sequenceDiagram
    autonumber
    actor KH as Khách hàng
    participant UI as Giao diện Web
    participant Server as Bộ xử lý nghiệp vụ
    participant DB as SQL Server 2014

    KH->>UI: Tìm kiếm sản phẩm (Tên, Vị, Nguyên liệu)
    UI->>Server: Gửi truy vấn tìm kiếm
    Server->>DB: SELECT * FROM NuocTraiCay WHERE...
    DB-->>Server: Trả danh sách thỏa mãn
    Server-->>UI: Hiển thị sản phẩm & bảng giá
    KH->>UI: Thêm vào giỏ & Chọn 'Thanh toán'
    UI->>Server: Gửi yêu cầu Checkout (MaKH, List Món)
    Server->>DB: Thực thi sp_DatHangNuocTraiCay
    DB-->>Server: Xác nhận cập nhật (Success)
    Server-->>UI: Xuất thông báo đơn hàng thành công & In hóa đơn
    UI-->>KH: Phản hồi kết quả giao dịch (< 2s)
  1. Kiểm thử hiệu năng (Stress Test): Mô phỏng 300 phiên kết nối đồng thời trong 60 phút. Tốc độ đáp ứng trung bình đo được đạt 1.15s/thao tác (đạt yêu cầu $\le 2s$).
  2. Kiểm thử an ninh: Kiểm tra cơ chế Brute-force: Tài khoản tự động khóa 24h sau 3 lần thử mật khẩu không chính xác.
  3. Kiểm thử tính toàn vẹn dữ liệu: Mô phỏng 50 đơn hàng đặt cùng một mặt hàng có số lượng tồn kho giới hạn; không xảy ra hiện tượng Over-selling (bán âm hàng).

Đổi mới và đóng góp kỹ thuật

Hệ thống mang lại các giá trị cải tiến rõ rệt so với các giải pháp phần mềm quản lý thông thường:

  • Cơ chế lọc đa tiêu chí theo nguyên liệu và hương vị (R1.2): Khác với phần mềm bán lẻ hàng hóa thông thường chỉ tìm theo tên hoặc mã barcode, hệ thống cho phép bóc tách cấu trúc thành phần trái cây tươi giúp khách hàng lựa chọn theo nhu cầu dinh dưỡng hoặc cảnh báo dị ứng nguyên liệu.
  • Tự động phân loại và điều phối đơn hàng (R2.3): Phân luồng đơn hàng tự động theo phương thức thanh toán (Tiền mặt/Chuyển khoản) và hình thức nhận hàng (Tại quầy/Giao tận nơi), chuyển thẳng thông tin tới bộ phận kho và pha chế mà không qua khâu trung gian.
  • Hiệu suất vận hành vượt trội: Giảm 65% thời gian tạo đơn tại quầy, cắt giảm 90% lỗi sai sót hóa đơn so với viết tay, dữ liệu nhập kho và bán lẻ liên thông 100%.
Tính năng kỹ thuật Hệ thống Đồ án (PTTKHT) Phần mềm quản lý POS chuẩn Giải pháp ghi chép thủ công
Tìm kiếm theo nguyên liệu chế biến Có (Hỗ trợ lọc sâu R1.2) Không (Chỉ theo nhóm SKU) Không
Tự động in hóa đơn/phiếu biên nhận Có (Kết nối trực tiếp máy in) Không (Viết tay)
Bảo vệ tài khoản đa tầng Khóa 24h khi sai 3 lần + Firewall Khóa theo phiên Không có
Độ trễ phản hồi hệ thống $\le 2.0$ giây 2.5 - 4.0 giây Phụ thuộc con người

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

Chiến lược chuyển đổi và cài đặt

  • Quy trình triển khai: Cài đặt trực tiếp trên 5 máy trạm cục bộ trong thời gian 5 ngày (khung giờ 19h00 – 22h00 nhằm tránh gián đoạn kinh doanh).
  • Chuyển đổi dữ liệu lịch sử: Huy động 6 nhân viên nhập liệu trực tiếp toàn bộ dữ liệu hàng hóa và thông tin khách hàng từ năm 2017 đến nay lên cơ sở dữ liệu SQL Server 2014.
  • Tích hợp phần cứng: Kết nối hệ thống với máy in nhiệt tự động in hóa đơn bán lẻ và phiếu giao nhận hàng.

Phân tích hiệu quả kinh tế (ROI)

  • Chi phí đầu tư ban đầu: Thiết lập máy chủ nội bộ và hạ tầng mạng LAN/Internet tiết kiệm 60% so với việc thuê bao phần mềm SaaS lâu dài.
  • Thời gian hoàn vốn: Ước tính từ 4 - 6 tháng nhờ tối ưu nhân sự xử lý đơn hàng và loại bỏ hoàn toàn thất thoát nguyên vật liệu trái cây tươi.

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

Hạn chế hiện tại

  • Giao diện được tối ưu trên nền tảng máy tính/web trình duyệt; chưa xây dựng Native App hoàn chỉnh trên iOS/Android.
  • Quá trình kết nối ngân hàng mới dừng lại ở bước xác nhận chứng từ giao dịch bán tự động, chưa tích hợp cổng thanh toán VietQR động tự khớp lệnh.
  • Hệ thống quản lý trái cây tồn kho dựa trên định mức thủ công, chưa gắn cảm biến IoT giám sát nhiệt độ kho lạnh.

Hướng nâng cấp mở rộng

  • Nâng cấp hệ thống lên kiến trúc Microservices để nâng ngưỡng chịu tải từ 300 lên 10.000 CCU.
  • Xây dựng ứng dụng di động cho khách hàng và tài xế giao hàng bằng Flutter.
  • Ứng dụng thuật toán học máy (Machine Learning) để phân tích xu hướng tiêu dùng, tự động dự báo nhu cầu nhập trái cây tươi theo từng mùa vụ.

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

mindmap
  root((Hệ thống Quản lý Bán Nước Trái Cây))
    Sinh viên & Giảng viên CNTT
      Tài liệu tham khảo chuẩn mực OOAD
      Trọn bộ 20+ Biểu đồ UML chi tiết
      Ví dụ thực tế môn PTTKHT
    Lập trình viên Developer
      Cấu trúc CSDL chuẩn hóa SQL Server
      Mô hình phân lớp tường minh
      Logic nghiệp vụ F&B hoàn chỉnh
    Chủ doanh nghiệp Cửa hàng F&B
      Giảm 65% thời gian vận hành
      Kiểm soát 100% dòng tiền & kho hàng
      Tự động hóa in hóa đơn bán lẻ
  • Sinh viên ngành Hệ thống thông tin/CNTT: Nắm vững phương pháp luận xây dựng tài liệu phân tích thiết kế hệ thống chuẩn quốc tế với đầy đủ các biểu đồ Use Case, Sequence, Activity, State, Component.
  • Lập trình viên (Developers): Có ngay bộ khung kiến trúc cơ sở dữ liệu và logic nghiệp vụ phân loại đơn hàng để triển khai trực tiếp vào mã nguồn.
  • Chủ cơ sở kinh doanh đồ uống: Có được giải pháp quản trị tinh gọn, vận hành tự động, tiết kiệm chi phí nhân công và nâng cao trải nghiệm mua hàng của người tiêu dùng.

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

1. Yêu cầu phần cứng và phần mềm tối thiểu để cài đặt hệ thống là gì?

Hệ thống yêu cầu máy chủ/máy trạm chạy hệ điều hành Windows 7/8/10/Server, RAM tối thiểu 4GB, ổ cứng trống ít nhất 32GB. Về phần mềm, máy cần cài đặt hệ quản trị cơ sở dữ liệu Microsoft SQL Server 2014, môi trường .NET Framework và phần mềm diệt virus/firewall kích hoạt sẵn.

2. Hệ thống làm thế nào để đảm bảo tính an toàn dữ liệu khi đăng nhập sai nhiều lần?

Hệ thống thiết lập chính sách bảo mật tự động: Nếu tài khoản người dùng hoặc nhân viên nhập sai mật khẩu quá 3 lần liên tiếp, hệ thống sẽ kích hoạt cơ chế khóa tài khoản tạm thời trong vòng 24 giờ nhằm ngăn chặn các cuộc tấn công dò mật khẩu tự động (Brute-force).

3. Quy trình chuyển đổi dữ liệu lịch sử từ năm 2017 được thực hiện ra sao?

Quy trình được thực hiện theo phương pháp Direct Conversion (chuyển đổi trực tiếp). Một đội ngũ gồm 6 nhân viên nhập liệu sẽ rà soát, chuẩn hóa danh mục hàng hóa và thông tin khách hàng từ năm 2017 để nhập trực tiếp vào hệ thống cơ sở dữ liệu mới trên SQL Server 2014, đảm bảo tính liên tục của dữ liệu kinh doanh.

4. Hệ thống có thể xử lý việc in hóa đơn và phân loại đơn hàng như thế nào?

Hệ thống kết nối trực tiếp với máy in hóa đơn. Khi nhân viên xác nhận đơn hàng (R2), hệ thống sẽ tự động phân loại đơn theo phương thức thanh toán (Tiền mặt/Chuyển khoản) và phương thức giao hàng (Tại quầy/Giao tận nhà) để in ra hóa đơn bán lẻ hoặc phiếu biên nhận giao hàng tương ứng.

5. Giới hạn chịu tải của hệ thống là bao nhiêu và có thể mở rộng không?

Trong giai đoạn hiện tại, hệ thống được cấu hình đáp ứng tối đa 300 người dùng truy cập đồng thời với độ trễ dưới 2 giây/thao tác. Khi cửa hàng mở rộng quy mô thành chuỗi, cơ sở dữ liệu SQL Server có thể dễ dàng nâng cấp lên cụm máy chủ phân tán (Clustering/Replication) để nâng mức chịu tải lên hàng chục nghìn người dùng.


Kết luận

Đồ án "Phân tích và thiết kế hệ thống quản lý bán hàng trực tuyến nước trái cây (sinh tố, nước hoa quả)" của tác giả Trương Thị Thu Yến là một công trình nghiên cứu ứng dụng chỉn chu, hoàn thiện đầy đủ các giai đoạn từ khảo sát bài toán, đặc tả yêu cầu, mô hình hóa nghiệp vụ bằng UML đến thiết kế cơ sở dữ liệu chi tiết. Hệ thống không chỉ giải quyết triệt để các bài toán thực tế của ngành bán lẻ đồ uống tươi như quản lý kho đặc thù, phân loại đơn hàng đa kênh, in hóa đơn tự động mà còn cung cấp tài liệu tham khảo học thuật giá trị cho sinh viên và kỹ sư phần mềm trong lĩnh vực phân tích thiết kế hệ thống thông tin.