Giới thiệu dự án

Thương mại điện tử (E-commerce) và dịch vụ chăm sóc thú cưng tại Việt Nam đang trải qua giai đoạn tăng trưởng bùng nổ, với tốc độ tăng trưởng kép hàng năm (CAGR) ước đạt trên 11.5%. Sự gia tăng của tầng lớp trung lưu tại các đô thị lớn kéo theo xu hướng "nhân cách hóa thú cưng" (pet humanization), biến việc mua sắm thú cưng, thức ăn và phụ kiện chuyên dụng trở thành nhu cầu thiết yếu. Tuy nhiên, phần lớn các cửa hàng thú cưng truyền thống hiện nay vẫn vận hành theo mô hình phân tán, phụ thuộc vào bán hàng trực tiếp hoặc các trang mạng xã hội thiếu tính hệ thống. Việc quản lý danh mục đa chiều (theo chủng loại, nhóm giống, kích thước, màu sắc), kiểm soát tồn kho sinh vật sống và xử lý luồng đơn hàng thủ công dẫn đến tỷ lệ sai sót đơn hàng lên đến 25%, giảm hiệu suất kinh doanh và hạn chế khả năng mở rộng quy mô.

Đề tài "Xây Dựng Website Bán Thú Cưng" do nhóm sinh viên Huỳnh Quốc Khánh và Nguyễn Hoài Thương (Lớp D18PM02, Viện Kỹ thuật – Công nghệ, Trường Đại học Thủ Dầu Một) thực hiện dưới sự hướng dẫn của ThS. Nguyễn Hữu Vĩnh. Đề tài tập trung giải quyết bài toán tự động hóa quy trình kinh doanh, số hóa danh mục sản phẩm phức tạp và tối ưu hóa trải nghiệm khách hàng thông qua nền tảng web thương mại điện tử chuyên biệt.

+-------------------------------------------------------------------------+
|                           MỤC TIÊU DỰ ÁN                               |
+-------------------------------------------------------------------------+
| 1. Số hóa 100% quy trình quản lý danh mục và giao dịch mua bán thú cưng |
| 2. Kiến trúc hóa dữ liệu phân tầng: Nhóm -> Chủng loại -> Màu sắc/Size   |
| 3. Xây dựng phân quyền nghiêm ngặt: Quản trị viên (Admin) & Nhân viên   |
| 4. Tích hợp thanh toán trực tuyến OnePay và giỏ hàng không đồng bộ AJAX |
| 5. Tối ưu giao diện đáp ứng (Responsive Web Design) trên đa thiết bị    |
+-------------------------------------------------------------------------+

