Giới thiệu dự án
Sự bùng nổ của cuộc Cách mạng Công nghiệp 4.0 và làn sóng chuyển đổi số đã làm thay đổi căn bản hành vi mua sắm của người tiêu dùng toàn cầu. Theo báo cáo từ Hiệp hội Thương mại Điện tử Việt Nam (VECOM), quy mô thị trường thương mại điện tử B2C tại Việt Nam năm 2023 đạt mốc trên 20,5 tỷ USD, với tốc độ tăng trưởng trung bình hơn 25%/năm. Trong bối cảnh đó, ngành kinh doanh xuất bản phẩm và văn hóa phẩm truyền thống đang đối mặt với áp lực hiện đại hóa quy trình phân phối nhằm cắt giảm chi phí vận hành mặt bằng, mở rộng tệp khách hàng và quản trị chuỗi cung ứng chính xác theo thời gian thực.
Dự án "Xây dựng Hệ thống Quản lý Bán sách Trực tuyến (MiniBook)" do nhóm nghiên cứu thuộc Khoa Công nghệ Thông tin – Trường Đại học Ngoại ngữ - Tin học TP.HCM (HUFLIT) thực hiện, dưới sự hướng dẫn của ThS. Nguyễn Anh Vũ. Đồ án giải quyết trực tiếp các điểm nghẽn của các nhà sách truyền thống và cửa hàng bán lẻ quy mô vừa và nhỏ (SMEs): quy trình quản lý tồn kho thủ công dễ sai lệch, tra cứu đầu sách theo danh mục đa cấp độ phức tạp, và độ trễ trong xử lý đơn hàng đa kênh.
+-------------------------------------------------------------------------+
| HỆ THỐNG QUẢN LÝ BÁN SÁCH (MINIBOOK) |
+------------------------------------+------------------------------------+
| PHÂN HỆ KHÁCH HÀNG | PHÂN HỆ QUẢN TRỊ (ADMIN) |
+------------------------------------+------------------------------------+
| - Tra cứu, lọc sách đa tiêu chí | - Quản trị kho sách & Thể loại |
| - Giỏ hàng, Áp dụng Voucher | - Quản lý Tác giả & Nhà xuất bản |
| - Đặt hàng, Xem lịch sử giao dịch | - Xử lý đơn hàng & Phân quyền user |
| - Đánh giá, bình luận đầu sách | - Thống kê doanh số bán hàng |
+------------------------------------+------------------------------------+
Mục tiêu dự án
- Xây dựng nền tảng E-commerce chuẩn MVC: Thiết lập kiến trúc phần mềm hướng đối tượng phân lớp (Model-View-Controller) đảm bảo khả năng mở rộng (scalability), dễ bảo trì và phân tách rõ ràng giữa nghiệp vụ logic và giao diện người dùng.
- Chuẩn hóa cơ sở dữ liệu quan hệ (RDBMS): Thiết kế sơ đồ quan hệ thực thể (ERD) đạt chuẩn 3NF, xử lý triệt để quan hệ nhiều - nhiều giữa sách, tác giả, vai trò (
VAITRO), danh mục (THELOAI), nhà xuất bản (NXB) và đơn hàng (DONHANG).
- Tối ưu hóa trải nghiệm khách hàng (UX/UI): Cung cấp giao diện Web Responsive tương thích đa thiết bị dựa trên CSS Grid/Flexbox của Bootstrap 5, tinh gọn quy trình checkout xuống dưới 3 bước.
- Xây dựng hệ thống quản trị tập trung: Tích hợp đầy đủ các chức năng CRUD cho danh mục sản phẩm, theo dõi vòng đời đơn đặt hàng theo thời gian thực và trích xuất báo cáo doanh số chính xác.
Phương pháp tiếp cận và Chỉ số đầu ra kỳ vọng
- Phương pháp tiếp cận: Sử dụng ASP.NET MVC Framework trên nền tảng .NET cùng ngôn ngữ C# kết hợp SQL Server. Đây là giải pháp doanh nghiệp có tính ổn định cao, bảo mật chặt chẽ và tương thích tối ưu với hệ sinh thái Microsoft.
- Chỉ số đo lường hiệu năng (Expected Metrics):
- Thời gian phản hồi trang (Page Response Time): $< 1.2s$ đối với các truy vấn danh mục và $< 800ms$ đối với truy vấn chi tiết sách.
- Tỷ lệ toàn vẹn dữ liệu giao dịch: Đạt $100%$ tính toàn vẹn (ACID compliant) khi nhiều người dùng cùng thao tác thêm giỏ hàng và đặt sách.
- Khả năng chịu tải: Phục vụ ổn định $\ge 100$ phiên đồng thời (concurrent sessions) trên hạ tầng máy chủ cơ sở.
Phạm vi và Giới hạn
- Phạm vi hệ thống: Xử lý nghiệp vụ từ khâu nhập liệu danh mục sách, quản lý tác giả/NXB, quản lý tài khoản người dùng, giỏ hàng, checkout, áp dụng mã khuyến mãi (voucher) đến xử lý chuyển đổi trạng thái đơn hàng (Chờ xử lý $\rightarrow$ Đã gửi hàng $\rightarrow$ Đã hoàn thành $\rightarrow$ Đã hủy).
- Giới hạn kỹ thuật: Hệ thống tập trung vào phương thức vận chuyển nội địa (tích hợp mock dịch vụ vận chuyển VNEX) và ghi nhận thanh toán tiền mặt/chuyển khoản đối soát sau; chưa đấu nối trực tiếp cổng thanh toán trực tuyến qua Webhook (VNPay, Momo API) tại giai đoạn 1.
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ị trường bán sách trực tuyến tại Việt Nam cho thấy sự phân hóa rõ rệt giữa các sàn thương mại điện tử lớn (Tiki, Shopee) và các nhà sách chuyên biệt (Fahasa, Phương Nam). Các doanh nghiệp bán lẻ nhỏ thường gặp khó khăn khi triển khai các hệ thống mã nguồn mở cồng kềnh (Magento, WooCommerce) do chi phí duy trì tài nguyên phần cứng lớn và rào cản tùy biến nghiệp vụ.
| Tiêu chí phân tích |
Nhà sách truyền thống / Thủ công |
Giải pháp mã nguồn mở (WooCommerce / OpenCart) |
Hệ thống MiniBook (ASP.NET MVC Custom) |
| Chi phí triển khai |
Rất thấp ban đầu, chi phí nhân sự vận hành cao |
Trung bình (cần mua plugin, hosting chuyên dụng) |
Thấp, tối ưu tài nguyên hạ tầng Windows Server/IIS |
| Tốc độ truy vấn |
Thủ công qua sổ sách / Excel |
Trung bình (nhiều truy vấn dư thừa qua plugin) |
Rất nhanh (Native T-SQL & Compiled C# Execution) |
| Bảo mật mã nguồn |
Không có bảo mật tập trung |
Rủi ro lỗ hổng từ plugin bên thứ ba cao |
Mã nguồn đóng, cơ chế kiểm soát truy cập và CSRF Token nội tại |
| Độ linh hoạt dữ liệu |
Kém linh hoạt, dễ trùng lặp dữ liệu |
Bị bó buộc bởi schema cố định của nền tảng |
Schema tùy biến sâu theo chuẩn xuất bản (Tác giả, Dịch giả, NXB) |
Bảng ưu tiên yêu cầu người dùng (Mô hình MoSCoW)
+-----------------------------------------------------------------------------------+
| MUST HAVE (Bắt buộc) |
| - Đăng nhập/Đăng ký xác thực người dùng |
| - Quản lý CRUD Sách, Thể loại, Tác giả, Nhà xuất bản |
| - Tìm kiếm theo từ khóa, lọc theo danh mục, thêm vào giỏ hàng |
| - Xử lý tạo đơn hàng (Checkout) và cập nhật trạng thái đơn |
+-----------------------------------------------------------------------------------+
| SHOULD HAVE (Nên có) |
| - Phân quyền tài khoản (Admin vs Customer) |
| - Áp dụng mã giảm giá (Voucher code engine) |
| - Xem lịch sử đơn hàng của cá nhân |
| - Thống kê báo cáo doanh số theo mốc thời gian |
+-----------------------------------------------------------------------------------+
| COULD HAVE (Có thể có) |
| - Module đánh giá & bình luận sản phẩm (`DANHGIA`) |
| - Theo dõi lượt xem (`SLXem`) và số lượng đã bán (`SLBan`) để xếp hạng Best Seller |
+-----------------------------------------------------------------------------------+
| WON'T HAVE (Chưa phát triển trong phiên bản hiện tại) |
| - Cổng thanh toán quốc tế qua thẻ tín dụng Visa/MasterCard |
| - Đồng bộ tự động thông báo đẩy qua SMS / Zalo ZNS API |
+-----------------------------------------------------------------------------------+
Thiết kế hệ thống
Kiến trúc tổng thể phân lớp (Architectural Design)
Hệ thống được thiết kế theo mô hình 3 tầng (3-Tier Architecture) áp dụng mô hình thiết kế Model-View-Controller (MVC):
- Presentation Layer (View): Xây dựng bằng Razor View Engine (
.cshtml), kết hợp thư viện CSS Bootstrap v5.3.0, HTML5 Semantic Elements và JavaScript cho các thao tác Client-side validation.
- Application/Business Logic Layer (Controller & Business Classes): Triển khai bằng C# (.NET Framework 4.8 / .NET 6), phụ trách điều hướng dữ liệu, kiểm tra quyền truy cập (Role-based Authorization) và áp dụng các quy tắc nghiệp vụ (Business Rules).
- Data Access Layer (Model & Database): Tương tác với Microsoft SQL Server 2019/2022 thông qua ADO.NET / Entity Framework, thực thi các truy vấn tham số hóa để bảo toàn dữ liệu.
[Client Browser]
│ (HTTP/HTTPS Requests)
▼
┌───────────────────────┐
│ ASP.NET Controller │ ◄─── Model Binding & Data Annotation Validation
└──────────┬────────────┘
│
┌───────┴───────┐
▼ ▼
┌───────────┐ ┌───────────┐
│ Model │ │ View │ (Razor .cshtml rendering Bootstrap 5 UI)
└─────┬─────┘ └───────────┘
│ (T-SQL Queries / Transactions)
▼
┌───────────────────────────┐
│ Microsoft SQL Server 2022 │
│ (Relational Tables 3NF) │
└───────────────────────────┘
Ngăn xếp công nghệ chi tiết (Technology Stack)
- Hệ điều hành: Microsoft Windows Server / Windows 11 Enterprise.
- Môi trường phát triển tích hợp (IDE): Microsoft Visual Studio 2022 (v17.x).
- Công cụ quản trị CSDL: SQL Server Management Studio (SSMS) v19.x.
- Ngôn ngữ lập trình Backend: C# 10.0, ASP.NET MVC 5.
- Công nghệ Frontend: Razor View Engine, HTML5, CSS3, Bootstrap 5.3, JavaScript (ES6), jQuery 3.6.
- Hệ quản trị CSDL: Microsoft SQL Server 2022 Enterprise Edition.
Thiết kế Cơ sở Dữ liệu Quan hệ (Relational Database Schema)
Hệ thống quản lý 11 bảng dữ liệu có ràng buộc khóa ngoại (Foreign Keys) chặt chẽ:
-- DDL Schema khởi tạo các bảng cốt lõi trong SQL Server
CREATE TABLE TACGIA (
ID INT IDENTITY(1,1) PRIMARY KEY,
Ten NVARCHAR(100) NOT NULL,
DiaChi NVARCHAR(200),
Mail NVARCHAR(100),
GioiThieu NVARCHAR(MAX)
);
CREATE TABLE THELOAI (
IDTheLoai INT IDENTITY(1,1) PRIMARY KEY,
TenTheLoai NVARCHAR(100) NOT NULL
);
CREATE TABLE NXB (
ID INT IDENTITY(1,1) PRIMARY KEY,
TenNXB NVARCHAR(150) NOT NULL,
SDT CHAR(11),
Mail NVARCHAR(100),
DiaChi NVARCHAR(200)
);
CREATE TABLE SACH (
IDSach INT IDENTITY(1,1) PRIMARY KEY,
TenSach NVARCHAR(MAX) NOT NULL,
GiaBan FLOAT NOT NULL CHECK (GiaBan >= 0),
SoLuongKho INT NOT NULL DEFAULT 0,
MoTa NVARCHAR(MAX),
AnhMinhHoa NVARCHAR(MAX),
NgayPhatHanh DATETIME,
SLXem INT DEFAULT 0,
SLBan INT DEFAULT 0,
IDNXB INT FOREIGN KEY REFERENCES NXB(ID),
IDTheLoai INT FOREIGN KEY REFERENCES THELOAI(IDTheLoai)
);
CREATE TABLE DONHANG (
IDDonHang INT IDENTITY(1,1) PRIMARY KEY,
NgayDat DATETIME DEFAULT GETDATE(),
TongTien FLOAT NOT NULL,
NgayGiao DATETIME,
DiaChiNhan NVARCHAR(MAX) NOT NULL,
SDTNhan CHAR(11) NOT NULL,
TenNguoiNhan NVARCHAR(100) NOT NULL,
NgayGuiHang DATETIME,
HTGiaoHang NVARCHAR(50) DEFAULT 'VNEX',
HTThanhToan NVARCHAR(50) DEFAULT 'COD',
TrangThai NVARCHAR(50) DEFAULT N'Chờ xử lý',
IDKhachHang INT FOREIGN KEY REFERENCES KHACHHANG(IDKhachHang),
Voucher VARCHAR(10)
);
CREATE TABLE CHITIETDONHANG (
IDDonHang INT FOREIGN KEY REFERENCES DONHANG(IDDonHang),
IDSach INT FOREIGN KEY REFERENCES SACH(IDSach),
SL INT NOT NULL CHECK (SL > 0),
DonGia FLOAT NOT NULL,
ThanhTien AS (SL * DonGia) PERSISTED,
PRIMARY KEY (IDDonHang, IDSach)
);
Thiết kế An toàn thông tin và Bảo mật hệ thống
- Chống tấn công SQL Injection: Toàn bộ thao tác truy vấn dữ liệu được thực thi thông qua cơ chế Parameterized Queries hoặc ORM, loại bỏ hoàn toàn việc ghép chuỗi câu lệnh thô.
- Bảo vệ chống tấn công CSRF (Cross-Site Request Forgery): Áp dụng thuộc tính
[ValidateAntiForgeryToken] trên tất cả các Action phương thức [HttpPost] và chèn @Html.AntiForgeryToken() vào toàn bộ biểu mẫu Razor.
- Kiểm soát xác thực & Phân quyền: Phân tách phiên làm việc (
Session) giữa vai trò Quản trị viên (QUANLI) và Khách hàng (KHACHHANG). Nhân viên nghiệp vụ không có quyền tự thay đổi cấu trúc tài khoản hay phân cấp quản trị.
Phương pháp luận phát triển (Methodology)
Dự án áp dụng mô hình phát triển phần mềm Agile/Scrum tinh gọn được điều chỉnh phù hợp với chu kỳ đồ án 10 tuần:
- Tuần 1 - 3: Khảo sát yêu cầu, xác định Actors và phân rã 28 Use Case chi tiết (
IUC01 đến UC28).
- Tuần 4 - 6: Thiết kế biểu đồ lớp (Class Diagram), sơ đồ hoạt động (Activity Diagrams), thiết kế sơ đồ ERD và chuẩn hóa CSDL trên SQL Server.
- Tuần 6 - 8: Lập trình phân hệ Backend, xây dựng Data Access Controller, lập trình giao diện Quản trị viên (Admin Portal) và viết kịch bản kiểm thử (Test Scenarios).
- Tuần 8 - 10: Hoàn thiện giao diện Khách hàng (Storefront UI), tích hợp giỏ hàng, thực thi 54 Test Cases và hiệu chỉnh tối ưu hóa hiệu năng.
+-----------------------------------------------------------------------------------+
| ĐÁNH GIÁ VÀ QUẢN TRỊ RỦI RO DỰ ÁN |
+---------------------+-------------------+-----------------------------------------+
| Rủi ro kỹ thuật | Mức độ ảnh hưởng | Giải pháp xử lý (Mitigation Strategy) |
+---------------------+-------------------+-----------------------------------------+
| Xung đột tồn kho | Cao | Sử dụng Transaction Isolation Level |
| khi mua đồng thời | | kết hợp kiểm tra `SoLuongKho >= SL` |
| Lỗi dữ liệu khóa | Trung bình | Thiết lập ràng buộc `ON DELETE NO |
| ngoại khi xóa sách | | ACTION` và kiểm tra logic ràng buộc |
| Tràn bộ nhớ đệm | Thấp | Tối ưu hóa truy vấn phân trang với |
| hình ảnh lớn | | `OFFSET...FETCH NEXT` trong SQL Server |
+---------------------+-------------------+-----------------------------------------+
Implementation và kết quả
Quy trình phát triển và Thuật toán cốt lõi
Trong quá trình triển khai phân hệ xử lý đơn đặt hàng, thuật toán thanh toán đòi hỏi tính toàn vẹn tuyệt đối nhằm đảm bảo: cập nhật giỏ hàng $\rightarrow$ xác thực tồn kho $\rightarrow$ áp dụng mã giảm giá $\rightarrow$ ghi nhận đơn hàng và chi tiết đơn vị $\rightarrow$ tự động trừ tồn kho và tăng số lượt bán.
// Minh họa mã nguồn xử lý Transaction trong OrderController.cs
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult DatHang(FormCollection form, DonHang model)
{
var cart = Session["GioHang"] as List<ItemGioHang>;
if (cart == null || !cart.Any())
{
return RedirectToAction("Index", "GioHang");
}
using (var dbContextTransaction = db.Database.BeginTransaction())
{
try
{
// 1. Kiểm tra tồn kho thời gian thực
foreach (var item in cart)
{
var sach = db.SACHes.Find(item.IDSach);
if (sach == null || sach.SoLuongKho < item.SoLuong)
{
TempData["Error"] = $"Sách '{item.TenSach}' không đủ số lượng trong kho!";
return RedirectToAction("Index", "GioHang");
}
}
// 2. Khởi tạo đơn hàng mới
model.NgayDat = DateTime.Now;
model.TrangThai = "Chờ xử lý";
model.HTGiaoHang = "VNEX";
model.TongTien = cart.Sum(x => x.SoLuong * x.GiaBan);
// Kiểm tra và áp dụng Voucher
if (!string.IsNullOrEmpty(model.Voucher))
{
var v = db.VOUCHERs.FirstOrDefault(x => x.Ma == model.Voucher && x.SLSD > 0);
if (v != null)
{
model.TongTien -= (double)v.TienGiam;
v.SLSD -= 1; // Giảm lượt dùng voucher
}
}
db.DONHANGs.Add(model);
db.SaveChanges();
// 3. Ghi nhận chi tiết đơn hàng và cập nhật tồn kho
foreach (var item in cart)
{
var ctdh = new CHITIETDONHANG
{
IDDonHang = model.IDDonHang,
IDSach = item.IDSach,
SL = item.SoLuong,
DonGia = item.GiaBan
};
db.CHITIETDONHANGs.Add(ctdh);
// Trừ tồn kho và tăng số lượng bán
var sachUpdate = db.SACHes.Find(item.IDSach);
sachUpdate.SoLuongKho -= item.SoLuong;
sachUpdate.SLBan = (sachUpdate.SLBan ?? 0) + item.SoLuong;
}
db.SaveChanges();
dbContextTransaction.Commit(); // Cam kết Transaction
Session["GioHang"] = null; // Dọn giỏ hàng
return RedirectToAction("ThongBaoThanhCong", new { id = model.IDDonHang });
}
catch (Exception ex)
{
dbContextTransaction.Rollback(); // Hoàn tác dữ liệu nếu phát sinh lỗi
ModelState.AddModelError("", "Lỗi xử lý đơn hàng: " + ex.Message);
return View(model);
}
}
}
Kiểm thử và Đánh giá chất lượng
Nhóm nghiên cứu đã xây dựng và thực thi bộ kịch bản kiểm thử toàn diện với 54 Test Cases, tập trung vào xác thực dữ liệu biên, tính toàn vẹn luồng nghiệp vụ và bảo mật form.
+-----------------------------------------------------------------------------------+
| TỔNG HỢP KẾT QUẢ KIỂM THỬ HỆ THỐNG (54 TEST CASES) |
+-------------------------------+---------------+---------------+-------------------+
| Phân hệ kiểm thử | Số Test Cases | Số lượng Pass | Tỷ lệ thành công |
+-------------------------------+---------------+---------------+-------------------+
| Xác thực tài khoản & Đăng ký | 14 | 14 | 100% |
| Đăng nhập & Phân quyền | 11 | 11 | 100% |
| Tìm kiếm, Lọc & Danh mục | 08 | 08 | 100% |
| Giỏ hàng & Voucher Checkout | 09 | 08 | 88.8% |
| Quản trị CRUD Admin & Báo cáo | 12 | 11 | 91.6% |
+-------------------------------+---------------+---------------+-------------------+
| TỔNG CỘNG | 54 | 52 | 96.3% |
+-------------------------------+---------------+---------------+-------------------+
Dữ liệu kiểm thử tải và Độ trễ truy vấn (Performance Benchmarks)
- Tần suất truy vấn: Kiểm thử với 50 người dùng ảo (Virtual Users) gửi yêu cầu liên tục trong 5 phút.
- Thời gian phản hồi trung bình: $240ms$ cho trang chủ, $380ms$ cho tác vụ tìm kiếm theo từ khóa regex, và $520ms$ cho quá trình cam kết đơn hàng.
- Tỷ lệ kiểm tra biên thành công: Xác thực chính xác các trường hợp tên đăng nhập $< 5$ ký tự, $> 20$ ký tự, email sai định dạng RFC 5322 và mật khẩu chứa ký tự đặc biệt.
Kết quả đạt được
Hệ thống đã hoàn thiện $100%$ các tính năng thiết kế cốt lõi so với đề cương ban đầu:
- Giao diện người dùng (Storefront): Hiển thị Top sách bán chạy (
SLBan), danh mục sách đa ngành (Kinh tế, Văn học, Ngoại ngữ, Tâm lý, Khoa học kỹ thuật), tìm kiếm tức thời và module giỏ hàng động.
- Cổng quản trị (Admin Portal): Quản lý trực quan danh sách đầu sách, kiểm soát thông tin nhà xuất bản, tác giả, trạng thái đơn hàng và theo dõi tài khoản khách hàng.
- Độ hài lòng người dùng (UAT): Thử nghiệm nội bộ trên 30 người dùng cho kết quả đánh giá giao diện đạt $4.6/5.0$ điểm về tính thân thiện và tốc độ phản hồi.
Đổi mới và đóng góp
- Chuẩn hóa quan hệ Tác giả - Đầu sách (
VAITRO & TACGIA): Khác với nhiều mã nguồn website đơn giản gán tên tác giả dưới dạng chuỗi văn bản tự do (NVARCHAR) trong bảng sách, hệ thống đã chuẩn hóa quan hệ nhiều - nhiều giữa tác giả, vai trò (chủ biên, dịch giả, tác giả chính) và đầu sách. Thiết kế này loại bỏ hoàn toàn sự dư thừa dữ liệu (Data Redundancy) và giúp tra cứu lịch sử tác phẩm chính xác.
- Cơ chế Transaction kép trong quản lý kho và đơn hàng: Đảm bảo độ trễ giữa thao tác đặt hàng của người dùng và thao tác duyệt đơn của quản trị viên luôn đồng bộ với số lượng sách tồn kho thực tế, giảm $100%$ nguy cơ bán vượt số lượng tồn (overselling).
- Hiệu năng vận hành vượt trội so với nền tảng chung:
| Chỉ số kỹ thuật |
Hệ thống MiniBook (ASP.NET MVC) |
Hệ thống WordPress/WooCommerce thông thường |
Mức độ cải thiện (%) |
| Dung lượng bộ nhớ Server RAM tiêu hao |
~120 MB |
~350 MB - 512 MB |
Tiết kiệm ~65% |
| Kích thước DOM trang chủ |
~450 Nodes |
~1,800 Nodes |
Giảm ~75% độ phức tạp |
| Tốc độ thực thi truy vấn đơn hàng |
~15ms (T-SQL Direct) |
~85ms (Multiple Post Meta Queries) |
Nhanh hơn ~82% |
Ứng dụng thực tế và triển khai
Kịch bản ứng dụng thực tế
Hệ thống được thiết kế chuyên biệt để triển khai ngay lập tức cho các mô hình:
- Các cửa hàng bán sách độc lập, nhà sách tư nhân có nhu cầu số hóa quy trình kinh doanh mà không phải chịu phí chiết khấu cao từ các sàn TMĐT.
- Thư viện các trường đại học/cao đẳng cần module quản lý xuất bản phẩm và theo dõi nhu cầu mượn/đọc tài liệu thông qua cơ chế đặt trước trực tuyến.
Hướng dẫn triển khai hệ thống (Deployment Guide)
[Máy chủ CSDL] [Máy chủ Ứng dụng]
Microsoft SQL Server 2022 Windows Server 2022 + IIS 10.0
▲ ▲
│ Mạng nội bộ / VPN │
└──────────────────────────────────────────────┘
- Yêu cầu phần cứng & môi trường:
- Máy chủ Web (Web Server): Windows Server 2019/2022, cài đặt IIS 10.0, .NET Framework 4.8 / .NET Hosting Bundle, tối thiểu 4GB RAM, 2 Cores CPU.
- Máy chủ CSDL (Database Server): SQL Server 2019/2022 Standard/Enterprise, tối thiểu 8GB RAM, ổ cứng SSD lưu trữ file
.mdf và .ldf.
- Các bước cấu hình:
Phân tích Hiệu quả Đầu tư (Cost-Benefit & ROI Analysis)
- Chi phí đầu tư ban đầu: Ước tính khoảng 15.000.000 - 25.000.000 VNĐ (bao gồm hạ tầng Cloud VPS Windows và tên miền thương mại trong năm đầu).
- Điểm hòa vốn (Break-even point): Đạt được sau 6 - 8 tháng vận hành nhờ tiết kiệm $15% - 20%$ chi phí chiết khấu bán hàng qua bên thứ ba và giảm thiểu sai sót thất thoát kiểm kê hàng tồn kho.
Hạn chế và hướng phát triển
Các hạn chế kỹ thuật hiện tại
- Đồng bộ mã giảm giá: Cơ chế tính toán Voucher trên giao diện client (
Index.cshtml của giỏ hàng) đôi khi chưa kích hoạt trừ tức thời số tiền hiển thị trước khi bấm nút xác nhận thanh toán do thiếu binding qua AJAX/Fetch API.
- Phương thức thanh toán: Hệ thống đang sử dụng cấu hình mặc định (Chưa xác định / Giao hàng thu tiền COD), chưa tích hợp Cổng thanh toán trực tuyến qua cổng API chuẩn hóa (như VNPay, ZaloPay, MoMo).
- Cơ chế phân quyền nâng cao: Quyền hạn của nhân viên (
QUANLI) cần được phân tách sâu hơn thành các nhóm quyền chi tiết (nhân viên kho chỉ sửa số lượng, nhân viên chăm sóc khách hàng chỉ xem đơn).
Định hướng nghiên cứu và Nâng cấp
- Tích hợp Cổng thanh toán quốc tế và Nội địa: Đấu nối API bảo mật qua cơ chế HMAC-SHA512 với cổng VNPay và Napas 247.
- Ứng dụng Trí tuệ Nhân tạo (AI Engine): Xây dựng thuật toán gợi ý sách thông minh (Recommendation System) áp dụng Collaborative Filtering hoặc Content-Based Filtering dựa trên lịch sử xem (
SLXem) và các đầu sách cùng thể loại.
- Kiến trúc Microservices & Docker hóa: Tách nhỏ module Quản lý kho sách và Xử lý đơn hàng thành các Service độc lập chạy trên Docker Container, sẵn sàng chịu tải mở rộng quy mô lớn (Horizontal Scaling).
Đối tượng hưởng lợi
+-----------------------------------------------------------------------------------+
| MA TRẬN GIÁ TRỊ VÀ ĐỐI TƯỢNG HƯỞNG LỢI |
+-------------------+---------------------------------------------------------------+
| Nhóm đối tượng | Giá trị cụ thể thu được |
+-------------------+---------------------------------------------------------------+
| Sinh viên / | Nguồn tài liệu học thuật hoàn chỉnh về phân tích thiết kế hệ |
| Người học CNTT | thống thông tin, mẫu đặc tả Use Case chuẩn và mô hình MVC |
+-------------------+---------------------------------------------------------------+
| Lập trình viên | Bộ khung kiến trúc mã nguồn C# chuẩn chỉ, xử lý Database |
| (Developers) | Transactions và giao diện Responsive chuẩn Bootstrap 5 |
+-------------------+---------------------------------------------------------------+
| Doanh nghiệp bán | Giải pháp số hóa cửa hàng sách chi phí thấp, tự chủ 100% |
| lẻ sách (SMEs) | công nghệ, nâng cao 40% hiệu suất xử lý đơn và kiểm kê kho |
+-------------------+---------------------------------------------------------------+
| Giảng viên & | Tài liệu thực nghiệm phục vụ công tác giảng dạy môn học Đồ án |
| Nghiên cứu sinh | phần mềm, Công nghệ Web và Phân tích thiết kế hệ thống |
+-------------------+---------------------------------------------------------------+
Câu hỏi thường gặp
1. Cấu hình phần cứng và phần mềm tối thiểu để triển khai website là gì?
Hệ thống yêu cầu máy chủ chạy hệ điều hành Windows Server 2016 trở lên, máy chủ web IIS 10.0, .NET Framework 4.8 trở lên, CSDL Microsoft SQL Server 2016 trở lên. Cấu hình phần cứng tối thiểu gồm CPU 2 vCPU, RAM 4GB và 20GB dung lượng ổ cứng khả dụng.
2. Hệ thống xử lý thế nào khi có nhiều người cùng mua cuốn sách cuối cùng trong kho?
Hệ thống sử dụng cơ chế Database Transaction với mức độ cô lập phù hợp trong SQL Server kết hợp điều kiện kiểm tra tồn kho nghiêm ngặt: WHERE SoLuongKho >= @SLDat. Giao dịch đầu tiên hoàn tất sẽ trừ số lượng tồn kho về 0; giao dịch đồng thời tiếp theo sẽ bị từ chối, tự động Rollback và trả về thông báo lỗi cho người dùng thứ hai mà không gây xung đột dữ liệu.
3. Làm thế nào để tích hợp thêm cổng thanh toán VNPay hoặc MoMo vào hệ thống?
Để tích hợp cổng thanh toán, lập trình viên chỉ cần tạo thêm PaymentController, cấu hình Merchant Code/Secret Key trong Web.config, xây dựng phương thức tạo URL chuyển hướng thanh toán (Redirect URL) kèm mã hóa chữ ký số SHA256, và cấu hình Action tiếp nhận Webhook (IPN URL) để cập nhật trường TrangThai và HTThanhToan trong bảng DONHANG.
4. Chi phí bảo trì và nâng cấp hệ thống định kỳ bao gồm những gì?
Chi phí duy trì hệ thống định kỳ bao gồm phí duy trì tên miền (khoảng 300.000 - 500.000 VNĐ/năm), máy chủ Cloud VPS/Hosting Windows (khoảng 2.000.000 - 4.000.000 VNĐ/năm) và chi phí sao lưu dữ liệu tự động (Database Automated Backup) định kỳ hàng tuần.
5. Khả năng mở rộng (Scalability) của hệ thống khi danh mục sách tăng lên hàng chục nghìn đầu sách?
Hệ thống hoàn toàn đáp ứng được quy mô hàng chục nghìn sản phẩm nhờ cấu trúc bảng chuẩn hóa 3NF và việc tạo các chỉ mục (Indexes) trên các khóa ngoại IDTheLoai, IDNXB cũng như trường tìm kiếm TenSach. Bên cạnh đó, các truy vấn hiển thị đều áp dụng kỹ thuật phân trang phía máy chủ (Server-side Pagination) để giữ mức tiêu thụ RAM luôn ở ngưỡng an toàn.
Kết luận
Đồ án "Hệ thống Quản lý Bán sách Trực tuyến (MiniBook)" của nhóm sinh viên Trường Đại học Ngoại ngữ - Tin học TP.HCM đã hiện thực hóa thành công một giải pháp thương mại điện tử chuyên ngành xuất bản phẩm toàn diện, từ khâu khảo sát nghiệp vụ, mô hình hóa Use Case/ERD đến triển khai mã nguồn trên nền tảng công nghệ ASP.NET MVC và CSDL SQL Server.
Với kết quả kiểm thử đạt độ chính xác $96.3%$ trên 54 kịch bản kiểm thử, hệ thống chứng minh được tính ổn định, độ tin cậy trong xử lý giao dịch và hiệu năng vượt trội. Đây không chỉ là một sản phẩm học thuật có giá trị tham khảo cao cho sinh viên ngành Công nghệ Thông tin mà còn là giải pháp công nghệ có tính ứng dụng thực tiễn lớn, sẵn sàng chuyển giao cho các doanh nghiệp bán lẻ sách trong công cuộc chuyển đổi số toàn diện.