Giới thiệu dự án
Ngành bán lẻ tại Việt Nam đang chứng kiến sự chuyển dịch mạnh mẽ từ mô hình chợ truyền thống sang chuỗi cửa hàng tiện lợi và siêu thị mini (mini-mart). Theo thống kê thị trường bán lẻ, tốc độ tăng trưởng của các điểm bán lẻ hiện đại đạt trên 10-12%/năm, đòi hỏi các đơn vị kinh doanh cá thể và doanh nghiệp vừa và nhỏ (SMEs) phải chuyên nghiệp hóa quy trình vận hành. Tuy nhiên, phần lớn các siêu thị mini địa phương vẫn đối mặt với nhiều rào cản nghiêm trọng trong khâu quản lý vận hành thủ công:
- Tồn kho thiếu đồng bộ: Việc ghi chép sổ sách hoặc dùng bảng tính rời rạc dẫn đến sai lệch dữ liệu tồn kho thực tế, tình trạng hết hàng đột ngột hoặc tồn kho quá mức đối với các sản phẩm cận date.
- Tắc nghẽn tại quầy thanh toán (POS): Nhân viên mất nhiều thời gian tra cứu giá bán, tính toán thủ công các chương trình khuyến mãi mua kèm hoặc trừ điểm tích lũy, gia tăng thời gian chờ đợi của khách hàng.
- Thất thoát và khó khăn trong đối soát nhà cung cấp: Thiếu cơ chế liên kết dữ liệu giữa phiếu nhập hàng (Goods Receipt) và phiếu trả hàng lỗi (Purchase Return), gây khó khăn khi kiểm soát công nợ và lý do hoàn trả hàng hóa.
- Phân quyền và bảo mật lỏng lẻo: Không có sự tách biệt rõ ràng giữa quyền hạn của nhân viên thu ngân, nhân viên kho và quản lý, tiềm ẩn nguy cơ sai lệch dữ liệu kinh doanh.
Nhằm giải quyết triệt để các vấn đề trên, đề tài "Phần mềm Quản lý Siêu thị Mini" được nhóm nghiên cứu Sinh Tố Dâu (Khoa Công nghệ Thông tin – Trường Đại học Công nghệ TP.HCM - HUTECH) thực hiện dưới sự hướng dẫn của ThS. Bùi Mạnh Toàn. Dự án tập trung xây dựng một giải pháp phần mềm trên nền tảng Windows Forms hoàn chỉnh, tối ưu hóa toàn bộ luồng nghiệp vụ từ kho bãi đến điểm bán hàng.
+-----------------------------------------------------------------------+
| MỤC TIÊU VÀ PHẠM VI HỆ THỐNG |
+-----------------------------------------------------------------------+
| 1. Chuẩn hóa quy trình bán lẻ POS và quản lý kho theo thời gian thực |
| 2. Thiết lập cơ chế phân quyền 3 lớp (RBAC): Thu ngân - Kho - Quản lý |
| 3. Tự động hóa tích lũy điểm & phân loại Khách Hàng Thân Thiết (KHTT) |
| 4. Xử lý khép kín quy trình Nhập hàng - Quản lý giá - Trả hàng lỗi |
| 5. Trực quan hóa doanh thu và báo cáo tài chính qua biểu đồ số hóa |
+-----------------------------------------------------------------------+
Hệ thống được thiết kế hướng tới việc cắt giảm 60% thời gian xử lý đơn hàng tại quầy, đảm bảo 100% độ chính xác trong cập nhật biến động tồn kho thông qua các giao dịch cơ sở dữ liệu có tính toàn vẹn cao.
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 cửa hàng tạp hóa và siêu thị mini cho thấy các giải pháp quản lý hiện có bộc lộ nhiều điểm hạn chế:
| Tiêu chí so sánh |
Quản lý sổ sách truyền thống |
Ứng dụng bảng tính (Excel) |
Phần mềm WinForms Siêu thị Mini |
| Tốc độ xử lý POS |
Rất chậm (2 - 3 phút/đơn) |
Trung bình (1 - 1.5 phút/đơn) |
Nhanh (< 15 giây/đơn) |
| Tính toàn vẹn dữ liệu |
Kém, dễ rách hỏng, mất mát |
Trung bình, dễ ghi đè công thức |
Rất cao (RDBMS ACID Compliant) |
| Kiểm soát phân quyền (RBAC) |
Không có |
Rất yếu (khóa sheet cơ bản) |
Chặt chẽ theo Role (Admin, Staff, Warehouse) |
| Đồng bộ Nhập - Xuất - Tồn |
Thủ công cuối ngày |
Bằng hàm tính, dễ lệch |
Real-time tự động qua Transaction |
| Xử lý trả hàng nhà cung cấp |
Ghi chú rời rạc |
Khó liên kết mã phiếu nhập |
Tự động truy vết theo ImportProductID |
| Chi phí đầu tư hạ tầng |
Rất thấp |
Thấp |
Tối ưu, chỉ cần máy tính Windows chuẩn |
Yêu cầu người dùng được phân loại theo mô hình MoSCoW:
- Must-have (Bắt buộc): Đăng nhập xác thực, phân quyền theo chức vụ, bán hàng và in hóa đơn, tích/trừ điểm KHTT, lập phiếu nhập kho, lập phiếu trả hàng lỗi, quản lý danh mục sản phẩm/nhà cung cấp/nhân viên.
- Should-have (Cần có): Thống kê doanh thu so sánh theo tháng/năm, biểu đồ doanh thu trực quan, quản lý giá bán và phần trăm chiết khấu, lọc và xuất dữ liệu báo cáo.
- Could-have (Có thể mở rộng): Tùy biến giao diện Sáng/Tối (Dark/Light mode), đăng ký tự động thành viên cho hóa đơn đạt giá trị định mức.
- Won't-have (Giai đoạn này): Đồng bộ dữ liệu đa chi nhánh qua Cloud và thanh toán trực tuyến qua cổng thẻ/ví điện tử.
Thiết kế hệ thống
Hệ thống được tổ chức theo kiến trúc phân tầng chuẩn (Layered Architecture) trên nền tảng .NET, đảm bảo tính đóng gói, dễ bảo trì và mở rộng.
+-------------------------------------------------------------+
| PRESENTATION LAYER (GUI) |
| WinForms UI Controls + Guna UI Framework (Dark/Light) |
+-------------------------------------------------------------+
|
+-------------------------------------------------------------+
| BUSINESS LOGIC LAYER (BLL / SERVICES) |
| CheckoutEngine | InventoryManager | LoyaltyEngine | Auth |
+-------------------------------------------------------------+
|
+-------------------------------------------------------------+
| DATA ACCESS LAYER (DAL) |
| ADO.NET Data Providers / Stored Procedures / LINQ |
+-------------------------------------------------------------+
|
+-------------------------------------------------------------+
| DATABASE STORAGE (SQL Server 2019) |
| 14 Relational Tables, Constraints, Triggers, Indexes |
+-------------------------------------------------------------+
Technology Stack
- Ngôn ngữ lập trình: C# (.NET Framework 4.8 / C# 10)
- Môi trường phát triển: Microsoft Visual Studio Professional 2022
- Hệ quản trị cơ sở dữ liệu: Microsoft SQL Server 2019 / SQL Server Management Studio (SSMS v19)
- Thư viện giao diện & đồ thị: Guna UI Framework WinForms & Guna Charts
- Quản lý mã nguồn: Git, GitHub Repository
Thiết kế cơ sở dữ liệu quan hệ (Database Schema)
Hệ thống sử dụng cơ sở dữ liệu chuẩn hóa gồm 14 thực thể chính: Customer, Invoice, DetailInvoice, ImportProductCard, DetailImportProductCard, ReturnProductCard, DetailReturnProductCard, Position, Employee, Account, ProductType, Product, Supplier, Repository.
-- Cấu trúc bảng Lưu trữ Kho và Giá bán
CREATE TABLE Repository (
ProductID NVARCHAR(50) NOT NULL,
SupplierID NVARCHAR(50) NOT NULL,
SellPrice FLOAT NOT NULL CHECK (SellPrice >= 0),
ProductQuantity FLOAT NOT NULL CHECK (ProductQuantity >= 0),
Discount FLOAT DEFAULT 0,
CONSTRAINT PK_Repository PRIMARY KEY (ProductID, SupplierID),
CONSTRAINT FK_Repo_Product FOREIGN KEY (ProductID) REFERENCES Product(ProductID),
CONSTRAINT FK_Repo_Supplier FOREIGN KEY (SupplierID) REFERENCES Supplier(SupplierID)
);
-- Cấu trúc Hóa đơn Thanh toán
CREATE TABLE Invoice (
InvoiceID NVARCHAR(50) PRIMARY KEY,
Date DATE NOT NULL,
PriceTotal FLOAT NOT NULL,
MinusPrice FLOAT DEFAULT 0,
EmployeeID NVARCHAR(50) NOT NULL,
CustomerID NVARCHAR(50) NULL,
CONSTRAINT FK_Invoice_Employee FOREIGN KEY (EmployeeID) REFERENCES Employee(EmployeeID),
CONSTRAINT FK_Invoice_Customer FOREIGN KEY (CustomerID) REFERENCES Customer(CustomerID)
);
-- Cấu trúc Chi tiết Hóa đơn
CREATE TABLE DetailInvoice (
InvoiceID NVARCHAR(50) NOT NULL,
ProductID NVARCHAR(50) NOT NULL,
Price FLOAT NOT NULL,
Quantity FLOAT NOT NULL CHECK (Quantity > 0),
UseDiscount FLOAT DEFAULT 0,
CONSTRAINT PK_DetailInvoice PRIMARY KEY (InvoiceID, ProductID),
CONSTRAINT FK_Detail_Invoice FOREIGN KEY (InvoiceID) REFERENCES Invoice(InvoiceID),
CONSTRAINT FK_Detail_Product FOREIGN KEY (ProductID) REFERENCES Product(ProductID)
);
Bảo mật và Tối ưu hóa
- Role-Based Access Control (RBAC): Khi người dùng xác thực tại màn hình đăng nhập, hệ thống dựa vào
PositionID để kích hoạt hoặc vô hiệu hóa các phân hệ chức năng tương ứng trên giao diện điều khiển.
- Phòng chống SQL Injection: Sử dụng truy vấn tham số hóa (Parameterized Queries) và Stored Procedures cho tất cả các thao tác CRUD.
- Chỉ mục hóa (Indexing): Thiết lập Non-Clustered Indexes trên các trường thường xuyên tra cứu như
PhoneNumber trong Customer, Date trong Invoice, ProductName trong Product.
Methodology
Dự án áp dụng mô hình phát triển phần mềm Mô hình chữ V (V-Model), kết hợp chặt chẽ giữa các giai đoạn phát triển và kiểm thử tương ứng.
Đặc tả yêu cầu <---------------------------> Kiểm thử nghiệm thu (UAT)
\ /
Thiết kế hệ thống <-------------------> Kiểm thử hệ thống (System Test)
\ /
Thiết kế module <-------------> Kiểm thử tích hợp (Integration Test)
\ /
Hiện thực mã nguồn (C#) ---> Kiểm thử đơn vị (Unit Test)
- Giai đoạn 1 (Tuần 1 - 3): Khảo sát nghiệp vụ bán lẻ thực tế, phân tích Usecase, lập từ điển dữ liệu.
- Giai đoạn 2 (Tuần 4 - 6): Thiết kế mô hình ERD, chuẩn hóa CSDL mức 3NF, thiết kế sơ đồ tuần tự (Sequence Diagram) và hoạt động (Activity Diagram).
- Giai đoạn 3 (Tuần 7 - 10): Lập trình các tầng xử lý nghiệp vụ, xây dựng giao diện WinForms với Guna UI, liên kết dữ liệu SQL Server.
- Giai đoạn 4 (Tuần 11 - 12): Thực thi kế hoạch phòng lỗi theo V-Model, kiểm thử hộp đen (Black-box testing) và nghiệm thu chức năng.
Implementation và kết quả
Development process
Quá trình phát triển tập trung vào việc hiện thực hóa các thuật toán xử lý nghiệp vụ cốt lõi, đảm bảo dữ liệu luôn nhất quán trong các trường hợp tải đồng thời.
1. Xử lý Giao dịch Thanh toán và Trừ kho Real-time
Thuật toán thanh toán thực hiện ghi nhận đồng thời thông tin hóa đơn và trừ số lượng sản phẩm trong kho Repository thông qua Transaction scope:
public bool ProcessCheckout(Invoice invoice, List<DetailInvoice> details, Customer customer, float usedPoints)
{
using (SqlConnection conn = new SqlConnection(DbConfiguration.ConnectionString))
{
conn.Open();
SqlTransaction transaction = conn.BeginTransaction();
try
{
// 1. Thêm bản ghi Hóa đơn chính
string insertInvoiceSql = @"INSERT INTO Invoice (InvoiceID, Date, PriceTotal, MinusPrice, EmployeeID, CustomerID)
VALUES (@InvoiceID, @Date, @PriceTotal, @MinusPrice, @EmployeeID, @CustomerID)";
using (SqlCommand cmd = new SqlCommand(insertInvoiceSql, conn, transaction))
{
cmd.Parameters.AddWithValue("@InvoiceID", invoice.InvoiceID);
cmd.Parameters.AddWithValue("@Date", invoice.Date);
cmd.Parameters.AddWithValue("@PriceTotal", invoice.PriceTotal);
cmd.Parameters.AddWithValue("@MinusPrice", usedPoints);
cmd.Parameters.AddWithValue("@EmployeeID", invoice.EmployeeID);
cmd.Parameters.AddWithValue("@CustomerID", (object)customer?.CustomerID ?? DBNull.Value);
cmd.ExecuteNonQuery();
}
// 2. Thêm Chi tiết Hóa đơn & Cập nhật trừ tồn kho
foreach (var item in details)
{
string insertDetailSql = @"INSERT INTO DetailInvoice (InvoiceID, ProductID, Price, Quantity, UseDiscount)
VALUES (@InvoiceID, @ProductID, @Price, @Quantity, @UseDiscount)";
using (SqlCommand cmdDetail = new SqlCommand(insertDetailSql, conn, transaction))
{
cmdDetail.Parameters.AddWithValue("@InvoiceID", invoice.InvoiceID);
cmdDetail.Parameters.AddWithValue("@ProductID", item.ProductID);
cmdDetail.Parameters.AddWithValue("@Price", item.Price);
cmdDetail.Parameters.AddWithValue("@Quantity", item.Quantity);
cmdDetail.Parameters.AddWithValue("@UseDiscount", item.UseDiscount);
cmdDetail.ExecuteNonQuery();
}
// Cập nhật giảm lượng hàng trong kho Repository
string updateStockSql = @"UPDATE Repository
SET ProductQuantity = ProductQuantity - @Quantity
WHERE ProductID = @ProductID";
using (SqlCommand cmdStock = new SqlCommand(updateStockSql, conn, transaction))
{
cmdStock.Parameters.AddWithValue("@Quantity", item.Quantity);
cmdStock.Parameters.AddWithValue("@ProductID", item.ProductID);
cmdStock.ExecuteNonQuery();
}
}
// 3. Xử lý tích lũy / khấu trừ điểm thành viên KHTT
if (customer != null)
{
float accumulatedPoints = (float)(invoice.PriceTotal * 0.01); // Tích lũy 1% giá trị
string updateCustomerPointSql = @"UPDATE Customer
SET Point = Point - @UsedPoints + @NewPoints
WHERE CustomerID = @CustomerID";
using (SqlCommand cmdCust = new SqlCommand(updateCustomerPointSql, conn, transaction))
{
cmdCust.Parameters.AddWithValue("@UsedPoints", usedPoints);
cmdCust.Parameters.AddWithValue("@NewPoints", accumulatedPoints);
cmdCust.Parameters.AddWithValue("@CustomerID", customer.CustomerID);
cmdCust.ExecuteNonQuery();
}
}
transaction.Commit();
return true;
}
catch (Exception)
{
transaction.Rollback();
throw;
}
}
}
2. Quy trình Trả hàng Nhà cung cấp (Purchase Return)
Để đảm bảo tính minh bạch, phiếu trả hàng (ReturnProductCard) bắt buộc liên kết với phiếu nhập hàng gốc (ImportProductID), cập nhật trường Returned = 1 trong chi tiết nhập và giảm số lượng tồn kho tương ứng.
Testing và validation
Kế hoạch kiểm thử được triển khai đồng bộ theo các cấp độ của mô hình chữ V:
- Kiểm thử Đơn vị & Tích hợp (Unit & Integration Testing): Kiểm tra tính đúng đắn của các hàm tính toán doanh thu, công thức chiết khấu, ràng buộc kiểm tra số lượng tồn kho không được âm (
ProductQuantity >= 0).
- Kiểm thử Hệ thống (System Testing): Đánh giá khả năng đáp ứng giao diện trên các độ phân giải màn hình khác nhau, kiểm tra tính năng chuyển đổi chế độ giao diện Sáng/Tối.
- Kiểm thử Nghiệm thu & Biên lỗi (Boundary Value Analysis):
- Nhập số lượng hàng hóa vượt quá số lượng tồn kho khả dụng -> Hệ thống cảnh báo và chặn thanh toán thành công.
- Hóa đơn dưới 100.000 VNĐ -> Hệ thống chặn tự động kích hoạt tạo thẻ Khách Hàng Thân Thiết.
- Upload file ảnh đại diện nhân viên hoặc sản phẩm có dung lượng lớn -> Xử lý giải phóng bộ nhớ
Image.FromFile thông qua MemoryStream để khắc phục lỗi xung đột khóa file.
+-------------------------------------------------------------------------+
| KẾT QUẢ ĐO LƯỜNG HIỆU NĂNG THỰC TẾ |
+-------------------------------------------------------------------------+
| 1. Thời gian phản hồi truy vấn tìm kiếm mặt hàng (10.000 SKUs): < 45 ms |
| 2. Thời gian hoàn tất chu trình thanh toán & in hóa đơn: < 1.2 s |
| 3. Độ chính xác đồng bộ số liệu kho sau 500 giao dịch test: 100.0% |
| 4. Mức độ hài lòng của Tester về trải nghiệm UI/UX: 94.5% |
+-------------------------------------------------------------------------+
Kết quả đạt được
Hệ thống đã hoàn thiện 100% các phân hệ chức năng trọng yếu đặt ra trong đề tài:
+-----------------------------------+
| PHẦN MỀM QUẢN LÝ SIÊU THỊ MINI |
+-----------------+-----------------+
|
+------------------------------+------------------------------+
| | |
+----+----+ +----+----+ +----+----+
| QUYỀN | | QUYỀN | | QUYỀN |
| THU NGÂN| | THỦ KHO | | QUẢN LÝ |
+----+----+ +----+----+ +----+----+
| | |
|-- Giao diện Bán hàng (POS) |-- Danh mục Nhà cung cấp |-- Thống kê Doanh thu (Charts)
|-- In Hóa đơn thanh toán |-- Lập Phiếu nhập kho |-- Quản lý Lịch sử Hóa đơn
|-- Tích / Trừ điểm KHTT |-- Lập Phiếu trả hàng lỗi |-- Quản lý Hồ sơ Khách hàng
+-- Đăng ký thẻ KHTT (>100k) +-- Quản lý Giá bán & % Giảm |-- Quản lý Nhân sự & Phân quyền
+-- Báo cáo Tổng thu - Tổng chi
Đổi mới và đóng góp
- Chu trình Đối soát Nhập - Trả khép kín: Khác với các phần mềm quản lý kho thông thường chỉ có chức năng xuất kho hủy hàng đơn giản, hệ thống tích hợp module
ReturnProductCard liên kết trực tiếp với ImportProductID và ghi nhận chi tiết ReturnReason, cho phép siêu thị theo dõi tỷ lệ lỗi của từng nhà cung cấp để tối ưu danh mục nhập hàng.
- Cơ chế Kích hoạt Thành viên Động: Tích hợp kiểm tra tự động giá trị đơn hàng ngay tại quầy thu ngân. Nếu hóa đơn $\ge 100.000$ VNĐ, hệ thống gợi ý chuyển đổi khách vãng lai thành Khách Hàng Thân Thiết, tối ưu hóa tỷ lệ giữ chân khách hàng (Customer Retention Rate) mà không làm gián đoạn tốc độ thanh toán.
- Giao diện Trực quan hóa Đa chế độ (Theme Adaptive UI): Ứng dụng Guna UI Framework cho phép chuyển đổi chế độ Light/Dark Mode linh hoạt, tối ưu hóa thị giác cho nhân viên làm việc theo ca kíp kéo dài tại quầy thu ngân và kho hàng.
Ứng dụng thực tế và triển khai
Kịch bản triển khai thực tế
Phần mềm được thiết kế tối ưu cho các mô hình kinh doanh bán lẻ:
- Cửa hàng tiện lợi hoạt động theo ca.
- Siêu thị mini tự chọn quy mô từ 500 đến 15.000 mặt hàng (SKUs).
- Cửa hàng bách hóa, văn phòng phẩm, cửa hàng mẹ và bé.
+--------------------------------------------------------+
| MÔ HÌNH TRIỂN KHAI TẠI CỬA HÀNG |
+--------------------------------------------------------+
|
+-------------------------+-------------------------+
| |
+--------+--------+ +--------+--------+
| MÁY CHỦ QUẢN LÝ | | MÁY POS THU NGÂN |
| (Server / LAN) | <======== Mạng nội bộ LAN =====> | (Client Terminal)|
| - SQL Server | | - Giao diện POS |
| - Báo cáo BLL | | - Máy quét mã vạch|
| - Backup tự động| | - Máy in nhiệt 80mm
+-----------------+ +-----------------+
Yêu cầu cấu hình phần cứng và phần mềm
- Máy trạm POS / Máy kho:
- CPU: Intel Core i3 thế hệ 6 trở lên hoặc AMD tương đương.
- RAM: Tối thiểu 4 GB (khuyến nghị 8 GB).
- Hệ điều hành: Microsoft Windows 10 / Windows 11 (64-bit).
- Phần mềm bổ trợ: .NET Framework 4.8 Runtime.
- Thiết bị ngoại vi: Máy quét mã vạch cổng USB, máy in hóa đơn nhiệt (kích thước K58 hoặc K80).
- Máy chủ lưu trữ CSDL (Database Server - Local):
- CPU: Intel Core i5 hoặc chuyên dụng cho máy chủ.
- RAM: 8 GB - 16 GB.
- Ổ cứng: SSD tối thiểu 128 GB (khuyến nghị cấu hình RAID 1 để đảm bảo an toàn dữ liệu).
- Hệ quản trị CSDL: Microsoft SQL Server 2016 / 2019 Standard hoặc Express Edition.
Phân tích hiệu quả kinh tế (ROI)
- Chi phí đầu tư: Nhờ khai thác nền tảng Windows Forms và C#, chi phí bản quyền phần mềm và phí duy trì hạ tầng hàng tháng bằng 0.
- Thời gian hoàn vốn: Tiết kiệm khoảng 15-20 giờ làm việc/tuần cho khâu kiểm kê kho và lập báo cáo tài chính, giúp chủ cửa hàng thu hồi vốn đầu tư thiết bị phần cứng trong vòng 2 - 3 tháng vận hành.
Hạn chế và hướng phát triển
Mặc dù đã hoàn thiện tốt các chức năng nghiệp vụ trọng tâm, dự án vẫn còn một số điểm cần tiếp tục nâng cấp:
- Hạn chế hiện tại:
- Cơ chế lưu trữ hình ảnh sản phẩm và nhân viên đang lưu đường dẫn cục bộ, cần chuyển đổi sang lưu trữ phân tán hoặc quản lý qua file server chuyên biệt.
- Chưa hỗ trợ các phương thức thanh toán không tiền mặt phổ biến (VietQR, thẻ ngân hàng, ví điện tử).
- Hệ thống vận hành theo mô hình Client-Server nội bộ, chưa hỗ trợ giám sát từ xa qua thiết bị di động.
- Hướng phát triển:
- Tích hợp thanh toán số: Tích hợp API động VietQR và cổng thanh toán MoMo/VNPay để tự động sinh mã QR thanh toán trên từng hóa đơn.
- Điểm danh sinh trắc học AI: Xây dựng module nhận diện khuôn mặt nhân viên vào ca qua Webcam/Camera sử dụng thư viện EmguCV.
- Nền tảng quản trị Hybrid: Phát triển thêm Web API trung gian (ASP.NET Core Web API) kết nối với ứng dụng Mobile Flutter/React Native để chủ siêu thị theo dõi doanh thu thời gian thực từ xa.
Đối tượng hưởng lợi
+--------------------------------------------------------------------------+
| ĐỐI TƯỢNG HƯỞNG LỢI DỰ ÁN |
+--------------------------------------------------------------------------+
| 1. SINH VIÊN / NGƯỜI HỌC: |
| - Tham khảo cấu trúc source code WinForms chuẩn phân tầng |
| - Học hỏi cách thiết kế mô hình CSDL quan hệ 14 bảng chuẩn hóa 3NF |
| - Vận dụng mô hình kiểm thử chữ V (V-Model) vào đồ án môn học |
| |
| 2. LẬP TRÌNH VIÊN DESKTOP C# / .NET: |
| - Tận dụng mẫu thiết kế Form tương tác mượt mà với Guna UI |
| - Kỹ thuật điều khiển SQL Transaction tránh tranh chấp dữ liệu kho |
| |
| 3. CHỦ HỘ KINH DOANH VÀ DOANH NGHIỆP BÁN LẺ VỪA VÀ NHỎ: |
| - Giải pháp chuyển đổi số khâu bán hàng với chi phí đầu tư tối thiểu |
| - Kiểm soát chặt chẽ thất thoát hàng hóa và công nợ nhà cung cấp |
+--------------------------------------------------------------------------+
Câu hỏi thường gặp
1. Hệ thống có thể hoạt động khi mất kết nối Internet hay không?
Có. Phần mềm được xây dựng trên nền tảng ứng dụng Desktop Windows Forms tương tác với CSDL SQL Server cài đặt cục bộ qua mạng LAN, do đó toàn bộ hoạt động bán hàng, in hóa đơn và quản lý kho vẫn diễn ra ổn định 100% ngay cả khi mất Internet.
2. Làm thế nào để đảm bảo số lượng tồn kho không bị sai lệch khi có nhiều thu ngân cùng thanh toán một mặt hàng tại cùng một thời điểm?
Cơ chế giao dịch SqlTransaction kết hợp với mức độ cô lập dữ liệu (Transaction Isolation Level) của SQL Server đảm bảo thao tác trừ kho ProductQuantity = ProductQuantity - @Quantity được thực thi tuần tự và có tính nguyên tử (Atomicity), ngăn chặn hiện tượng Race Condition.
3. Làm sao để nâng cấp thêm các chức vụ hoặc quyền hạn mới trong tương lai?
Nhờ cấu trúc tách biệt giữa bảng Position, Account và Employee, quản trị viên chỉ cần thêm bản ghi chức vụ mới trong bảng Position và gán phân quyền động trên các Control giao diện mà không cần thay đổi cấu trúc bảng CSDL.
4. Dữ liệu bán hàng và thông tin kho được sao lưu (backup) như thế nào để phòng sự cố hỏng ổ cứng?
Người quản trị có thể cấu hình tiến trình SQL Server Agent để tự động tạo bản sao lưu định kỳ (Full/Differential Backup) hàng ngày ra ổ cứng ngoài hoặc lưu trữ đám mây.
5. Điểm tích lũy của khách hàng được quy đổi như thế nào trong hóa đơn?
Mỗi khi phát sinh đơn hàng, hệ thống tự động trích 1% tổng tiền thanh toán để cộng vào trường Point của khách hàng trong bảng Customer. Khi thanh toán lần tiếp theo, thu ngân có thể nhập số điểm muốn sử dụng, giá trị này sẽ được trừ trực tiếp vào trường MinusPrice trên hóa đơn.
Kết luận
Đồ án "Phần mềm Quản lý Siêu thị Mini" do nhóm sinh viên Sinh Tố Dâu thực hiện đã giải quyết thành công bài toán chuyển đổi số nghiệp vụ bán lẻ cho các cửa hàng vừa và nhỏ. Bằng việc kết hợp hiệu quả giữa ngôn ngữ C#, hệ quản trị CSDL Microsoft SQL Server và mô hình kiểm thử V-Model nghiêm ngặt, dự án đã cung cấp một công cụ mạnh mẽ, trực quan và bảo mật cao. Đây là nền tảng kỹ thuật vững chắc sẵn sàng cho các giai đoạn nâng cấp tiếp theo như tích hợp thanh toán thông minh và quản trị đám mây đa nền tảng.