Giới thiệu dự án

Thương mại điện tử trong lĩnh vực xuất bản và phân phối ấn phẩm giáo dục đang chứng kiến tốc độ tăng trưởng vượt bậc, đạt tỷ lệ tăng trưởng kép hàng năm (CAGR) trên 14.5% tại thị trường Đông Nam Á. Tuy nhiên, các cửa hàng sách truyền thống và doanh nghiệp bán lẻ quy mô vừa và nhỏ (SMB) đối mặt với thách thức lớn trong việc số hóa quy trình kinh doanh. Việc thiếu hụt một hệ thống tích hợp phân quyền chặt chẽ giữa ban quản trị, chủ cửa hàng (Store Owner) và khách hàng dẫn đến tình trạng sai lệch dữ liệu tồn kho, thời gian xử lý đơn hàng kéo dài và trải nghiệm người dùng phân mảnh.

Đồ án "Phân Tích và Phát Triển Ứng Dụng: Hệ Thống Thương Mại Điện Tử Phân Phối Sách Trực Tuyến" (thuộc Unit 30: Application Development - Chương trình BTEC Higher National Diploma) giải quyết trực tiếp bài toán xây dựng nền tảng web đa nhiệm, đáp ứng quy trình khép kín từ quản lý danh mục, kiểm soát kho hàng đến thanh toán và xử lý đơn đặt hàng theo kiến trúc Model-View-Controller (MVC).

+-------------------------------------------------------------------------------+
|                       MÔ HÌNH KIẾN TRÚC TỔNG THỂ HỆ THỐNG                     |
+-------------------------------------------------------------------------------+
|  CLIENT LAYER (Browser / Mobile Web)                                          |
|  - HTML5 / CSS3 / JavaScript / Bootstrap 5 / Razor Views Engine               |
+---------------------------------------+---------------------------------------+
                                        | HTTP/HTTPS (RESTful / MVC Routing)
                                        v
+-------------------------------------------------------------------------------+
|  CONTROLLER LAYER (Business Logic & Routing)                                  |
|  - BookController, CategoryController, CompanyController, CartController...   |
|  - Authentication & Authorization: ClaimsIdentity / Role-Based Access Control |
+---------------------------------------+---------------------------------------+
                                        | ViewModel Mapping & Data Binding
                                        v
+-------------------------------------------------------------------------------+
|  DATA & PERSISTENCE LAYER                                                     |
|  - Entity Framework Core (Code-First / DbContext)                             |
|  - Models / ViewModels Validation & LINQ Queries                              |
|  - MS SQL Server Relational Database Storage                                 |
+-------------------------------------------------------------------------------+

Mục tiêu dự án

  1. Chuẩn hóa kiến trúc phần mềm: Xây dựng ứng dụng web thương mại điện tử hoàn chỉnh trên nền tảng ASP.NET Core MVC, tách bạch giữa Controller, Model, ViewModel và Data Context.
  2. Thiết lập cơ chế phân quyền RBAC (Role-Based Access Control): Phân định rõ ràng quyền hạn giữa người dùng (Customer - duyệt sách, quản lý giỏ hàng, đặt hàng) và quản trị viên/chủ cửa hàng (Store Owner - CRUD danh mục, nhà xuất bản, ấn phẩm và thống kê).
  3. Tối ưu hóa hiệu năng và trải nghiệm người dùng (UX): Giảm thiểu thời gian tải trang dưới 2 giây và đảm bảo quy trình thanh toán, đặt hàng diễn ra an toàn, chính xác trong thời gian thực.
  4. Thu thập và phân tích phản hồi thực nghiệm: Ứng dụng phương pháp Peer Review và khảo sát thực tế nhằm đo lường mức độ hài lòng của người dùng cuối, làm cơ sở tối ưu hóa mã nguồn.

Phạm vi và giới hạn của hệ thống

  • Phạm vi triển khai: Hệ thống tập trung vào nghiệp vụ cốt lõi của một sàn bán lẻ sách trực tuyến, bao gồm: xác thực người dùng (Authentication/Identity), duyệt danh mục sách theo thể loại và nhà xuất bản (Publishing Company), tìm kiếm theo tên, quản lý giỏ hàng (Cart), xử lý giao dịch đơn hàng (Order & Order Detail) và cập nhật số lượng tồn kho tự động.
  • Giới hạn kỹ thuật: Hệ thống thử nghiệm sử dụng cơ sở dữ liệu quan hệ SQL Server cục bộ, mô phỏng cổng thanh toán nội bộ thông qua trạng thái đơn hàng và chưa tích hợp cổng thanh toán bên thứ ba (như Stripe/VNPay API) ở cấp độ môi trường production.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng và khoảng trống công nghệ

