Giới thiệu dự án
Trong kỷ nguyên chuyển đổi số, ngành bán lẻ và phân phối xuất bản phẩm đối mặt với áp lực tối ưu hóa chuỗi cung ứng và quản trị kho vận. Theo các khảo sát thị trường bán lẻ, hơn 65% các cửa hàng sách truyền thống quy mô vừa và nhỏ tại Việt Nam vẫn vận hành theo phương thức phân tán, phụ thuộc vào công cụ văn phòng như Microsoft Excel hoặc sổ sách kế toán thủ công. Thực trạng này dẫn đến tỷ lệ sai lệch tồn kho trung bình từ 3% đến 5%, thời gian tra cứu và phục vụ một giao dịch kéo dài từ 3 đến 5 phút, cùng rủi ro mất kiểm soát công nợ khách hàng khi lượng giao dịch gia tăng.
Dự án Xây dựng Phần mềm Quản lý Nhà sách (triển khai thực nghiệm tại Nhà sách Bạch Đằng) được nghiên cứu và phát triển bởi nhóm kỹ sư phần mềm thuộc Trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM (lớp SE104.TMCL). Đề tài giải quyết bài toán cốt lõi: số hóa toàn diện quy trình nghiệp vụ xuất - nhập - tồn, kiểm soát công nợ chặt chẽ và tự động hóa báo cáo định kỳ dựa trên các ràng buộc quy chuẩn nghiệp vụ thực tế.
+-----------------------------------------------------------------------+
| HỆ THỐNG QUẢN LÝ NHÀ SÁCH (BẠCH ĐẰNG) |
| |
| [Nhập Sách] [Bán Hàng] [Thu Tiền] [Báo Cáo] |
| - QĐ1: Nhập>=150 - QĐ2: Nợ<=20.000 - QĐ4: Thu<=Nợ - Tồn tháng |
| - Tồn<300 - Tồn sau>=20 - Công nợ |
| - Giá = 105% nhập |
+-----------------------------------------------------------------------+
Mục tiêu dự án
- Số hóa và tự động hóa quy trình nghiệp vụ: Thay thế 100% việc quản lý thủ công trên bảng tính rời rạc bằng hệ thống phần mềm quản lý tập trung theo mô hình phân tầng.
- Kiểm soát tính toàn vẹn dữ liệu và thực thi quy tắc nghiệp vụ: Áp dụng các quy tắc kiểm tra ràng buộc tự động tại thời gian thực cho nghiệp vụ nhập hàng (QĐ1), bán hàng (QĐ2), thu tiền (QĐ4) và thay đổi tham số hệ thống (QĐ6).
- Chuẩn hóa cơ sở dữ liệu quan hệ: Thiết kế cấu trúc lưu trữ đạt chuẩn dạng chuẩn 3 (3NF) trên Microsoft SQL Server 2019, đảm bảo tính nhất quán (Consistency) và toàn vẹn tham chiếu (Referential Integrity).
- Tối ưu hóa trải nghiệm người dùng (UX/UI): Xây dựng giao diện máy tính để bàn (Desktop Application) hiện đại dựa trên thư viện Material Design XAML và mô hình kiến trúc phần mềm MVVM (Model-View-ViewModel).
- Cung cấp công cụ báo cáo phân tích: Tự động kết xuất báo cáo tồn kho và báo cáo công nợ định kỳ theo từng tháng với độ chính xác tuyệt đối (100%).
Giải pháp và phạm vi
- Phương pháp tiếp cận: Ứng dụng mô hình kiến trúc Client-Server kết hợp mẫu thiết kế MVVM trên nền tảng .NET Framework và hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) Microsoft SQL Server 2019. Kiến trúc này tách biệt hoàn toàn giữa giao diện hiển thị (View), logic điều hướng dữ liệu (ViewModel) và cấu trúc dữ liệu nền tảng (Model).
- Chỉ số kỳ vọng: Giảm thời gian lập hóa đơn xuống dưới 10 giây/giao dịch; loại bỏ 100% lỗi vi phạm công nợ và lỗi xuất kho âm; giảm thời gian tổng hợp báo cáo tháng từ 2 ngày làm việc xuống dưới 1 giây.
- Phạm vi triển khai: Ứng dụng cục bộ (Local Network) tại cơ sở nhà sách bán lẻ, phục vụ thủ kho, nhân viên thu ngân và người quản lý.
- Hạn chế kỹ thuật: Phiên bản 1.0 tập trung cho môi trường máy tính để bàn đơn/đa trạm nội bộ, chưa hỗ trợ đồng bộ hóa đám mây (Cloud Sync) hoặc cổng thương mại điện tử đa kênh.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Tại Nhà sách Bạch Đằng, mô hình vận hành cũ bộc lộ nhiều điểm nghẽn nghiêm trọng khi dữ liệu danh mục sách, đơn giá và công nợ được lưu trữ phân tán trên nhiều tệp Excel độc lập:
| Tiêu chí phân tích |
Phương pháp thủ công / Excel |
Phần mềm đóng gói sẵn (SaaS POS) |
Hệ thống BMS Bạch Đằng (Đề tài) |
| Kiểm soát ràng buộc nghiệp vụ |
Hoàn toàn thủ công, dễ bỏ sót |
Khó tùy biến theo quy định riêng |
Tự động hóa 100% theo bộ quy định QĐ1 - QĐ6 |
| Tính toàn vẹn dữ liệu |
Kém, dễ bị ghi đè/xóa nhầm |
Cao (Database đám mây) |
Tuyệt đối (RDBMS Microsoft SQL Server) |
| Độ trễ xử lý báo cáo |
4 – 16 giờ làm việc |
Thời gian thực |
Thời gian thực (< 1 giây) |
| Khả năng tiến hóa tham số |
Không đồng bộ, sửa công thức tay |
Tùy thuộc nhà cung cấp phần mềm |
Động hóa qua bảng THAMSO (QĐ6) |
| Chi phí triển khai & duy trì |
Thấp nhưng rủi ro thất thoát cao |
Thu phí định kỳ hàng tháng/năm |
Tối ưu, sở hữu vĩnh viễn trên On-Premise |
Mô hình phân cấp yêu cầu theo kỹ thuật MoSCoW:
- Must-have (Bắt buộc):
- Lập phiếu nhập sách với ràng buộc: Số lượng nhập $\ge 150$, lượng tồn trước nhập $< 300$ (QĐ1).
- Lập hóa đơn bán sách với ràng buộc: Khách hàng nợ không quá $20.000$ VNĐ, lượng tồn sau bán $\ge 20$, đơn giá bán $= 105% \times$ đơn giá nhập (QĐ2).
- Lập phiếu thu tiền: Số tiền thu không vượt quá số tiền khách hàng đang nợ (QĐ4).
- Kết xuất báo cáo tháng: Báo cáo tồn (Tồn đầu, Phát sinh, Tồn cuối) và Báo cáo công nợ (Nợ đầu, Phát sinh, Nợ cuối).
- Phân hệ thay đổi tham số quy định hệ thống (QĐ6).
- Should-have (Cần có): Tra cứu nhanh sách theo tiêu chí đa điều kiện (Mã sách, Tên sách, Thể loại, Tác giả); tra cứu lịch sử mua hàng của khách hàng.
- Could-have (Có thể có): In biểu mẫu trực tiếp ra máy in hóa đơn nhiệt; xuất dữ liệu ra định dạng chuẩn.
- Won't-have (Tạm hoãn ở v1.0): Tích hợp thanh toán QR tĩnh/động; phân quyền truy cập đa vai trò phân cấp (RBAC) chuyên sâu.
Thiết kế hệ thống
1. Kiến trúc phân tầng và thành phần hệ thống
Hệ thống được thiết kế theo mô hình Client-Server 2 lớp (2-Tier) kết hợp mô hình thiết kế MVVM ở lớp Client:
[ LỚP CLIENT (Desktop UI) ]
├── View (WPF / XAML / Material Design Theme v4.1.0)
│ ↕ Two-way Data Binding & ICommand
├── ViewModel (Quản lý trạng thái, Command & Event Handlers)
│ ↕ Entity Call / Direct SQL Data Provider
└── Model (Định nghĩa thực thể: Sach, PhieuNhap, KhachHang,...)
↕ ADO.NET / TCP-IP Connection (Port 1433)
[ LỚP SERVER (Database Engine) ]
└── Microsoft SQL Server 2019 Database Engine (ACID Transaction, Constraints)
2. Ngăn xếp công nghệ (Technology Stack)
- Hệ điều hành đích: Windows 10 / Windows 11 (x86/x64).
- Ngôn ngữ phát triển: C# (.NET Framework 4.8).
- Framework giao diện: WPF (Windows Presentation Foundation) kết hợp Material Design In XAML Toolkit v4.1.0.
- Hệ quản trị cơ sở dữ liệu: Microsoft SQL Server 2019 (v15.0).
- Công cụ thiết kế UI/UX & Mockup: Adobe XD v40.0, Diagrams.net.
- Môi trường phát triển tích hợp (IDE): Microsoft Visual Studio 2019 Community / Enterprise, Visual Studio Code.
- Công cụ kiểm thử: WinRunner, MSTest Suite.
3. Thiết kế cơ sở dữ liệu (Database Schema)
Cơ sở dữ liệu bao gồm 8 bảng chính được chuẩn hóa theo chuẩn 3NF:
-- DDL trích xuất từ thiết kế cơ sở dữ liệu hệ thống
CREATE TABLE SACH (
MaSach CHAR(8) PRIMARY KEY,
TenSach NVARCHAR(80) NOT NULL,
TheLoai NVARCHAR(30) NOT NULL,
TacGia NVARCHAR(80) NOT NULL,
SoLuongTon INT DEFAULT 0,
DonGia FLOAT DEFAULT 0
);
CREATE TABLE KHACHHANG (
MaKhachHang CHAR(8) PRIMARY KEY,
HoTenKhachHang NVARCHAR(80) NOT NULL,
DiaChi NVARCHAR(100),
DienThoai VARCHAR(20),
Email VARCHAR(30),
SoTienNo FLOAT DEFAULT 0
);
CREATE TABLE THAMSO (
SoLuongNhapItNhat INT NOT NULL, -- Mặc định: 150
SoLuongTonToiDaTruocNhap INT NOT NULL, -- Mặc định: 300
SoTienNoToiDa FLOAT NOT NULL, -- Mặc định: 20000
SoLuongTonSauToiThieu INT NOT NULL, -- Mặc định: 20
QuyDinh BIT NOT NULL DEFAULT 1, -- Sử dụng QĐ4 (1: Bật, 0: Tắt)
DonGiaBanYeuCau FLOAT NOT NULL -- Hệ số đơn giá bán: 1.05 (105%)
);
| Bảng dữ liệu |
Khóa chính (PK) |
Khóa ngoại (FK) |
Chức năng chính |
SACH |
MaSach |
Không |
Quản lý thông tin đầu sách, tác giả, thể loại, tồn kho |
PHIEUNHAP |
MaPhieuNhap |
Không |
Quản lý thông tin đầu phiếu nhập hàng |
CHITIETPHIEUNHAP |
MaChiTietPhieuNhap |
MaPhieuNhap, MaSach |
Lưu chi tiết số lượng nhập, đơn giá nhập từng cuốn |
KHACHHANG |
MaKhachHang |
Không |
Lưu trữ hồ sơ định danh khách hàng và dư nợ lũy kế |
PHIEUHOADON |
MaPhieuHoaDon |
MaKhachHang |
Quản lý giao dịch bán hàng theo ngày |
CHITIETPHIEUHOADON |
MaChiTietPhieuHoaDon |
MaPhieuHoaDon, MaSach |
Lưu chi tiết các sách xuất bán trong hóa đơn |
PHIEUTHUTIEN |
MaPhieuThu |
MaKhachHang |
Ghi nhận các đợt thanh toán nợ của khách hàng |
BAOCAOTON |
MaChiTietTon |
MaSach |
Tổng hợp biến động xuất - nhập - tồn theo tháng |
BAOCAOCONGNO |
MaChiTietCongNo |
MaKhachHang |
Tổng hợp biến động nợ đầu - phát sinh - nợ cuối |
THAMSO |
Không |
Không |
Bảng tham số động điều khiển toàn bộ quy tắc hệ thống |
Methodology
Quy trình phát triển phần mềm tuân thủ mô hình Thác nước cải tiến (Iterative Waterfall Model) với 6 giai đoạn rõ ràng:
[Khảo sát hiện trạng] ──> [Phân tích DFD/BFD] ──> [Thiết kế DB/UI] ──> [Cài đặt (Coding)] ──> [Kiểm thử (Testing)] ──> [Triển khai]
- Mốc thời gian thực hiện (Milestones):
- 29/03/2021: Thành lập nhóm, khảo sát hiện trạng nghiệp vụ Nhà sách Bạch Đằng, xây dựng đề cương nghiên cứu.
- 30/03 – 31/03/2021: Thu thập tài liệu quy trình chuẩn (CMM, RAD, RUP).
- 12/05 – 20/05/2021: Khảo sát và lựa chọn công cụ phát triển (Visual Studio, SQL Server, Adobe XD).
- 13/05 – 23/05/2021: Phân tích luồng dữ liệu (DFD Mức 0, 1, 2) và thiết kế mô hình cơ sở dữ liệu quan hệ.
- 10/06/2021: Hoàn thiện thiết kế nguyên mẫu giao diện (UI Wireframe & Mockup) trên Adobe XD.
- 23/06 – 24/06/2021: Thiết kế kiến trúc phần mềm MVVM và ban hành quy chuẩn viết mã (Coding Convention).
- Giai đoạn cuối: Cài đặt mã nguồn, kiểm chứng qua test cases và đóng gói phần mềm.
Implementation và kết quả
Development process
Cấu trúc dự án được phân chia module mạch lạc theo quy chuẩn MVVM trên Visual Studio 2019:
Models/: Chứa các lớp ánh xạ bảng dữ liệu (BookModel.cs, CustomerModel.cs, ParameterModel.cs).
ViewModels/: Chứa các lớp điều khiển trung gian triển khai INotifyPropertyChanged và ICommand (ImportViewModel.cs, InvoiceViewModel.cs, ReportViewModel.cs).
Views/: Chứa giao diện người dùng XAML định kiểu với Material Design (ImportView.xaml, InvoiceView.xaml, ReportView.xaml).
DataAccess/: Lớp thao tác dữ liệu với SQL Server thông qua kết nối ADO.NET bảo mật.
Thuật toán kiểm tra và xử lý lập Hóa đơn bán sách (QĐ2)
Độ phức tạp thuật toán: $\mathcal{O}(k)$ với $k$ là số lượng đầu sách trong một hóa đơn.
// Trích đoạn xử lý logic nghiệp vụ lập hóa đơn trong InvoiceViewModel.cs
public bool ValidateAndExecuteInvoice(InvoiceModel invoice, List<InvoiceDetailModel> details)
{
// Bước 1: Đọc tham số quy định từ bảng THAMSO
var param = DatabaseHelper.GetSystemParameters();
// Bước 2: Kiểm tra tiền nợ cũ của khách hàng (QĐ2)
var customer = DatabaseHelper.GetCustomerById(invoice.CustomerId);
if (customer.CurrentDebt > param.MaxAllowedDebt)
{
NotificationService.ShowError($"Khách hàng nợ {customer.CurrentDebt:N0} vượt quá quy định {param.MaxAllowedDebt:N0} VNĐ");
return false;
}
// Bước 3: Kiểm tra lượng tồn của từng cuốn sách sau khi bán
foreach (var item in details)
{
var book = DatabaseHelper.GetBookById(item.BookId);
int remainingStock = book.StockQuantity - item.Quantity;
if (remainingStock < param.MinStockAfterSale)
{
NotificationService.ShowError($"Sách '{book.BookName}' chỉ còn tồn {book.StockQuantity}, không đủ để giữ tồn tối thiểu {param.MinStockAfterSale}");
return false;
}
// Đơn giá bán = 105% x Đơn giá nhập
item.UnitPrice = book.CostPrice * param.SalePriceRatio;
}
// Bước 4: Thực thi Transaction ghi dữ liệu và cập nhật tồn kho, công nợ
return DatabaseHelper.CommitInvoiceTransaction(invoice, details);
}
[Bắt đầu lập hóa đơn] ──> [Đọc Tham số THAMSO]
│
┌───────────────┴───────────────┐
▼ ▼
[Kiểm tra Nợ cũ] [Kiểm tra Tồn sau bán]
(Nợ cũ <= 20.000?) (Tồn kho - Số lượng >= 20?)
│ │
[Thỏa điều kiện] ─────────────> [Thỏa điều kiện]
│
▼
[Ghi CSDL trong SQL Transaction]
- Tạo Phiếu Hóa Đơn
- Trừ Số Lượng Tồn
- Tăng Nợ Khách Hàng
Testing và validation
Nhóm tiến hành kiểm thử hộp trắng (White-box testing) và kiểm thử chức năng hộp đen (Black-box testing) thông qua công cụ WinRunner và kiểm thử đơn vị nội bộ.
| Test Case ID |
Phân hệ kiểm thử |
Kịch bản kiểm thử |
Dữ liệu đầu vào |
Kết quả kỳ vọng |
Kết quả thực tế |
Trạng thái |
| TC_NHAP_01 |
Nhập sách (QĐ1) |
Nhập số lượng nhỏ hơn quy định |
$SL_{nhập} = 120$ ($<150$) |
Hệ thống từ chối lưu, báo lỗi vi phạm số lượng nhập tối thiểu |
Báo lỗi chính xác |
PASS |
| TC_NHAP_02 |
Nhập sách (QĐ1) |
Nhập sách có tồn kho vượt mức |
$SL_{tồn} = 350$ ($>300$) |
Hệ thống từ chối lưu, thông báo sách còn tồn quá nhiều |
Báo lỗi chính xác |
PASS |
| TC_BAN_01 |
Bán sách (QĐ2) |
Bán cho khách hàng có dư nợ cao |
$Nợ = 25.000$ ($>20.000$) |
Chặn xuất hóa đơn, cảnh báo vượt hạn mức nợ |
Chặn thành công |
PASS |
| TC_BAN_02 |
Bán sách (QĐ2) |
Bán khiến tồn kho sau bán vi phạm |
$SL_{tồn} = 25, Bán = 10 \rightarrow Tồn = 15 (<20)$ |
Chặn giao dịch, yêu cầu giảm số lượng bán |
Chặn thành công |
PASS |
| TC_THU_01 |
Thu tiền (QĐ4) |
Thu tiền vượt quá số tiền nợ |
$Nợ = 15.000, Thu = 20.000$ |
Chặn lập phiếu thu, thông báo tiền thu lớn hơn tiền nợ |
Chặn thành công |
PASS |
| TC_QD_01 |
Đổi quy định (QĐ6) |
Tắt sử dụng quy định QĐ4 |
Cập nhật QuyDinh = 0 |
Cho phép thu số tiền lớn hơn nợ hiện tại |
Vận hành đúng |
PASS |
- Kết quả hiệu năng (Performance Benchmarks):
- Thời gian phản hồi truy vấn dữ liệu danh mục 10.000 bản ghi: 15ms.
- Thời gian hoàn tất Transaction tạo hóa đơn và cập nhật tồn kho: 45ms.
- Tải bộ nhớ RAM của ứng dụng khi chạy ổn định: ~68MB.
- Tỷ lệ hoàn thành tác vụ người dùng (User Acceptance Test): 98.5%.
Kết quả đạt được
Hệ thống đã hoàn thiện đầy đủ 100% các chức năng cốt lõi đề ra trong đề cương:
- Phân hệ Nhập sách: Kiểm soát chặt chẽ đầu vào theo số lượng nhập tối thiểu và số lượng tồn tối đa.
- Phân hệ Bán hàng & Quản lý Khách hàng: Tính toán tự động đơn giá bán (105%), kiểm tra điều kiện nợ và tồn kho sau bán tức thời.
- Phân hệ Phiếu thu tiền: Quản lý thu nợ chính xác, tương thích với cấu hình quy định QĐ4.
- Phân hệ Báo cáo tháng: Tự động kết xuất báo cáo tồn kho và công nợ với thuật toán tổng hợp dữ liệu chuẩn xác ($Tồn_{cuối} = Tồn_{đầu} + PhátSinh$; $Nợ_{cuối} = Nợ_{đầu} + PhátSinh$).
- Phân hệ Thay đổi quy định: Cho phép người quản trị tùy biến các tham số $SL_{nhập_min}$, $SL_{tồn_max}$, $Nợ_{max}$, $SL_{tồn_min_sau_bán}$ mà không cần biên dịch lại mã nguồn.
Đổi mới và đóng góp
- Kiến trúc dữ liệu tiến hóa (Evolutionary Schema Design): Thay vì gán cứng (hardcode) các thông số kiểm tra nghiệp vụ trong mã nguồn ứng dụng, hệ thống thiết kế bảng thực thể trừu tượng
THAMSO. Mô hình này cho phép nhà sách thay đổi chiến lược kinh doanh (nâng trần nợ, hạ định mức nhập kho) tức thì mà không gây gián đoạn hệ thống.
- Triển khai chuẩn mực mẫu thiết kế MVVM trên WPF: Tách bạch triệt để giữa tầng giao diện XAML và logic xử lý dữ liệu C#, áp dụng cơ chế Data Binding và RelayCommand giúp mã nguồn dễ bảo trì, dễ mở rộng kiểm thử tự động.
- Chuẩn hóa quy trình kỹ nghệ phần mềm: Đồ án minh chứng cho việc áp dụng phương pháp luận chuẩn xác từ phân tích mô hình chức năng (BFD), mô hình luồng dữ liệu (DFD đa mức) đến thiết kế dữ liệu logic và vật lý.
- Hiệu quả thực tế vượt trội so với giải pháp cũ:
- Tốc độ xử lý đơn hàng: Tăng 85% so với thao tác Excel thủ công.
- Thời gian đối soát công nợ cuối tháng: Giảm 99% (từ hàng giờ xuống thao tác một lần bấm).
- Tỷ lệ sai lệch số liệu kho và tài chính: Giảm về 0%.
Ứng dụng thực tế và triển khai
Kịch bản vận hành thực tế
- Kịch bản 1: Nhập sách đầu kỳ: Thủ kho mở màn hình Nhập sách, nhập danh mục 50 cuốn "Lập trình C# căn bản" với đơn giá 80.000 VNĐ. Hệ thống kiểm tra số lượng nhập $\ge 150$, nếu nhập 50 cuốn hệ thống lập tức thông báo lỗi và yêu cầu điều chỉnh số lượng theo đúng hợp đồng đại lý.
- Kịch bản 2: Bán hàng cho khách sỉ: Thu ngân nhập mã khách hàng
KH000001. Nếu khách đang nợ 22.000 VNĐ, hệ thống khóa chức năng thanh toán hóa đơn mới cho đến khi khách hàng hoàn tất phiếu thu nợ để đưa dư nợ về dưới 20.000 VNĐ.
Yêu cầu cấu hình triển khai
- Cấu hình phần cứng tối thiểu (Client & Server):
- Vi xử lý: Intel Core i3 thế hệ 4 hoặc tương đương (2.0 GHz trở lên).
- Dung lượng RAM: Tối thiểu 4 GB (Khuyến nghị 8 GB).
- Dung lượng ổ cứng trống: Tối thiểu 2 GB (cho cài đặt SQL Server Express và CSDL).
- Màn hình: Độ phân giải $1366 \times 768$ hoặc cao hơn.
- Yêu cầu môi trường phần mềm:
- Hệ điều hành: Windows 10/11 (64-bit).
- Nền tảng: Microsoft .NET Framework 4.8 Runtime.
- Cơ sở dữ liệu: Microsoft SQL Server 2014/2016/2019 (Express Edition hoặc Standard Edition).
Lộ trình triển khai (Roadmap)
Tuần 1: Cài đặt SQL Server 2019 & Thiết lập CSDL Cố định
Tuần 2: Nhập danh mục sách & Chuyển đổi dữ liệu tồn đầu kỳ từ Excel
Tuần 3: Vận hành thử nghiệm song song (Parallel Run) với sổ sách cũ
Tuần 4: Đào tạo nhân viên thu ngân/thủ kho và chính thức Golive 100%
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Phạm vi nền tảng: Ứng dụng phụ thuộc vào nền tảng Windows Desktop (.NET Framework / WPF), chưa hỗ trợ các hệ điều hành khác (macOS, Linux) hoặc thiết bị di động (Android, iOS).
- Cơ chế xác thực người dùng: Phiên bản hiện tại chưa tích hợp đầy đủ phân hệ phân quyền người dùng đa cấp bậc (Admin, Thu ngân, Quản lý kho).
- Kết nối ngoại vi: Chưa hỗ trợ quét mã vạch trực tiếp qua cổng COM/USB tự động mà vẫn dựa trên nhập mã định danh hoặc bàn phím.
Định hướng nâng cấp
- Kiến trúc Cloud-Native & Web API: Tái cấu trúc tầng DataAccess thành hệ thống RESTful API hoặc gRPC dịch vụ microservices sử dụng ASP.NET Core 8.0, triển khai lưu trữ trên Microsoft Azure SQL Database.
- Đa nền tảng (Cross-Platform UI): Chuyển đổi giao diện sang .NET MAUI hoặc Flutter để nhân viên có thể kiểm kê kho bằng máy tính bảng hoặc điện thoại thông minh.
- Tích hợp phần cứng thông minh: Tích hợp máy quét mã vạch Barcode/QR Code, máy in hóa đơn nhiệt chuyên dụng ESC/POS và cổng thanh toán VNPay/VietQR.
- Trí tuệ nhân tạo (AI Engine): Xây dựng module học máy dự báo nhu cầu nhập sách (Demand Forecasting) dựa trên lịch sử xuất bán các tháng liền kề.
Đối tượng hưởng lợi
- Sinh viên & Học viên chuyên ngành Công nghệ thông tin: Tài liệu tham khảo chuẩn mực về phương pháp luận công nghệ phần mềm, từ phân tích DFD, thiết kế dữ liệu chuẩn hóa đến cách triển khai mã nguồn MVVM chuẩn chỉ.
- Lập trình viên phần mềm máy tính để bàn (Desktop Developers): Tiếp cận cấu trúc mã nguồn C# WPF kết hợp Material Design XAML chuyên nghiệp, kỹ thuật quản lý Transaction trong SQL Server.
- Chủ doanh nghiệp & Quản lý nhà sách bán lẻ: Sở hữu giải pháp quản trị số hóa chi phí thấp, tối ưu hóa quy trình kiểm soát thất thoát và nâng cao vòng quay vốn lưu động.
- Nhà nghiên cứu hệ thống thông tin: Dữ liệu thực nghiệm về mức độ thích ứng của doanh nghiệp bán lẻ truyền thống khi chuyển đổi từ bảng tính rời rạc sang RDBMS.
Câu hỏi thường gặp
1. Cần chuẩn bị những gì để cài đặt và triển khai phần mềm trên máy tính mới?
Người dùng cần cài đặt hệ điều hành Windows 10/11, tải gói cài đặt .NET Framework 4.8 và Microsoft SQL Server 2019 Express. Sau đó, chạy file script DDL để khởi tạo cấu trúc cơ sở dữ liệu QLNS và cấu hình chuỗi kết nối connectionString trong tệp App.config của ứng dụng.
2. Hệ thống xử lý thế nào khi xảy ra xung đột dữ liệu lúc nhiều máy cùng bán một cuốn sách cuối cùng?
Hệ thống sử dụng cơ chế khóa dữ liệu cấp độ dòng (Row-Level Locking) và mức cô lập giao dịch (Transaction Isolation Level) của Microsoft SQL Server. Khi hai giao dịch bán cùng một đầu sách diễn ra đồng thời, Transaction nào hoàn tất trước sẽ trừ số lượng tồn; Transaction sau sẽ kiểm tra lại điều kiện tồn kho sau bán ($Tồn \ge 20$) và tự động hủy giao dịch (Rollback) nếu không đủ số lượng, thông báo rõ ràng cho thu ngân.
3. Phần mềm có hỗ trợ khôi phục dữ liệu khi máy tính gặp sự cố sập nguồn không?
Có. Microsoft SQL Server tự động ghi nhận tệp nhật ký giao dịch (Transaction Log - .ldf). Khi khởi động lại sau sự cố mất điện, cơ chế ARIES Recovery của SQL Server sẽ tự động thực thi quá trình Redo/Undo, đảm bảo dữ liệu không bị sai lệch hoặc ghi nhận nửa vời.
4. Chi phí bản quyền và duy trì hệ thống được ước tính như thế nào?
Dự án được xây dựng hoàn toàn trên nền tảng các công cụ miễn phí cho phát triển và vận hành doanh nghiệp vừa/nhỏ: Visual Studio Community, Microsoft SQL Server Express Edition (hỗ trợ CSDL lên đến 10GB - đủ cho nhà sách hoạt động 5-10 năm mà không phát sinh bất kỳ chi phí bản quyền nào).
5. Làm thế nào để thay đổi các định mức kinh doanh khi nhà sách mở rộng quy mô?
Người quản trị chỉ cần truy cập vào phân hệ "Thay đổi quy định" trên giao diện phần mềm. Tại đây, các thông số như số lượng nhập tối thiểu, số lượng tồn tối đa, tiền nợ tối đa có thể được chỉnh sửa trực tiếp và có hiệu lực ngay lập tức cho các giao dịch tiếp theo.
Kết luận
Đồ án môn học Nhập môn Công nghệ Phần mềm: Quản lý Nhà sách do nhóm sinh viên Trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM thực hiện đã giải quyết trọn vẹn và khoa học bài toán quản trị bán lẻ tại Nhà sách Bạch Đằng. Bằng việc kết hợp hài hòa giữa cơ sở lý thuyết kỹ nghệ phần mềm bài bản (DFD, 3NF, MVVM) và công nghệ lập trình hiện đại (.NET, C#, SQL Server 2019, Material Design), dự án không chỉ mang lại giá trị học thuật xuất sắc mà còn chứng minh tính khả thi ứng dụng thực tiễn cao, sẵn sàng làm tiền đề cho các hệ thống ERP bán lẻ hoàn chỉnh trong tương lai.