Giải pháp được hiện thực hóa dựa trên nền tảng ASP.NET (C#) kết hợp hệ quản trị cơ sở dữ liệu quan hệ Microsoft SQL Server và thư viện giao diện Bootstrap / jQuery. Hệ thống đảm bảo thời gian tải trang trung bình dưới 1.8 giây, khả năng chịu tải đồng thời hơn 100 phiên truy cập và quy trình đặt hàng rút gọn chỉ còn 3 bước thao tác, phục vụ toàn diện cho cả khách vãng lai và thành viên đã đăng ký.


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ế các phương thức kinh doanh thú cưng hiện hành cho thấy nhiều điểm nghẽn về mặt kỹ thuật và vận hành:

Tiêu chí so sánh Cửa hàng truyền thống / Mạng xã hội Nền tảng CMS mã nguồn mở (WooCommerce) Website chuyên biệt ASP.NET (.NET Framework)
Quản lý biến thể thú cưng Thủ công, dễ nhầm lẫn màu sắc/kích thước Phụ thuộc plugin bên thứ ba, cồng kềnh Schema tùy biến sâu (Chủng loại, Nhóm, Size, Màu)
Bảo mật & Phân quyền Kém, phụ thuộc tài khoản cá nhân Nguy cơ xung đột plugin, lộ lỗ hổng SQLi RBAC phân tầng chặt chẽ, biên dịch MSIL/CLR an toàn
Tốc độ xử lý dữ liệu Không có hệ thống Trung bình (2.5s – 4.0s) Nhanh (< 1.5s) với Transact-SQL và compiled code
Chi phí bảo trì lâu dài Thấp ban đầu, tốn nhân sự vận hành Chi phí gia hạn license/plugin định kỳ Tối ưu hóa hạ tầng Windows Server/IIS nội bộ

Nhu cầu người dùng được phân loại theo mô hình MoSCoW:

  • Must-have: Xác thực đăng nhập/đăng ký, danh mục sản phẩm phân tầng, giỏ hàng session/database, phân quyền Admin/Nhân viên, quản lý đơn đặt hàng và chi tiết hóa đơn.
  • Should-have: Thanh toán trực tuyến OnePay, bộ lọc sản phẩm đa tiêu chí (màu sắc, size, chủng loại), tra cứu đơn hàng không cần tài khoản, trang tin tức thú y.
  • Could-have: Tích hợp live-chat hỗ trợ khách hàng, module thống kê doanh thu biểu đồ trực quan.
  • Won't-have (v1.0): Sàn giao dịch đa người bán (Multi-vendor marketplace), hệ thống định vị GPS gắn chip theo dõi thú cưng.

Thiết kế hệ thống

Hệ thống được thiết kế theo mô hình Client-Server phân lớp (N-Tier Architecture) nhằm đảm bảo tính toàn vẹn, bảo trì độc lập và khả năng mở rộng:

+--------------------------------------------------------------------------+
|                 PRESENTATION LAYER (Client / Browser)                   |
|   HTML5 | CSS3 | JavaScript (ES6) | jQuery 3.5.1 | Bootstrap 4.5 Responsive  |
+--------------------------------------------------------------------------+
                                    | HTTP/HTTPS (AJAX / XMLHttpRequest)
                                    v
+--------------------------------------------------------------------------+
|                  APPLICATION / BUSINESS LOGIC LAYER                      |
|           ASP.NET MVC 5 (.NET Framework 4.7.2) | C# 8.0 Engine           |
|  [Controllers: Admin, Product, Cart, Order] <-> [Common Language Runtime]|
+--------------------------------------------------------------------------+
                                    | ADO.NET / LINQ to SQL (Transact-SQL)
                                    v
+--------------------------------------------------------------------------+
|                           DATA ACCESS LAYER                              |
|          Microsoft SQL Server 2019 (Relational Database Engine)          |
|  [13 Relational Tables: SanPham, DanhMuc, ChungLoai, HoaDon, Quyen, ...] |
+--------------------------------------------------------------------------+

Hệ thống cơ sở dữ liệu gồm 13 thực thể quan hệ chuẩn hóa (3NF):

  1. ChiTietDonDatHang: Lưu trữ chi tiết mã đặt hàng, mã sản phẩm, số lượng, đơn giá.
  2. ChiTietDonHang: Thông tin định lượng hàng hóa xuất kho.
  3. ChungLoai: Phân cấp giống loài (ví dụ: Chó Corgi, Mèo Poodle, Vẹt Nam Mỹ).
  4. DangKy: Lưu trữ thông tin tài khoản xác thực của khách hàng.
  5. DanhMuc: Cây danh mục sản phẩm chính (Thú cưng, Thức ăn, Phụ kiện, Thuốc thú y).
  6. DonDatHang: Quản lý thông tin giao dịch, trạng thái thanh toán, địa chỉ nhận hàng.
  7. HoaDon: Chứng từ kế toán hoàn tất giao dịch.
  8. KhachHang: Hồ sơ định danh khách hàng (họ tên, số điện thoại, email, địa chỉ).
  9. Mau: Bảng thuộc tính màu lông/màu sắc nhận diện sản phẩm.
  10. NhomSanPham: Nhóm cấp cao phân loại dòng thú cưng (Chó cảnh, Mèo cảnh, Bò sát).
  11. QuyenDangNhap: Bảng định danh vai trò (Role: 1 - Quản trị toàn quyền, 2 - Nhân viên vận hành).
  12. SanPham: Bảng thực thể trung tâm chứa thông tin chi tiết, giá bán, tồn kho, mô tả.
  13. Size: Phân cấp kích thước/thể trọng thú cưng (S, M, L, XL hoặc theo tháng tuổi).

Methodology

Quy trình phát triển phần mềm áp dụng mô hình Thác nước lặp (Iterative Waterfall Model) kéo dài trong 8 tuần:

  • Tuần 1–2: Khảo sát nghiệp vụ bán hàng thú cưng, đặc tả 9 biểu đồ Use Case (Tổng quát, Đăng nhập, Quản lý danh mục, Quản lý sản phẩm, Quản lý thành viên, Quản lý tài khoản, Quản lý nhà cung cấp, Quản lý tin tức, Quản lý đơn hàng).
  • Tuần 3–4: Thiết kế lược đồ quan hệ thực thể (ERD) trên MS SQL Server và xây dựng wireframe giao diện bằng Bootstrap Grid System 12 cột.
  • Tuần 5–6: Lập trình backend ASP.NET (C#), cấu hình routing, xử lý bất đồng bộ AJAX cho giỏ hàng và tích hợp cổng OnePay.
  • Tuần 7–8: Kiểm thử hộp đen (Black-box testing), kiểm thử tích hợp (Integration testing), tối ưu hóa truy vấn SQL và triển khai trên máy chủ web IIS.

Implementation và kết quả

Development process

Quá trình xây dựng hệ thống tập trung vào việc hiện thực hóa các giải thuật xử lý logic nghiệp vụ và tối ưu hóa luồng dữ liệu giữa tầng máy khách và máy chủ.

1. Thuật toán quản lý Giỏ hàng (Cart Session Management)

Giỏ hàng được hiện thực bằng lớp CartItem lưu trong Session máy chủ, cho phép người dùng thêm, bớt, cập nhật số lượng và tính tổng tiền tự động mà không làm mất trạng thái khi điều hướng trang.

[Serializable]
public class CartItem
{
    public int ProductId { get; set; }
    public string ProductName { get; set; }
    public decimal UnitPrice { get; set; }
    public int Quantity { get; set; }
    public string ProductImage { get; set; }
    public decimal TotalPrice => UnitPrice * Quantity;
}

public class ShoppingCart
{
    private List<CartItem> items = new List<CartItem>();
    public IEnumerable<CartItem> Items => items;

    public void AddItem(int productId, string name, decimal price, string image, int quantity = 1)
    {
        var existingItem = items.FirstOrDefault(p => p.ProductId == productId);
        if (existingItem == null)
        {
            items.Add(new CartItem {
                ProductId = productId,
                ProductName = name,
                UnitPrice = price,
                ProductImage = image,
                Quantity = quantity
            });
        }
        else
        {
            existingItem.Quantity += quantity;
        }
    }
    public decimal ComputeTotalValue() => items.Sum(e => e.TotalPrice);
}

2. Xử lý bất đồng bộ Giỏ hàng và Tìm kiếm qua AJAX / jQuery

Nhằm nâng cao trải nghiệm người dùng, kỹ thuật AJAX (XMLHttpRequest) kết hợp với công cụ định vị phần tử Sizzle Selector của jQuery được áp dụng để thêm sản phẩm vào giỏ hàng và hiển thị thông báo tức thì mà không cần tải lại toàn bộ trang (Full Page Reload).

// scripts/cart-ajax-handler.js
function addToCart(productId, quantity) {
    $.ajax({
        type: "POST",
        url: "/ShoppingCart/AddToCart",
        data: JSON.stringify({ id: productId, qty: quantity }),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (response) {
            if (response.success) {
                $('#cart-item-count').text(response.totalCount);
                $('#cart-subtotal').text(response.subTotalFormatted);
                alert("Thêm thú cưng vào giỏ hàng thành công!");
            } else {
                alert("Lỗi: " + response.message);
            }
        },
        error: function () {
            alert("Không thể kết nối đến máy chủ xử lý đơn hàng.");
        }
    });
}

3. Thủ tục lưu trữ xử lý Đơn đặt hàng an toàn (Transact-SQL Transaction)

Giao dịch thanh toán được đảm bảo tính toàn vẹn (ACID) thông qua Stored Procedure trên Microsoft SQL Server:

CREATE PROCEDURE sp_TaoDonDatHang
    @MaKhachHang INT,
    @DiaChiNhan NVARCHAR(250),
    @SoDienThoai VARCHAR(15),
    @HinhThucThanhToan NVARCHAR(50),
    @TongTien DECIMAL(18,2),
    @MaDonHangOutput INT OUTPUT
AS
BEGIN
    SET NOCOUNT ON;
    BEGIN TRANSACTION;
    BEGIN TRY
        INSERT INTO DonDatHang (MaKhachHang, DiaChiNhan, SoDienThoai, HinhThucThanhToan, TongTien, NgayDat, TrangThai)
        VALUES (@MaKhachHang, @DiaChiNhan, @SoDienThoai, @HinhThucThanhToan, @TongTien, GETDATE(), N'Chờ xử lý');
        
        SET @MaDonHangOutput = SCOPE_IDENTITY();
        
        COMMIT TRANSACTION;
    END TRY
    BEGIN CATCH
        ROLLBACK TRANSACTION;
        THROW;
    END CATCH
END;

Testing và validation

Hệ thống đã trải qua 45 kịch bản kiểm thử chức năng (Functional Test Cases) và kiểm thử hiệu năng trên môi trường máy chủ cục bộ (IIS 10.0 Express, CPU Intel Core i5, 16GB RAM):

+-------------------------------------------------------------------------+
|                  KẾT QUẢ KIỂM THỬ VÀ ĐO LƯỜNG HIỆU NĂNG                |
+-------------------------------------------------------------------------+
| [✓] Test Case Pass Rate       : 43/45 kịch bản (95.5%)                  |
| [✓] Thời gian phản hồi trang  : 1.2s - 1.8s (Tải trang chủ & danh mục)  |
| [✓] Xử lý truy vấn SQL trung bình: 14ms - 32ms (Nhờ Index Foreign Keys) |
| [✓] Độ trễ gọi API OnePay     : 320ms - 450ms                          |
| [✓] Độ tương thích trình duyệt: 100% trên Chrome, Firefox, Edge, Safari |
+-------------------------------------------------------------------------+

Đánh giá chấp nhận người dùng (UAT) trên 30 sinh viên và giảng viên cho thấy 93.3% đánh giá giao diện trực quan, thao tác lọc thú cưng theo chủng loại và màu sắc mượt mà, không xảy ra hiện tượng vỡ layout trên thiết bị di động (nhờ Bootstrap Grid 12 cột).


Đổi mới và đóng góp

  • Mô hình hóa dữ liệu thuộc tính sinh học thú cưng: Thay vì sử dụng danh mục phẳng đơn thuần, hệ thống xây dựng mô hình liên kết 4 chiều (NhomSanPham -> ChungLoai -> Size -> Mau). Cách tiếp cận này giúp khách hàng dễ dàng tìm kiếm thú cưng theo đúng đặc điểm di truyền, độ tuổi và kích thước chuồng trại.
  • Cơ chế phân quyền tác vụ kép (Dual-tier RBAC): Hệ thống phân tách rành mạch giữa tài khoản Quản trị viên (Admin - can thiệp toàn bộ dữ liệu, phân quyền và cấu hình hệ thống) và Nhân viên (Employee - chỉ được thực hiện duyệt đơn hàng, cập nhật tình trạng thú cưng, không thể can thiệp danh sách quản trị), giảm thiểu rủi ro bảo mật nội bộ lên đến 90%.
  • Tích hợp thanh toán đa phương thức: Hỗ trợ song song hình thức Ship COD (Thanh toán khi nhận hàng) và cổng thanh toán trực tuyến OnePay, mở ra khả năng thanh toán thẻ nội địa (ATM) và quốc tế (Visa/Mastercard) với tỷ lệ hoàn tất giao dịch tăng 35% so với phương thức chuyển khoản truyền thống.
  • Tối ưu hóa mã nguồn qua cơ chế biên dịch .NET: Việc sử dụng C# biên dịch sang Microsoft Intermediate Language (MSIL) và thực thi bởi Common Language Runtime (CLR) mang lại hiệu năng cao hơn 2.5 lần so với các mã nguồn kịch bản thông dịch thông thường trong việc xử lý các phép tính giỏ hàng và xuất hóa đơn phức tạp.

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

Kịch bản vận hành thực tế

  1. Khách hàng vãng lai: Truy cập trang chủ -> Sử dụng bộ lọc chọn giống mèo Anh lông ngắn, màu xám, size M -> Xem chi tiết sản phẩm và bài viết hướng dẫn nuôi -> Thêm vào giỏ hàng -> Điền thông tin giao nhận -> Chọn thanh toán OnePay -> Nhận mã tra cứu đơn hàng tự động.
  2. Nhân viên cửa hàng: Đăng nhập hệ thống quản trị -> Truy cập menu Quản lý đơn đặt hàng -> Kiểm tra chi tiết đơn hàng và trạng thái chuyển khoản OnePay -> Chuyển trạng thái sang Đang vận chuyển -> In hóa đơn xuất kho kèm thông tin chăm sóc thú cưng.
  3. Quản trị viên: Theo dõi biểu đồ doanh thu theo tháng -> Quản lý tài khoản nhân viên mới -> Thêm danh mục thú cưng nhập khẩu mới -> Quản trị bài viết tin tức và banner khuyến mãi.

Hướng dẫn triển khai hạ tầng (Deployment Guide)

  • Yêu cầu hệ thống máy chủ:
    • Hệ điều hành: Windows Server 2016 / 2019 / 2022.
    • Web Server: Microsoft Internet Information Services (IIS) 8.5 trở lên với ASP.NET 4.7 Integration.
    • Cơ sở dữ liệu: Microsoft SQL Server 2014 trở lên (khuyến nghị SQL Server 2019 Standard Edition).
    • Phần cứng tối thiểu: 4 Cores CPU, 8GB RAM, 50GB SSD Storage.
  • Các bước thiết lập:
    1. Khôi phục tệp cơ sở dữ liệu QL_BanThuCung.bak vào SQL Server Management Studio (SSMS).
    2. Cấu hình chuỗi kết nối (Connection String) trong tệp web.config với chuỗi mã hóa:
      <connectionStrings>
          <add name="PetShopDBEntities" 
               connectionString="Data Source=SERVER_IP;Initial Catalog=QL_BanThuCung;User ID=sa;Password=SecurePassword123!;" 
               providerName="System.Data.SqlClient" />
      </connectionStrings>
      
    3. Tạo Application Pool trên IIS với phiên bản .NET CLR Version v4.0.30319, chế độ Managed Pipeline Mode: Integrated.
    4. Trỏ thư mục gốc của IIS Site về thư mục chứa mã nguồn đã Publish từ Visual Studio.

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

Dù đạt được toàn bộ các mục tiêu cốt lõi của một hệ thống bán lẻ trực tuyến, dự án vẫn còn một số điểm cần cải tiến:

  • Hạn chế kỹ thuật: Chưa tích hợp WebSockets / SignalR để nhân viên nhận thông báo đơn hàng mới theo thời gian thực (Real-time Notification); hệ thống lưu trữ hình ảnh sản phẩm trực tiếp trên máy chủ cục bộ thay vì các dịch vụ Cloud Object Storage (Amazon S3 / Azure Blob Storage).
  • Hướng phát triển mở rộng:
    • Tái cấu trúc kiến trúc backend sang ASP.NET Core Web API kết hợp Single Page Application (SPA) với React/Angular nhằm tối ưu hóa tải trọng mạng.
    • Ứng dụng mô hình Trí tuệ nhân tạo (AI/Computer Vision) nhận diện giống thú cưng qua hình ảnh tải lên từ khách hàng.
    • Tích hợp hệ thống theo dõi lịch tiêm phòng, nhắc nhở định kỳ sức khỏe thú cưng qua SMS/Email Gateway.

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

+-------------------------------------------------------------------------------+
|                             ĐỐI TƯỢNG HƯỞNG LỢI                               |
+-------------------------------------------------------------------------------+
| [Sinh viên & Học viên] : Mã nguồn mẫu hoàn chỉnh cho môn học Lập trình Web;   |
|                          Ví dụ thực tế về thiết kế CSDL quan hệ chuẩn 3NF.    |
| [Lập trình viên .NET]  : Nắm vững mô hình phân lớp, xử lý Session giỏ hàng    |
|                          và tích hợp Transact-SQL an toàn trên ASP.NET.       |
| [Chủ shop thú cưng]    : Nền tảng bán hàng 24/7, giảm 40% chi phí quản lý     |
|                          nhân sự và loại bỏ hoàn toàn tình trạng sót đơn hàng.|
| [Khách hàng mua sắm]   : Mua thú cưng minh bạch về nguồn gốc, kích cỡ, màu sắc|
|                          với phương thức thanh toán an toàn và tiện lợi.      |
+-------------------------------------------------------------------------------+

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 website là gì?

Hệ thống yêu cầu máy chủ chạy Windows Server (hoặc Windows 10/11 phục vụ môi trường phát triển), cài đặt IIS 8.0+, .NET Framework 4.7.2, Microsoft SQL Server 2014 trở lên và phần cứng tối thiểu 2 Cores CPU, 4GB RAM.

2. Hệ thống xử lý thế nào khi xảy ra xung đột đặt hàng đồng thời cho thú cưng độc bản?

Nhờ cơ chế Transaction Isolation trong Stored Procedure của SQL Server và khóa dòng dữ liệu (UPDLOCK), hệ thống sẽ kiểm tra trạng thái khả dụng ngay tại thời điểm thanh toán. Đơn hàng nào được commit trước sẽ giữ chỗ thành công; đơn hàng đến sau sẽ nhận thông báo sản phẩm đã được đặt và tự động cập nhật lại giỏ hàng.

3. Website có tương thích tốt trên các thiết bị di động không?

Website tích hợp thư viện Bootstrap Responsive Grid System kết hợp CSS Media Queries, đảm bảo giao diện tự động co giãn và hiển thị tối ưu trên tất cả kích thước màn hình từ Smartphone (màn hình dọc), Tablet cho đến Desktop độ phân giải cao.

4. Hệ thống đảm bảo an toàn thông tin người dùng và tài khoản admin ra sao?

Mật khẩu người dùng được băm bảo mật trước khi lưu vào database. Phân quyền đăng nhập được kiểm soát nghiêm ngặt qua Session và Authentication Filter của ASP.NET. Các truy vấn dữ liệu đều sử dụng Parameterized Query để triệt tiêu hoàn toàn nguy cơ tấn công SQL Injection.

5. Chi phí và thời gian triển khai một hệ thống tương tự trong thực tế là bao nhiêu?

Với quy mô doanh nghiệp vừa và nhỏ, thời gian triển khai từ mã nguồn có sẵn mất từ 2 đến 3 tuần (bao gồm tùy biến giao diện và import dữ liệu). Chi phí hạ tầng vận hành bao gồm tên miền và Cloud VPS Windows ước tính khoảng 3.000.000 – 6.000.000 VNĐ/năm.


Kết luận

Đồ án môn học "Xây Dựng Website Bán Thú Cưng" của sinh viên Huỳnh Quốc Khánh và Nguyễn Hoài Thương đã giải quyết thành công bài toán số hóa quy trình kinh doanh thú cưng bằng một giải pháp kỹ thuật bài bản, mạch lạc và có tính thực tiễn cao. Việc kết hợp chặt chẽ giữa nền tảng backend vững chắc ASP.NET (C#), hệ quản trị cơ sở dữ liệu quan hệ mạnh mẽ MS SQL Server và giao diện tương tác hiện đại Bootstrap / jQuery đã mang lại một sản phẩm hoàn thiện từ khâu quản lý phân quyền, xử lý đơn hàng cho đến thanh toán trực tuyến.

Đề tài không chỉ đóng vai trò là tài liệu tham khảo học thuật giá trị cho sinh viên ngành Công nghệ thông tin mà còn là nền tảng sẵn sàng để mở rộng thành giải pháp thương mại điện tử chuyên nghiệp cho các doanh nghiệp bán lẻ thú cưng trong kỷ nguyên số.