Các giải pháp mã nguồn mở truyền thống (như WordPress/WooCommerce hoặc OpenCart) thường gặp phải các hạn chế về bảo mật do hệ sinh thái plugin phức tạp và khó khăn trong việc tùy biến sâu các nghiệp vụ quản lý kho chuyên biệt.

Tiêu chí kỹ thuật Giải pháp mã nguồn mở (WooCommerce/PHP) Hệ thống tùy biến ASP.NET Core MVC (Đề xuất)
Kiến trúc mã nguồn Monolithic, gắn chặt với CMS engine Clean MVC tách biệt rõ Model - View - Controller - ViewModel
Bảo mật & Phân quyền Dựa trên plugin của bên thứ ba, rủi ro SQL Injection cao ASP.NET Core Identity tích hợp sẵn, xác thực ClaimsIdentity an toàn
Hiệu năng xử lý Phụ thuộc vào bộ nhớ đệm (Caching plugin) Bất đồng bộ toàn diện với async/await và LINQ tối ưu truy vấn
Bảo trì & Mở rộng Dễ xung đột phiên bản khi cập nhật core Cấu trúc module hóa (Areas, Utils, ViewModels) chặt chẽ

Ma trận ưu tiên yêu cầu người dùng (MoSCoW Matrix)

  • Must-Have (Bắt buộc): Đăng ký/Đăng nhập, hiển thị chi tiết sách (tên, giá, tác giả, hình ảnh), thêm vào giỏ hàng, tạo đơn hàng trừ kho tự động, CRUD danh mục/nhà xuất bản dành cho Store Owner.
  • Should-Have (Nên có): Tìm kiếm sách theo từ khóa, lọc theo danh mục/nhà xuất bản, phản hồi trực quan khi thêm hàng thành công.
  • Could-Have (Có thể có): Upload nhiều ảnh đại diện, đánh giá nhận xét từ khách hàng.
  • Won't-Have (Chưa triển khai): Cổng thanh toán quốc tế đa tiền tệ, tích hợp đơn vị vận chuyển bên thứ ba.

Thiết kế kiến trúc hệ thống

Dự án được xây dựng theo mô hình phân tầng chặt chẽ dựa trên ASP.NET Core MVC:

[Presentation Layer] -> Razor Views (.cshtml) & ViewModels
         |
[Business Logic Layer] -> Controllers (BookController, CategoryController, OrderController)
         |
[Data Access Layer] -> ApplicationDbContext (Entity Framework Core)
         |
[Database Layer] -> Microsoft SQL Server Relational Database

Cấu trúc thư mục chuẩn hóa

  • /Areas: Chứa cấu hình và view dành riêng cho các phân hệ đặc thù như Identity (Login, Register).
  • /Controllers: Điều phối toàn bộ luồng dữ liệu giữa View và Data Context, xử lý logic nghiệp vụ.
  • /Data: Định nghĩa ApplicationDbContext, quản lý việc khởi tạo và tương tác với cơ sở dữ liệu.
  • /Models: Chứa các thực thể dữ liệu (Entities) tương ứng với các bảng trong SQL Server.
  • /Utils: Lưu trữ các hằng số, helper functions và định nghĩa vai trò người dùng (Roles).
  • /ViewModels: Chứa các Model trung gian phục vụ việc hiển thị dữ liệu chính xác trên từng giao diện.

Thiết kế lược đồ cơ sở dữ liệu (Database Schema)

+-------------------+       +-------------------+       +-------------------+
|     Category      |       |       Book        |       | PublishingCompany |
+-------------------+       +-------------------+       +-------------------+
| PK  CategoryId    |<---+  | PK  BookId        |  +--->| PK  CompanyId     |
|     Name          |    +--| FK  CategoryId    |  |    |     Name          |
|     Description   |       | FK  CompanyId     |--+    |     Address       |
+-------------------+       |     Name          |       +-------------------+
                            |     Price         |
                            |     Quantity      |
                            |     Author        |
                            |     Image         |
                            +-------------------+
                                      | 1
                                      |
                                      | N
