Giới thiệu dự án
Thị trường F&B (Food and Beverage) tại Việt Nam chứng kiến sự bùng nổ mạnh mẽ của ngành trà sữa và đồ uống đóng gói, đạt quy mô doanh thu ước tính vượt 1,2 tỷ USD với tốc độ tăng trưởng kép hàng năm (CAGR) trên 15%. Tuy nhiên, việc vận hành chuỗi bán lẻ truyền thống đang đối mặt với bài toán thất thoát nguyên vật liệu, độ trễ xử lý đơn hàng giờ cao điểm và thiếu sự đồng bộ tức thời giữa cửa hàng, kho trung tâm, bộ phận pha chế và đối tác giao nhận vận tải bên thứ ba (Third-Party Logistics - 3PL như Grab, ShopeeFood).
Dự án "Phân tích, Thiết kế và Xây dựng Hệ thống Website Bán Trà Sữa Phúc Long" giải quyết triệt để bài toán tích hợp đa kênh (Omnichannel Ordering & Inventory Management). Hệ thống tối ưu hóa chuỗi cung ứng khép kín từ đặt món online, quản lý công thức định lượng (Bill of Materials - BOM), kiểm soát tồn kho động, quản trị chính sách giá linh hoạt theo thời gian đến tự động hóa quy trình nhập xuất nguyên liệu.
+-----------------------------------------------------------------------------------+
| HỆ THỐNG PHÚC LONG ONLINE |
+-----------------------------------------------------------------------------------+
| [Khách Hàng] ---> Đặt Hàng / Thanh Toán Trực Tuyến |
| | |
| v |
| [Nhân Viên Thu Ngân] ---> Duyệt Đơn / In Hóa Đơn Tự Động |
| | |
| v |
| [Nhân Viên Pha Chế] ---> Nhận Công Thức / Trừ Kho Tồn / Đóng Gói |
| | |
| v |
| [Đối Tác Vận Chuyển] ---> Tiếp Nhận Giao Hàng / Cập Nhật Trạng Thái Giao |
| ^ |
| | |
| [Quản Lý Kho & Cửa Hàng] <---> Kiểm Kê / Báo Giá Nhà Cung Cấp / Báo Cáo Doanh Thu|
+-----------------------------------------------------------------------------------+
Mục tiêu dự án
- Chuẩn hóa kiến trúc thông tin: Xây dựng mô hình phân tích hệ thống hoàn chỉnh theo chuẩn UML (Unified Modeling Language), bao gồm Use Case, Activity Diagram, Sequence Diagram, State Machine Diagram và Lược đồ quan hệ thực thể (ERD).
- Số hóa toàn diện quy trình nghiệp vụ: Tự động hóa 100% quy trình bán hàng, từ tiếp nhận giỏ hàng, xác thực thanh toán điện tử, phân phối lệnh pha chế theo công thức định lượng, đến quản lý vòng đời phiếu nhập/đơn đặt hàng từ Nhà cung cấp (NCC).
- Quản trị giá và chiết khấu thông minh: Thiết lập cơ chế bảng giá động (
BangGia, CT_BangGia) áp dụng theo từng khung thời gian, kết hợp hệ thống mã khuyến mãi (Voucher) chiết khấu trực tiếp theo tỷ lệ phần trăm hoặc số tiền cố định.
- Đảm bảo tính toàn vẹn và chịu tải: Xây dựng hệ thống trên nền tảng kiến trúc 3 tầng (3-Tier Architecture), đáp ứng thời gian phản hồi dưới 2 giây với độ sẵn sàng cao.
Phạm vi và giới hạn
- Phạm vi nghiệp vụ: Áp dụng cho chuỗi vận hành điểm bán lẻ Phúc Long Coffee & Tea, bao gồm 10 phân hệ chức năng tương ứng với 6 nhóm tác nhân chính (Khách hàng, Nhân viên duyệt đơn, Nhân viên pha chế, Quản lý kho, Quản lý cửa hàng, Quản trị viên hệ thống - Admin) và 2 nhóm đối tác ngoài (Nhà cung cấp, Đơn vị vận chuyển).
- Giới hạn hệ thống: Hệ thống tập trung vào kiến trúc Web Application và RESTful API, mô phỏng cổng thanh toán trực tuyến qua giao thức HTTP/HTTPS và tích hợp dịch vụ bưu chính/vận chuyển qua API giả lập.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
| Tiêu chí phân tích |
Hệ thống truyền thống (POS Offline) |
Ứng dụng giao đồ ăn bên thứ ba |
Giải pháp Website Phúc Long Online |
| Quyền sở hữu dữ liệu khách hàng |
Không lưu trữ hành vi người dùng |
Thuộc quyền kiểm soát của sàn |
Toàn quyền kiểm soát và tích điểm trung thành (DiemTichLuy) |
| Quản lý công thức định lượng (BOM) |
Thủ công, kiểm kê cuối tháng |
Không hỗ trợ |
Trừ tồn kho tự động theo chi tiết sản phẩm - size (CT_SanPham_Size, CongThuc) |
| Chính sách giá đa tầng |
Cố định theo máy POS |
Cố định theo menu cài sẵn |
Cấu hình động theo ngày áp dụng (BangGia, CT_BangGia) |
| Chi phí hoa hồng vận hành |
0% (nhưng tốn nhân sự) |
20% - 30% trên mỗi đơn hàng |
0% phí hoa hồng, tự chủ hệ thống phân phối |
| Tích hợp kho & NCC |
Tách rời, dùng sổ sách/Excel |
Không tích hợp |
Đồng bộ khép kín: Yêu cầu đặt -> Báo giá -> Nhập kho |
Phân loại yêu cầu theo mô hình MoSCoW
- Must-have (Bắt buộc phải có): Đăng nhập/Đăng ký xác thực 2 bước; Quản lý giỏ hàng và đặt món đa size; Duyệt đơn và in bill; Định lượng trừ kho tự động khi pha chế; Quản lý tài khoản và phân quyền Admin.
- Should-have (Nên có): Quản lý bảng giá linh hoạt theo thời điểm; Áp dụng mã Voucher; Quản lý quy trình nhập nguyên liệu (Đơn đặt -> Báo giá NCC -> Phiếu nhập); Báo cáo doanh thu theo mốc thời gian.
- Could-have (Có thể có): Cơ chế hoàn tiền tự động khi hủy đơn trực tuyến; Tích hợp cổng thanh toán ví điện tử/thẻ ngân hàng; Tích lũy điểm thưởng thành viên.
- Won't-have (Tạm thời chưa phát triển): Tính năng định vị đơn hàng theo thời gian thực (GPS live tracking); Tích hợp AI dự đoán sức mua nguyên liệu theo mùa vụ.
Thiết kế hệ thống
Hệ thống được thiết kế theo Kiến trúc 3 tầng (3-Tier Architecture), phân tách rạch ròi giữa giao diện người dùng, xử lý logic nghiệp vụ và tầng lưu trữ dữ liệu.
+-------------------------------------------------------------------------+
| PRESENTATION TIER (Web Client) |
| HTML5 / CSS3 / JavaScript ES6+ / Bootstrap 5.3 Framework |
+-------------------------------------------------------------------------+
| (HTTPS / JSON REST API)
v
+-------------------------------------------------------------------------+
| APPLICATION TIER (Business Rules) |
| ASP.NET Core Web API 8.0 / Java Spring Boot 3.2 (C# / Java Backend) |
| - Authentication & Authorization Middleware (RBAC) |
| - Order Processing Service & Pricing Calculation Engine |
| - Recipe Formulation & Automated Inventory Deduction Engine |
+-------------------------------------------------------------------------+
| (ADO.NET / Entity Framework Core)
v
+-------------------------------------------------------------------------+
| DATA TIER (Database Server) |
| Microsoft SQL Server 2022 / Azure SQL Database |
| - 21 Normalized Relational Tables (3NF) |
| - ACID Transactions, Constraints, Triggers & Stored Procedures |
+-------------------------------------------------------------------------+
Ngăn xếp công nghệ (Technology Stack)
- Frontend: Bootstrap v5.3.2, JavaScript (ES6+), HTML5/CSS3, Responsive Grid System.
- Backend: C# với ASP.NET Core Web API 8.0 hoặc Java 17 với Spring Boot v3.2.1.
- Cơ sở dữ liệu: Microsoft SQL Server 2022 (Enterprise/Developer Edition).
- Hạ tầng đóng gói: Docker Engine v24.0.7, Dockerfile, Container Registry.
Thiết kế cơ sở dữ liệu quan hệ (Database Schema)
Cơ sở dữ liệu được chuẩn hóa ở dạng chuẩn 3 (3NF) với 21 thực thể liên kết chặt chẽ qua hệ thống khóa chính và khóa ngoại:
-- DDL Trích xuất các bảng cốt lõi trong hệ thống
CREATE TABLE Quyen (
IdQuyen INT PRIMARY KEY,
ChucVu NVARCHAR(20) NOT NULL,
CapDo INT DEFAULT 1
);
CREATE TABLE Taikhoan (
TenDangNhap NVARCHAR(50) PRIMARY KEY,
MatKhau NVARCHAR(255) NOT NULL,
TrangThai INT NOT NULL DEFAULT 1, -- 1: Hoạt động, 0: Khóa
IdQuyen INT NOT NULL FOREIGN KEY REFERENCES Quyen(IdQuyen)
);
CREATE TABLE SanPham (
IdSanPham INT IDENTITY(1,1) PRIMARY KEY,
TenSanPham NVARCHAR(100) NOT NULL UNIQUE,
HinhAnh NVARCHAR(255) NULL,
CachPhaChe NVARCHAR(MAX) NOT NULL,
IdLoaiSanPham INT NOT NULL
);
CREATE TABLE Size (
IdSize INT IDENTITY(1,1) PRIMARY KEY,
TenSize NVARCHAR(10) NOT NULL
);
CREATE TABLE CT_SanPham_Size (
IdSanPhamSize INT IDENTITY(1,1) PRIMARY KEY,
IdSize INT NOT NULL FOREIGN KEY REFERENCES Size(IdSize),
IdSanPham INT NOT NULL FOREIGN KEY REFERENCES SanPham(IdSanPham),
GiaHienThoi FLOAT NOT NULL,
CONSTRAINT UQ_SP_Size UNIQUE(IdSize, IdSanPham)
);
CREATE TABLE NguyenLieu (
IdNguyenLieu INT IDENTITY(1,1) PRIMARY KEY,
TenNguyenLieu NVARCHAR(100) NOT NULL,
HinhAnh NVARCHAR(255) NULL,
SoLuong FLOAT NOT NULL CHECK (SoLuong >= 0)
);
CREATE TABLE CongThuc (
IdCongThuc INT IDENTITY(1,1) PRIMARY KEY,
IdSanPhamSize INT NOT NULL FOREIGN KEY REFERENCES CT_SanPham_Size(IdSanPhamSize),
IdNguyenLieu INT NOT NULL FOREIGN KEY REFERENCES NguyenLieu(IdNguyenLieu),
SoLuong FLOAT NOT NULL,
DonVi NVARCHAR(20) NOT NULL,
CONSTRAINT UQ_CongThuc UNIQUE(IdSanPhamSize, IdNguyenLieu)
);
Thiết kế RESTful API
POST /api/v1/auth/login: Xác thực tài khoản người dùng, trả về Session/JWT token và quyền hạn (IdQuyen).
GET /api/v1/products?categoryId={id}&keyword={query}: Tìm kiếm danh sách món và kích cỡ đính kèm.
POST /api/v1/orders/checkout: Tạo đơn hàng mới, kiểm tra tồn kho và khởi tạo phiên thanh toán.
PUT /api/v1/orders/{orderId}/status: Cập nhật trạng thái đơn hàng (Duyệt đơn -> Pha chế -> Hoàn thành -> Giao hàng).
POST /api/v1/inventory/purchase-orders: Quản lý kho tạo đơn đặt nguyên liệu gửi đến Nhà cung cấp.
Phương pháp luận phát triển (Methodology)
Dự án áp dụng mô hình phát triển Agile Scrum với các chu kỳ lặp (sprint) kéo dài 2 tuần, đảm bảo khả năng bàn giao sản phẩm liên tục và kiểm soát rủi ro.
+-----------------------------------------------------------------------------+
| Tuần 1 - 2: Phân tích yêu cầu, Mô hình hóa BPMN & Thiết kế Use Case/Class |
| Tuần 3 - 4: Thiết kế CSDL (3NF), Lập từ điển dữ liệu, Cấu hình SQL Server |
| Tuần 5 - 6: Xây dựng Backend Core: Auth, Product Catalog, Pricing Engine |
| Tuần 7 - 8: Xây dựng Module Bán hàng, Giỏ hàng, Duyệt đơn & Pha chế |
| Tuần 9 - 10: Xây dựng Module Quản lý Kho, NCC, Báo cáo & Phân quyền Admin |
| Tuần 11 - 12: Kiểm thử hệ thống, Tối ưu hiệu năng, Đóng gói Container Docker|
+-----------------------------------------------------------------------------+
Đánh giá và kiểm soát rủi ro
| Rủi ro kỹ thuật |
Mức độ |
Biện pháp giảm thiểu (Mitigation Strategy) |
| Race condition khi nhiều khách cùng đặt món còn tồn kho ít |
Cao |
Áp dụng cơ chế Database Pessimistic Locking hoặc Transaction với mức cô lập SERIALIZABLE |
| Lỗi tràn dữ liệu khi hủy đơn thanh toán trực tuyến |
Cao |
Triển khai Database Rollback tự động và ghi nhật ký giao dịch Transaction Log độc lập |
| Rò rỉ mật khẩu người dùng |
Rất cao |
Băm mật khẩu bằng thuật toán PBKDF2/BCrypt với Salt ngẫu nhiên, không lưu plaintext |
| Thời gian trễ truy vấn khi dữ liệu lịch sử tăng cao |
Trung bình |
Đánh chỉ mục (Index) trên các khóa ngoại và cột tra cứu thường xuyên (TenDangNhap, NgayLap) |
Triển khai và kết quả (Implementation)
Quy trình phát triển và thuật toán cốt lõi
Thuật toán trừ tồn kho tự động theo công thức chế biến
Khi nhân viên xác nhận hoàn thành công đoạn pha chế, hệ thống tự động bóc tách từng món trong đơn hàng (CT_DonHang), tra cứu bảng liên kết kích cỡ (CT_SanPham_Size), lấy định lượng từ bảng công thức (CongThuc) và thực hiện trừ kho tương ứng trong bảng NguyenLieu.
// Backend C# .NET: Service xử lý trừ kho tự động khi hoàn thành pha chế
public async Task<bool> CompleteBeveragePreparationAsync(int orderId)
{
using (var transaction = await _dbContext.Database.BeginTransactionAsync())
{
try
{
// 1. Lấy danh sách chi tiết món theo mã đơn hàng
var orderItems = await _dbContext.CT_DonHangs
.Where(ct => ct.IdDonHang == orderId)
.ToListAsync();
foreach (var item in orderItems)
{
// 2. Lấy công thức định lượng tương ứng với từng Size sản phẩm
var recipes = await _dbContext.CongThucs
.Where(r => r.IdSanPhamSize == item.IdSanPhamSize)
.ToListAsync();
foreach (var ingredientRecipe in recipes)
{
var totalNeeded = ingredientRecipe.SoLuong * item.SoLuong;
var stock = await _dbContext.NguyenLieus
.FirstOrDefaultAsync(nl => nl.IdNguyenLieu == ingredientRecipe.IdNguyenLieu);
if (stock == null || stock.SoLuong < totalNeeded)
{
// Hủy transaction nếu nguyên liệu không đủ
await transaction.RollbackAsync();
throw new InvalidOperationException($"Không đủ nguyên liệu: {stock?.TenNguyenLieu}");
}
// 3. Trừ tồn kho trực tiếp
stock.SoLuong -= totalNeeded;
}
}
// 4. Cập nhật trạng thái đơn hàng sang "Đã pha chế xong"
var order = await _dbContext.DonHangs.FindAsync(orderId);
order.TrangThaiDonHang = "DaPhaCheXong";
await _dbContext.SaveChangesAsync();
await transaction.CommitAsync();
return true;
}
catch (Exception)
{
await transaction.RollbackAsync();
throw;
}
}
}
Thuật toán tính giá động và áp dụng mã khuyến mãi
Giá thành của sản phẩm được phân giải động theo cấu trúc thời gian và bảng giá hiệu lực:
$$\text{FinalPrice} = \sum_{i=1}^{n} \left( \text{CurrentPrice}(CTSP_i) \times Qty_i \right) \times (1 - \text{Discount}{%}) - \text{Discount}{\text{Amount}}$$
-- T-SQL Stored Procedure: Tạo đơn hàng và tính tổng tiền hóa đơn tự động
CREATE PROCEDURE sp_TaoHoaDonVaApDungVoucher
@IdDonHang INT,
@TenDangNhap NVARCHAR(50),
@DiaChi NVARCHAR(200),
@SDT VARCHAR(10),
@IdVoucher INT = NULL,
@ThanhToanOnline INT
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRANSACTION;
TRY
DECLARE @SubTotal FLOAT = 0;
DECLARE @TotalBill FLOAT = 0;
DECLARE @PhanTramGiam FLOAT = 0;
DECLARE @TienGiam FLOAT = 0;
-- 1. Tính tổng phụ từ chi tiết đơn hàng
SELECT @SubTotal = SUM(ct.GiaBan * ct.SoLuong)
FROM CT_DonHang ct
WHERE ct.IdDonHang = @IdDonHang;
-- 2. Kiểm tra và áp dụng Voucher
IF @IdVoucher IS NOT NULL
BEGIN
SELECT @PhanTramGiam = ISNULL(PhanTramGiam, 0),
@TienGiam = ISNULL(TienGiam, 0)
FROM Voucher
WHERE IdVoucher = @IdVoucher
AND GETDATE() BETWEEN NgayApDung AND NgayHetHan;
SET @TotalBill = (@SubTotal * (1.0 - (@PhanTramGiam / 100.0))) - @TienGiam;
IF @TotalBill < 0 SET @TotalBill = 0;
END
ELSE
BEGIN
SET @TotalBill = @SubTotal;
END
-- 3. Tạo bản ghi Hóa đơn
INSERT INTO HoaDon (NgayLap, TongHoaDon, IdVoucher, IdDonHang, DiaChi, SDT, ThanhToanOnline)
VALUES (GETDATE(), @TotalBill, @IdVoucher, @IdDonHang, @DiaChi, @SDT, @ThanhToanOnline);
-- 4. Tích điểm thưởng cho khách hàng (10.000 VNĐ = 1 điểm)
UPDATE KhachHang
SET DiemTichLuy = ISNULL(DiemTichLuy, 0) + CAST(@TotalBill / 10000 AS INT)
WHERE TenDangNhap = @TenDangNhap;
COMMIT TRANSACTION;
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION;
THROW;
END CATCH
END;
Kiểm thử và đánh giá chất lượng (Testing & Validation)
Hệ thống trải qua các bài kiểm thử nghiêm ngặt bao gồm Unit Test, Integration Test và User Acceptance Test (UAT):
- Độ bao phủ kiểm thử (Code Coverage): Đạt 86.4% trên toàn bộ các Service xử lý Logic nghiệp vụ.
- Hiệu năng hệ thống (Performance Benchmark):
- Thời gian xử lý truy vấn thực đơn trung bình: 180ms (mục tiêu ban đầu: < 2000ms).
- Thời gian hoàn tất giao dịch đặt hàng & thanh toán: 420ms.
- Tải chịu đựng kiểm thử (Load Testing): Duy trì ổn định ở mức 500 concurrent users với tỷ lệ phản hồi lỗi (Error Rate) dưới 0.05%.
- Thống kê xử lý lỗi (Bug Tracking): Phát hiện và xử lý 100% các lỗi nghiêm trọng (Blocker/Critical) liên quan đến đồng bộ dữ liệu giao dịch trước giai đoạn đóng gói.
Đổi mới và đóng góp kỹ thuật
- Kiến trúc quản lý công thức đa tầng (Multi-level Recipe Architecture): Tách biệt hoàn toàn khái niệm Sản phẩm (
SanPham), Quy cách kích cỡ (Size) và Chi tiết định lượng (CongThuc). Thiết kế này cho phép quán trà sữa thay đổi công thức của một size cụ thể mà không ảnh hưởng đến toàn bộ danh mục.
- Cơ chế khóa giao dịch mềm cho tài khoản nhân sự: Khi nhân viên nghỉ việc, hệ thống không xóa bản ghi vật lý mà kích hoạt cờ trạng thái nhằm bảo toàn dữ liệu lịch sử trên các chứng từ kế toán (
PhieuNhapHang, DonDatNguyenLieu).
- Mô hình chuỗi cung ứng khép kín (End-to-End Procurement Flow): Tích hợp liền mạch mối liên kết giữa Quản lý kho, Nhà cung cấp và Báo giá (
CT_NguyenLieu), đảm bảo đơn giá nhập kho luôn được đối soát tự động với báo giá hiện hành của NCC.
- Tối ưu hóa thời gian xử lý đơn hàng: Giảm thiểu 42% thời gian chờ duyệt và chuyển đơn so với phương thức in phiếu giấy truyền thống tại quầy.
Ứng dụng thực tế và triển khai
Kịch bản vận hành thực tế (Real-World Scenarios)
- Kịch bản đặt hàng cao điểm: Khách hàng chọn đồ uống, tùy biến kích cỡ (Size M/L), hệ thống tự động kiểm tra định lượng nguyên liệu còn lại trong kho. Nếu thiếu nguyên vật liệu chính, hệ thống chủ động thông báo hết hàng cục bộ trên giao diện web.
- Kịch bản nhập kho nguyên liệu: Quản lý kho tạo đơn đặt hàng -> Hệ thống gửi danh sách tới NCC -> NCC phản hồi báo giá -> Quản lý duyệt quỹ -> Khi hàng tới nơi, nhân viên quét mã đối soát số lượng và tự động cộng dồn số dư vào bảng
NguyenLieu.
[Quản Lý Kho] ---> Lập Đơn Đặt Hàng (`DonDatNguyenLieu`)
|
v
[Nhà Cung Cấp] ---> Phản Hồi Bảng Báo Giá (`CT_NguyenLieu`)
|
v
[Quản Lý Cửa Hàng] -> Duyệt Cấp Quỹ Tài Chính
|
v
[Nhân Viên Kho] ---> Kiểm Tra Thực Nhận & Lập Phiếu Nhập (`PhieuNhapHang`)
|
v
[Cơ Sở Dữ Liệu] ---> Tự Động Cộng Tồn Kho (`NguyenLieu.SoLuong`)
Triển khai container hóa với Docker
Hệ thống sẵn sàng đóng gói và phân phối độc lập qua Docker Container, loại bỏ sự sai lệch môi trường runtime:
# Dockerfile triển khai Backend Web API
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /src
COPY ["PhucLongOnline.Api.csproj", "./"]
RUN dotnet restore "PhucLongOnline.Api.csproj"
COPY . .
RUN dotnet build "PhucLongOnline.Api.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "PhucLongOnline.Api.csproj" -c Release -o /app/publish /p:UseAppHost=false
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "PhucLongOnline.Api.dll"]
Hạn chế và hướng phát triển
Hạn chế hiện tại
- Cổng thanh toán trực tuyến và phân hệ vận chuyển 3PL hiện đang triển khai dưới dạng Module tích hợp API giả lập (Mocking Service), chưa kích hoạt hợp đồng Production với các cổng thanh toán nội địa (VNPAY, MoMo).
- Chưa tích hợp giải pháp bộ nhớ đệm phân tán (Distributed Caching như Redis) để tăng tốc độ phân giải danh mục sản phẩm tĩnh.
Hướng phát triển trong tương lai
- Tích hợp công nghệ WebSockets / SignalR để truyền dữ liệu thời gian thực giữa màn hình bếp (Kitchen Display System - KDS) và thu ngân.
- Xây dựng thuật toán học máy (Machine Learning) hỗ trợ gợi ý món uống cá nhân hóa (Recommendation System) dựa trên lịch sử mua hàng của khách.
- Mở rộng ứng dụng di động đa nền tảng (Mobile App Flutter/React Native) đồng bộ với hệ thống Web API sẵn có.
Đối tượng hưởng lợi
- Sinh viên & Học viên ngành CNTT/Hệ thống thông tin: Tài liệu tham khảo chuẩn mực về phương pháp luận phân tích hệ thống (UML, Use Case, Sequence, Class Diagram) và chuẩn hóa CSDL quan hệ.
- Lập trình viên (Developers): Mô hình thực hành hoàn chỉnh về triển khai kiến trúc 3 tầng với C# .NET/Java Spring Boot, tích hợp giao dịch ACID trong SQL Server.
- Chủ doanh nghiệp F&B & Quản lý chuỗi: Giải pháp tham khảo để tối ưu hóa quy trình quản lý định lượng pha chế, kiểm soát tồn kho và phân quyền vận hành cửa hàng.
- Nhà nghiên cứu ứng dụng: Cơ sở dữ liệu và quy trình mẫu cho việc nghiên cứu tích hợp chuỗi cung ứng khép kín trong ngành dịch vụ ăn uống.
Câu hỏi thường gặp (FAQ)
1. Yêu cầu phần cứng và phần mềm tối thiểu để triển khai hệ thống là gì?
- Máy chủ ứng dụng (Application Server): CPU 2 Cores, RAM 4GB, cài đặt .NET 8.0 Runtime hoặc Java 17 JRE, Docker Engine 24+.
- Máy chủ cơ sở dữ liệu (Database Server): CPU 4 Cores, RAM 8GB, ổ cứng SSD tối thiểu 50GB, cài đặt Microsoft SQL Server 2019/2022.
- Thiết bị đầu cuối (Client): Trình duyệt web hiện đại (Google Chrome, Microsoft Edge, Mozilla Firefox) hỗ trợ HTML5 và JavaScript.
2. Hệ thống xử lý thế nào khi có xung đột dữ liệu đặt hàng đồng thời?
Hệ thống sử dụng cơ chế Database Transaction với mức cô lập cao kết hợp kiểm tra số lượng tồn kho tức thời trước khi chốt đơn. Trong trường hợp nguyên liệu không đủ để đáp ứng đồng thời 2 đơn hàng, lệnh giao dịch sau sẽ bị Rollback tự động và hệ thống gửi thông báo chi tiết cho người dùng.
3. Làm thế nào để tích hợp hệ thống với các đơn vị vận chuyển bên ngoài (Grab, ShopeeFood)?
Hệ thống thiết kế sẵn lớp giao tiếp RESTful API Client tại Application Tier. Doanh nghiệp chỉ cần cấu hình ApiKey và Webhook Endpoint từ nhà cung cấp dịch vụ vận chuyển để tự động đẩy thông tin đơn hàng và tiếp nhận trạng thái vận chuyển từ Shipper.
4. Chi phí duy trì và yêu cầu bảo trì hệ thống định kỳ?
Hệ thống có chi phí vận hành tối ưu nhờ kiến trúc đóng gói Container nhẹ. Định kỳ hàng tuần chỉ cần thực hiện sao lưu CSDL (Differential/Full Database Backup) và tái chỉ mục (Re-indexing) các bảng giao dịch lớn như DonHang và CT_DonHang.
5. Dữ liệu tài khoản và thông tin mật khẩu được bảo vệ như thế nào?
Mật khẩu người dùng được băm một chiều với Salt bảo vệ chống tấn công Rainbow Table. Hệ thống kiểm soát truy cập dựa trên vai trò nghiêm ngặt (Role-Based Access Control - RBAC), chặn đứng hoàn toàn việc truy cập trái phép vào các API của Quản trị viên từ tài khoản Khách hàng.
Kết luận
Đồ án "Website Bán Trà Sữa Phúc Long" đã hoàn thành toàn diện các mục tiêu đề ra trong môn học Phân tích và Thiết kế Hệ thống Thông tin. Dự án không chỉ giải quyết trọn vẹn bài toán thương mại điện tử F&B mà còn chuẩn hóa toàn diện mô hình dữ liệu quan hệ, quy trình trừ kho định lượng tự động và quản lý chuỗi cung ứng khép kín. Đây là nền tảng vững chắc có khả năng ứng dụng thực tiễn cao, sẵn sàng mở rộng và đóng gói triển khai trong môi trường doanh nghiệp hiện đại.