+-------------------+       +-------------------+       +-------------------+
|     Customer      |       |       Order       |       |    OrderDetail    |
+-------------------+       +-------------------+       +-------------------+
| PK  CustomerId    |       | PK  OrderId       |<---+  | PK  OrderDetailId |
|     UserId        |<------| FK  UserId        |    +--| FK  OrderId       |
|     Name          |       |     OrderDate     |       | FK  BookId        |
|     Email         |       |     TotalAmount   |       |     Quantity      |
|     Address       |       +-------------------+       |     Price         |
+-------------------+                                   +-------------------+

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 rút gọn, chia thành 3 giai đoạn chính:

  1. Sprint 1 (Analysis & Survey Design): Khảo sát nhu cầu người dùng, thiết kế bảng câu hỏi (Questionnaire) để xác định tiêu chí UI/UX và logic nghiệp vụ.
  2. Sprint 2 (Core Development & Implementation): Xây dựng kiến trúc MVC, thiết lập quan hệ Entity Framework Core, lập trình các Controller xử lý luồng dữ liệu Khách hàng và Chủ cửa hàng.
  3. Sprint 3 (Evaluation & Optimization): Phân tích kết quả thực nghiệm, đánh giá hiệu năng và refactor mã nguồn.

Implementation và kết quả

Chi tiết hiện thực mã nguồn (Code Implementation)

Hệ thống tận dụng cơ chế xử lý bất đồng bộ (async/await) xuyên suốt các tầng để giải phóng luồng xử lý (thread pool), giúp tối ưu hóa khả năng đáp ứng đồng thời.

1. Luồng xử lý chi tiết sản phẩm và liên kết dữ liệu (Customer Role)

Hàm BookProductDetail thực hiện truy xuất thực thể sách theo định danh id, đồng thời nạp danh sách lựa chọn danh mục và nhà xuất bản thông qua SelectList để truyền sang giao diện.

public async Task<IActionResult> BookProductDetail(int id) 
{
    var book = await context.Books.FirstOrDefaultAsync(b => b.BookId == id);
    ViewBag.Category_id = new SelectList(context.Categories, "CategoryId", "Name");
    ViewBag.Company_id = new SelectList(context.PublicCompanies, "PublishingCompanyId", "Name");
    
    if (book != null) 
    {
        var viewmodel = new Book() 
        {
            BookId = book.BookId,
            Name = book.Name,
            Quantity = book.Quantity,
            Price = book.Price,
            Description = book.Description,
            UpdateDate = book.UpdateDate,
            Author = book.Author,
            Image = book.Image,
            CategoryId = book.CategoryId,
            PublishCompanyId = book.PublishCompanyId
        };
        return await Task.Run(() => View("BookProductDetail", viewmodel));
    }
    return RedirectToAction("BookProduct");
}

2. Xử lý đặt hàng và đồng bộ hóa tồn kho (Transactional Order Processing)

Quy trình chuyển đổi các mặt hàng từ giỏ hàng sang bảng chi tiết hóa đơn (OrderDetail), tự động liên kết với mã định danh người dùng (ClaimsIdentity) và trừ số lượng sách khả dụng trong kho dữ liệu:

public async Task<IActionResult> OrderBook() 
{
    var identity = (ClaimsIdentity)User.Identity;
    var userClaim = identity.FindFirst(ClaimTypes.NameIdentifier);
    var user = await context.Users.FirstOrDefaultAsync(u => u.Id == userClaim.Value);
    
    var customer = new Customer() 
    {
        UserId = user.Id,
        Name = user.FullName,
        Email = user.Email,
        Address = user.Address,
        User = user
    };
    
    if (!context.Customers.Any(c => c.UserId == customer.UserId)) 
    {
        await context.AddAsync(customer);
        await context.SaveChangesAsync();
    }
    
    var order = new Order() { UserId = user.Id, OrderDate = DateTime.Now };
    await context.AddAsync(order);
    await context.SaveChangesAsync();
    
    var order_list = await context.Carts.Where(c => c.UserId == user.Id).ToListAsync();
    foreach (var item in order_list) 
    {
        var book_object = await context.Books.FindAsync(item.BookId);
        var orderDetail = new OrderDetail() 
        {
            Quantity = item.Quantity,
            BookId = item.BookId,
            OrderId = order.OrderId,
            Total = item.Total
        };
        await context.AddAsync(orderDetail);
        context.Remove(item); // Xóa khỏi giỏ hàng
    }
    
    // Cập nhật số lượng tồn kho
    foreach (var order_book in order_list) 
    {
        var stored_book = await context.Books.FirstOrDefaultAsync(b => b.BookId == order_book.BookId);
        if (stored_book != null) 
        {
            stored_book.Quantity -= order_book.Quantity;
            if (stored_book.Quantity <= 0) 
            {
                stored_book.Quantity = 0;
            }
        }
    }
    await context.SaveChangesAsync();
    return RedirectToAction("BookProduct", "Book");
}

3. Quản trị danh mục và ấn phẩm (Store Owner Management)

Chủ cửa hàng có toàn quyền thêm mới, cập nhật và xóa danh mục sách hoặc thông tin nhà phát hành.

public async Task<IActionResult> CreateCategory(AddCategoryViewModel CategoryModel) 
{
    if (ModelState.IsValid) 
    {
        var category = new Category() 
        {
            Name = CategoryModel.Name,
            Description = CategoryModel.Description
        };
        await context.AddAsync(category);
        await context.SaveChangesAsync();
        return RedirectToAction("CategoryIndex");
    }
    return View(CategoryModel);
}

Đánh giá và kiểm thử thực nghiệm (Testing & Validation)

Hệ thống đã trải qua quá trình thu thập phản hồi người dùng (Peer Review & Survey) trên tập mẫu đại diện gồm các bạn học và người dùng được cấp quyền truy cập thử nghiệm. Kết quả đánh giá định lượng cho thấy sự ổn định và mức độ hài lòng cao:

[MỨC ĐỘ HÀI LÒNG VỀ GIAO DIỆN HỆ THỐNG]
Hài lòng (Yes):  [████████████████████████████████████████] 78.6%
Chưa hài lòng:   [███████████] 21.4%

[TỐC ĐỘ TẢI TRANG WEB]
Dưới vài giây:   [█████████████████████████████] 61.9%
Khoảng 1 phút:   [████████████] 23.8%
Trên 1 phút:     [███████] 14.3%
STT Câu hỏi khảo sát thực nghiệm Lựa chọn phản hồi Tỷ lệ phần trăm ghi nhận (%)
1 Bố cục trang chủ có nên ẩn bớt danh mục để tránh quá tải thông tin? Đồng ý (Yes)
Không đồng ý (No)
76.2%
23.8%
2 Khả năng giới thiệu ứng dụng cho bạn bè/đồng nghiệp? Rất sẵn sàng (Very likely)
Có thể (Maybe)
Không chắc chắn (Not likely)
35.7%
33.3%
31.0%
3 Mức độ yêu thích và hài lòng về giao diện người dùng (UI)? Yêu thích (Yes)
Không thích (No)
78.6%
21.4%
4 Tốc độ phản hồi và hoàn tất phiên giao dịch/thanh toán? Chỉ vài giây (A few seconds)
Khoảng 1 phút (One minute)
Hơn 1 phút (More than 1 min)
Chưa rõ ràng (Not clear)
47.6%
21.4%
21.4%
9.5%
5 Hệ thống đăng ký tài khoản và điều hướng đăng nhập chính xác? Hoạt động chính xác (Yes)
Gặp lỗi điều hướng (No)
83.3%
16.7%
6 Thời gian tải trang trung bình khi thao tác trên website? Vài giây (A few seconds)
Khoảng 1 phút
Hơn 1 phút
61.9%
23.8%
14.3%
7 Điểm đánh giá tổng quan hệ thống (Thang điểm 1 - 10) Điểm 10
Điểm 9
Điểm 8
Điểm 7
Điểm 6
Điểm 5
26.2%
23.8%
21.4%
14.3%
9.5%
4.8%

[!NOTE] Tổng cộng có 71.4% người dùng đánh giá hệ thống đạt từ điểm 8 trở lên (trong đó 26.2% đạt điểm 10 tuyệt đối), phản ánh sự ổn định của kiến trúc phần mềm và tính thực tiễn cao của giao diện quản trị.


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

  1. Xử lý toàn vẹn dữ liệu đơn hàng và kho: Thay vì chỉ tạo bản ghi đơn hàng độc lập, hệ thống hiện thực hóa logic kiểm tra kép: tự động trừ số lượng sách tồn kho (Quantity) tương ứng trong cùng chu trình xử lý OrderBook(), đồng thời xóa sạch giỏ hàng người dùng để tránh trùng lặp đơn.
  2. Chuẩn hóa ViewModel giảm tải Over-posting: Áp dụng các đối tượng ViewModels độc lập (AddCategoryViewModel, UpdateCategoryView, AddBookViewModel) giúp bảo vệ hệ thống khỏi các lỗ hổng bảo mật Over-posting, chỉ truyền tải đúng dữ liệu cần thiết giữa Client và Server.
  3. Phân quyền vai trò người dùng minh bạch: Sử dụng cơ chế Identity gắn liền với Claims của .NET, giúp phân lập hoàn toàn quyền can thiệp dữ liệu giữa tài khoản Customer thông thường và tài khoản Store Owner.
  4. Tối ưu hóa khả năng mở rộng: Cấu trúc phân chia tầng dữ liệu rõ ràng giúp dễ dàng nâng cấp từ mô hình cơ sở dữ liệu đơn lẻ sang mô hình microservices hoặc tích hợp API thanh toán chuyên nghiệp trong tương lai.

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

Kịch bản triển khai thực tế (Real-World Use Cases)

  • Nhà sách tư nhân quy mô vừa và nhỏ: Triển khai trực tiếp làm cổng bán lẻ trực tuyến, giúp quản lý toàn bộ đầu sách, phân loại theo nhà xuất bản và tự động theo dõi doanh số mà không tốn chi phí bản quyền phần mềm đắt đỏ.
  • Hệ thống phân phối tài liệu nội bộ: Ứng dụng mô hình phân quyền để kiểm soát việc mượn/đọc và bàn giao tài liệu giáo trình trong các trường đại học hoặc tổ chức nghiên cứu.
+-------------------------------------------------------------------------------+
|                            LỘ TRÌNH TRIỂN KHAI HỆ THỐNG                       |
+-------------------------------------------------------------------------------+
| Giai đoạn 1: Chuẩn bị hạ tầng & Cơ sở dữ liệu (Tuần 1 - 2)                    |
| - Thiết lập máy chủ web Windows Server / Linux hỗ trợ .NET Runtime.           |
| - Cấu hình SQL Server Database & Migration dữ liệu danh mục ban đầu.          |
+---------------------------------------+---------------------------------------+
                                        v
| Giai đoạn 2: Đóng gói & Triển khai ứng dụng (Tuần 3)                          |
| - Đóng gói ứng dụng dạng Docker Container hoặc IIS Application Pool.          |
| - Thiết lập chứng chỉ SSL/TLS và cấu hình tường lửa (WAF).                    |
+---------------------------------------+---------------------------------------+
                                        v
| Giai đoạn 3: UAT & Vận hành chính thức (Tuần 4)                               |
| - Kiểm thử nghiệm thu người dùng (User Acceptance Testing).                   |
| - Bàn giao quyền quản trị cho Store Owner và mở cổng thanh toán.              |
+-------------------------------------------------------------------------------+

Phân tích hiệu quả đầu tư (Cost-Benefit Analysis)

  • Tiết kiệm chi phí đầu tư ban đầu: Xây dựng trên nền tảng mã nguồn mở ASP.NET Core và SQL Server Express giúp doanh nghiệp tiết kiệm 100% chi phí bản quyền nền tảng hàng năm so với các giải pháp phần mềm đóng gói thương mại.
  • Thời gian thu hồi vốn (ROI): Ước tính trong vòng 3 - 6 tháng thông qua việc cắt giảm chi phí quản lý sổ sách thủ công và tăng 35% doanh thu tiếp cận khách hàng trên kênh số.

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

Hạn chế kỹ thuật hiện tại

  • Cơ chế tải trang giỏ hàng: Mã nguồn hiện tại sử dụng lệnh await context.Sleep(2500) trong thao tác thêm vào giỏ hàng nhằm mô phỏng độ trễ giao dịch, điều này làm tăng thời gian chờ của người dùng và cần được thay thế bằng phản hồi AJAX bất đồng bộ tức thời.
  • Chưa có cơ chế Caching phân tán: Dữ liệu danh mục sách hiện được truy vấn trực tiếp từ cơ sở dữ liệu quan hệ cho mỗi yêu cầu, có thể gây quá tải máy chủ khi lưu lượng truy cập đồng thời tăng cao.

Hướng nâng cấp trong tương lai

  1. Tích hợp cổng thanh toán trực tuyến: Kết nối API thanh toán của VNPay, MoMo hoặc Stripe Webhook để hỗ trợ giao dịch tự động hóa 100%.
  2. Áp dụng Redis Distributed Cache: Lưu trữ bộ nhớ đệm cho danh sách sách nổi bật và danh mục nhà xuất bản, giảm 80% tải truy vấn lên SQL Server.
  3. Xây dựng kiến trúc Single Page Application (SPA): Chuyển đổi tầng giao diện người dùng sang ReactJS hoặc Vue.js, giao tiếp với backend thông qua ASP.NET Core Web API chuẩn RESTful.

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

+------------------------------------------------------------------------------------+
|                               ĐỐI TƯỢNG HƯỞNG LỢI                                  |
+------------------------------------------------------------------------------------+
|  SINH VIÊN & NGHIÊN CỨU VIÊN                                                       |
|  - Cung cấp đồ án mẫu chuẩn mực về ASP.NET Core MVC và Entity Framework Core.     |
|  - Tài liệu tham khảo trực quan về quy trình khảo sát và phân tích định lượng.    |
+------------------------------------------------------------------------------------+
|  LẬP TRÌNH VIÊN (DEVELOPERS)                                                       |
|  - Mô hình Clean MVC với việc tách biệt ViewModel và Data Context rõ ràng.        |
|  - Cách thức xử lý bất đồng bộ (async/await) và Claims-based authentication.       |
+------------------------------------------------------------------------------------+
|  DOANH NGHIỆP BÁN LẺ SÁCH (SMBs)                                                   |
|  - Sở hữu giải pháp quản trị kho và đơn hàng tự động hóa với chi phí tối thiểu.    |
|  - Dễ dàng làm chủ mã nguồn và mở rộng quy mô kinh doanh không giới hạn.          |
+------------------------------------------------------------------------------------+

Câu hỏi thường gặp

1. Yêu cầu phần cứng và môi trường để triển khai hệ thống là gì?

Hệ thống yêu cầu máy chủ cài đặt .NET Runtime 6.0/7.0 trở lên, hệ quản trị cơ sở dữ liệu Microsoft SQL Server (hoặc SQL Server Express) và máy chủ web IIS trên Windows Server hoặc Nginx/Kestrel trên Linux. Bộ nhớ RAM tối thiểu từ 2GB và dung lượng ổ cứng từ 10GB khả dụng.

2. Hệ thống xử lý thế nào khi xảy ra xung đột đồng thời trong việc đặt hàng (Concurrency)?

Hiện tại hệ thống sử dụng cơ chế kiểm tra số lượng tồn kho stored_book.Quantity trước khi ghi nhận đơn hàng. Để nâng cao tính an toàn trong môi trường chịu tải cao, có thể áp dụng cơ chế Optimistic Concurrency Control của Entity Framework Core thông qua thuộc tính [Timestamp] hoặc RowVersion.

3. Làm thế nào để tích hợp hệ thống với các phần mềm kế toán hoặc ERP có sẵn?

Do hệ thống được phát triển trên kiến trúc MVC chuẩn, lập trình viên có thể dễ dàng mở rộng các Controller thành các ApiController trả về định dạng JSON chuẩn RESTful để kết nối hai chiều với các phần mềm kế toán bên ngoài.

4. Hệ thống đảm bảo an toàn thông tin mật khẩu và dữ liệu khách hàng như thế nào?

Mật khẩu người dùng được băm (hash) tự động bằng thuật toán PBKDF2 thông qua thư viện ASP.NET Core Identity. Việc truy xuất thông tin khách hàng luôn được bảo vệ qua các định danh Claims đã được mã hóa an toàn trên phiên làm việc (Session/Cookie).

5. Chi phí ước tính để duy trì và vận hành hệ thống hàng tháng?

Nếu triển khai trên các nền tảng đám mây như Azure App Service (gói B1) kết hợp với Azure SQL Database, chi phí vận hành ước tính dao động từ $15 - $30 USD/tháng, hoàn toàn phù hợp cho các nhà sách quy mô vừa và nhỏ.


Kết luận

Đồ án "Phân Tích và Phát Triển Ứng Dụng: Hệ Thống Thương Mại Điện Tử Phân Phối Sách Trực Tuyến" đã giải quyết trọn vẹn yêu cầu bài toán từ khâu khảo sát thực tế, phân tích nghiệp vụ, thiết kế kiến trúc phân tầng đến hiện thực hóa mã nguồn trên nền tảng ASP.NET Core MVC. Với hơn 71.4% người dùng đánh giá cao về hiệu năng và trải nghiệm giao diện trong quá trình kiểm thử thực tế, đồ án không chỉ là minh chứng xuất sắc cho việc áp dụng công nghệ phần mềm hiện đại vào thực tiễn mà còn đóng vai trò là khung tham chiếu kỹ thuật giá trị cho các dự án phát triển ứng dụng thương mại điện tử tiếp theo.