Bối cảnh và vấn đề nghiên cứu

Trong bối cảnh nền kinh tế và xã hội ngày càng phát triển, nhu cầu mua sắm hàng hóa, làm việc và giải trí của người tiêu dùng không ngừng tăng cao. Sự bùng nổ của công nghệ thông tin đã mang lại giải pháp thay thế hiệu quả cho các phương thức kinh doanh truyền thống nhờ khả năng xử lý các tập dữ liệu lớn và thực hiện các tác vụ tính toán phức tạp một cách chuẩn xác và nhanh chóng.

Theo khảo sát thực tế được tác giả trình bày trong đề tài, nhiều cửa hàng kinh doanh hiện nay vẫn áp dụng hình thức bán hàng thủ công tại quầy và chưa ứng dụng công nghệ thông tin vào quy trình vận hành. Phương thức này bộc lộ nhiều hạn chế:

  • Khách hàng bắt buộc phải đến trực tiếp điểm bán, gây tốn kém thời gian và chi phí đi lại.
  • Phạm vi tiếp cận người mua bị giới hạn theo vị trí địa lý, làm suy giảm doanh thu tiềm năng của cửa hàng.
  • Nguy cơ gia tăng lượng hàng hóa tồn kho do thiếu kênh phân phối và quản lý tiêu thụ trực tuyến.

Xuất phát từ thực trạng trên, đề tài "Xây dựng web bán hàng sử dụng .NET Core và ReactJS" được thực hiện nhằm xây dựng một hệ thống website thương mại điện tử hoàn chỉnh, hỗ trợ khách hàng mua sắm từ xa với dịch vụ vận chuyển tận nơi, đồng thời cung cấp công cụ số hóa giúp cửa hàng tối ưu hóa quy trình quản lý và lưu thông hàng hóa.

Mục tiêu và nhiệm vụ nghiên cứu của khóa luận được phân định cụ thể như sau:

  1. Nhiệm vụ lý thuyết:
    • Nghiên cứu cơ sở lý thuyết về nền tảng .NET Core và công nghệ ASP.NET Core.
    • Nghiên cứu kiến trúc, đặc điểm và nguyên lý hoạt động của thư viện ReactJS.
    • Tìm hiểu các quy trình và nghiệp vụ bán hàng trực tuyến (E-commerce).
  2. Nhiệm vụ thực hành:
    • Xây dựng hệ thống website bán hàng trực tuyến tích hợp các phân hệ chức năng:
      • Phân hệ quản lý: Quản lý thông tin sản phẩm, danh mục, nguồn cung, người dùng và hóa đơn đặt hàng.
      • Phân hệ thống kê: Thống kê doanh thu theo ngày, tuần, tháng và các tháng trong năm.
      • Phân hệ tương tác sản phẩm: Tìm kiếm, thêm/xóa sản phẩm trong giỏ hàng, đặt hàng, bình luận và đánh giá sản phẩm.
      • Phân hệ hệ thống: Đăng ký tài khoản, đăng nhập, đăng xuất, đổi mật khẩu và quản lý thông tin cá nhân.
  3. Nhiệm vụ tổng kết: Viết báo cáo khoa học và hoàn thiện hồ sơ đồ án tốt nghiệp.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Công nghệ .NET Core, thư viện ReactJS và quy trình phát triển website trong lĩnh vực bán hàng trực tuyến.
  • Phạm vi nghiên cứu: Đề tài tập trung vào việc tìm hiểu các công cụ lập trình .NET Core và ReactJS, khảo sát nghiệp vụ thực tế của các website thương mại điện tử, và thiết kế - triển khai hệ thống phần mềm website bán hàng có tính khả thi cao. Thời gian thực hiện đồ án diễn ra từ ngày 30/03/2020 đến ngày 12/07/2020 tại Bộ môn Công nghệ Phần mềm, Khoa Công nghệ Thông tin, Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh.

Cơ sở lý thuyết và phương pháp

Khóa luận xây dựng nền tảng lý luận và kỹ thuật dựa trên hai công nghệ phần mềm chủ đạo cùng các phương pháp phân tích, thiết kế hệ thống tiêu chuẩn:

1. Khung lý thuyết và công nghệ nền tảng

  • Môi trường thực thi .NET Core:

    • Bản chất: Môi trường thực thi mã nguồn mở, hỗ trợ phát triển ứng dụng đa nền tảng (chạy trên Windows, macOS, Linux x64, x86, ARM32 và ARM64) dưới giấy phép MIT và Apache 2. Hỗ trợ phát triển API, ứng dụng Cloud, IoT, trí tuệ nhân tạo và máy học.
    • Lịch sử phát triển: Công bố ngày 12/11/2014; phiên bản 1.0 phát hành ngày 27/06/2016 cùng Visual Studio 2015 Update 3; phiên bản 1.1 phát hành ngày 07/03/2017; phiên bản 2.0 phát hành ngày 14/08/2017 cùng ASP.NET Core 2.0 và Entity Framework Core 2.0; phiên bản 2.1 phát hành ngày 30/05/2018; phiên bản 2.2 phát hành ngày 04/12/2018; và phiên bản .NET Core 3.0 phát hành chính thức vào ngày 23/09/2019.
    • Đặc điểm kỹ thuật: Ứng dụng mô hình lập trình bất đồng bộ (asynchronous programming), kỹ thuật không sao chép (non-copying patterns), hỗ trợ phần cứng nội tại (hardware intrinsics), biên dịch theo tầng (tiered compilation), cấu trúc Span<T>, cung cấp công cụ Command-line interface và khả năng đóng gói linh hoạt với Docker containers.
  • Thư viện giao diện ReactJS:

    • Bản chất: Thư viện JavaScript mã nguồn mở do Facebook và cộng đồng phát triển, dùng để xây dựng giao diện người dùng cho các ứng dụng đơn trang (Single-Page Applications - SPA) và ứng dụng di động. Thư viện tích hợp với các công cụ quản lý trạng thái và điều hướng như Redux và React Router.
    • Lịch sử phát triển: Do Jordan Walke phát triển từ nguyên mẫu "FaxJS" (chịu ảnh hưởng từ thư viện XHP cho PHP); ứng dụng trên Facebook News Feed năm 2011, Instagram năm 2012; mở mã nguồn tại JSConf US vào tháng 05/2013; công bố thuật toán React Fiber vào ngày 18/04/2017; phát hành phiên bản React 16.0 ngày 26/09/2017 và React 16.8 giới thiệu React Hook vào ngày 16/02/2019.
    • Đặc trưng kiến trúc:
      • Cú pháp mở rộng JSX (JavaScript XML) kết hợp cấu trúc HTML trong mã JavaScript ES6.
      • Kiến trúc phân tách Component độc lập, có tính đóng gói và khả năng tái sử dụng cao.
      • Cơ chế ràng buộc dữ liệu một chiều (One-way data binding) theo mô hình Flux, đảm bảo tính bất biến của dữ liệu thành phần.
      • Quản lý DOM ảo (Virtual DOM): Tối ưu hóa hiệu năng render bằng cách so sánh sự thay đổi giữa cây DOM ảo và chỉ cập nhật các phần tử thực sự thay đổi lên DOM thực trong bộ nhớ.
      • Bộ công cụ bổ trợ: React Developer Tools phục vụ debug và tối ưu hóa hiệu năng.

2. Phương pháp nghiên cứu và thực hiện

  • Phương pháp phân tích - tổng hợp tài liệu: Nghiên cứu tài liệu kỹ thuật chuyên sâu về kiến trúc ASP.NET Core Web API, cơ chế render của ReactJS, các tài liệu hướng dẫn về thiết kế CSDL quan hệ và chuẩn hóa nghiệp vụ thương mại điện tử.
  • Phương pháp khảo sát hiện trạng và đánh giá so sánh: Khảo sát thực tế 05 nền tảng thương mại điện tử tiêu biểu tại Việt Nam (Shopee, Nguyễn Kim, Bách Hóa Xanh, Tiki, Sendo) để xác định điểm mạnh, điểm yếu về giao diện, tính năng điều hướng, bộ lọc tìm kiếm và trải nghiệm khách hàng.
  • Phương pháp mô hình hóa hướng đối tượng (UML): Xây dựng sơ đồ ca sử dụng (Use Case Diagram), đặc tả chi tiết 32 use case, xây dựng sơ đồ lớp (Class Diagram) và sơ đồ tuần tự (Sequence Diagram) cho các luồng nghiệp vụ chính.
  • Phương pháp thiết kế và chuẩn hóa cơ sở dữ liệu: Xây dựng mô hình quan hệ thực thể (ERD), thiết kế chi tiết các bảng dữ liệu, trường dữ liệu, khóa chính, khóa ngoại và các ràng buộc toàn vẹn.
  • Phương pháp kiểm thử phần mềm: Thực hiện kiểm thử chức năng (Functional Testing) trên các kịch bản thao tác ở cả hai phân hệ: Khách hàng và Quản trị viên.

Thiết kế và triển khai

Hệ thống được thiết kế theo mô hình tách biệt giữa Client-side và Server-side API, đảm bảo tính mở và khả năng mở rộng.

1. Yêu cầu hệ thống và yêu cầu phi chức năng

  • Hiệu năng xử lý: Thời gian tra cứu thông tin không quá 10 giây; thời gian cập nhật dữ liệu vào hệ thống không quá 5 giây.
  • Độ an toàn và lưu trữ: Dữ liệu giao dịch, người dùng và đơn hàng được thiết kế đảm bảo lưu trữ trên 10 năm, không xảy ra mất mát dữ liệu hoặc sai lệch thông tin.
  • Bảo mật và phân quyền: Phân định quyền truy cập rõ ràng giữa ba nhóm đối tượng (Guest, User, Admin). Mỗi đối tượng chỉ được phép thao tác trong phạm vi quyền hạn được cấp. Mật khẩu người dùng được băm và lưu trữ bằng PasswordHash kết hợp SecurityStamp.

2. Thiết kế cơ sở dữ liệu quan hệ

Cơ sở dữ liệu của hệ thống bao gồm các bảng thực thể chính với cấu trúc kiểu dữ liệu cụ thể như sau:

Tên bảng dữ liệu Mục đích lưu trữ Các trường dữ liệu chính Kiểu dữ liệu / Ràng buộc
Users Thông tin tài khoản người dùng Id, UserName, NormalizedUserName, Email, NormalizedEmail, EmailConfirmed, PasswordHash, SecurityStamp, ConcurrencyStamp, PhoneNumber, displayname, phone, address, avatar, gender, birthDay, status, LockoutEnabled, AccessFailedCount Id (uniqueidentifier, PK), gender (bit, 0: Nam, 1: Nữ), status (int)
Roles Danh mục quyền hạn hệ thống Id, Name, NormalizedName, ConcurrencyStamp, Description, CreationDate Id (uniqueidentifier, PK), Name (nvarchar(MAX))
AppUserRoles Bảng trung gian gán quyền người dùng UserId, RoleId UserId (uniqueidentifier, PK), RoleId (uniqueidentifier, PK)
Providers Thông tin nhà cung cấp sản phẩm id, name, status id (int, PK), name (nvarchar(MAX)), status (int)
Category Danh mục phân loại sản phẩm id, name, status id (int, PK), name (nvarchar(MAX))
Products Thông tin chi tiết sản phẩm id, name, price, description, providerId, categoryId, status id (int, PK), liên kết providerId và categoryId
Images Đường dẫn ảnh của sản phẩm id, productId, imageUrl id (int, PK), productId (int, FK)
Order Hóa đơn đặt hàng tổng thể Id, Status, total, note, address, street, feeShip, deliveryDate, guess, phone, email, createDate, userId Id (int, PK), total (int), userId (uniqueidentifier, FK)
OrderDetail Chi tiết mặt hàng trong đơn id, quantity, unitPrice, sale, productId, orderId id (int, PK), productId (int, FK), orderId (int, FK)
Evaluations Đánh giá, xếp hạng sản phẩm Id, rating, title, content, status, createDate, productId, userId Id (int, PK), rating (int), productId (int, FK), userId (uniqueidentifier, FK)
Replies Phản hồi bình luận đánh giá Id, content, status, createDate, evaluationId, userId Id (int, PK), evaluationId (int, FK), userId (uniqueidentifier, FK)

3. Thiết kế xử lý và giao diện người dùng

  • Thiết kế luồng xử lý: Hệ thống xây dựng 11 lược đồ tuần tự (Sequence Diagram) mô tả chi tiết tương tác giữa Client, Controller, Service và Database cho các chức năng: xem trang chủ, đăng ký, đăng nhập, đổi mật khẩu (xác thực qua link liên kết gửi vào Gmail), tìm kiếm sản phẩm, xem giỏ hàng, quản lý đơn hàng, thống kê doanh thu, và thêm/sửa/xóa sản phẩm.
  • Thiết kế giao diện:
    • Giao diện Client: Màn hình trang chủ, màn hình đăng ký/đăng nhập, quên mật khẩu, danh sách sản phẩm theo danh mục, màn hình chi tiết sản phẩm tích hợp đánh giá, màn hình giỏ hàng và màn hình thanh toán.
    • Giao diện Admin: Màn hình đăng nhập quản trị, dashboard trang chủ quản trị, quản lý user (khóa/mở tài khoản), quản lý danh mục (thêm/sửa/xóa), quản lý nguồn cung, quản lý sản phẩm, quản lý đơn hàng (xem chi tiết, duyệt, hủy), quản lý đánh giá (xem chi tiết, kiểm duyệt, xóa), và phân hệ quản lý thống kê doanh thu.

Nội dung chính theo từng chương

Chương 1: Cơ sở lý thuyết

Chương này tổng hợp nguồn gốc lịch sử, các cột mốc phiên bản và đặc trưng kỹ thuật của .NET Core và ReactJS. Tác giả làm rõ các ưu thế của .NET Core như kiến trúc đa nền tảng, cơ chế quản trị bộ nhớ với Span<T>, hiệu năng biên dịch theo tầng, và khả năng mở rộng với container. Đồng thời, chương trình bày chi tiết về ReactJS với cơ chế Virtual DOM, cú pháp JSX, kiến trúc Component độc lập và mô hình luồng dữ liệu một chiều (Flux pattern), khẳng định sự phù hợp của việc kết hợp hai công nghệ trong việc xây dựng hệ thống web hiện đại.

Chương 2: Khảo sát hiện trạng

Chương 2 tiến hành phân tích thực trạng nhu cầu mua sắm online và khảo sát chi tiết 05 website thương mại điện tử thực tế nhằm rút ra bài học thiết kế:

Website khảo sát Ưu điểm ghi nhận Nhược điểm cần khắc phục
shopee.vn Giao diện đẹp, màu sắc hài hòa; có gợi ý tìm kiếm nhanh; hỗ trợ lọc theo chuyên mục, nơi bán, khoảng giá, đánh giá; sắp xếp theo độ phổ biến, bán chạy; có bình luận/đánh giá. Chưa có nút cuộn nhanh lên đầu trang; danh mục sản phẩm chưa đưa lên thanh điều hướng (navbar).
nguyenkim.com Giao diện thân thiện; hiển thị danh mục rõ ràng ngay khi truy cập; hỗ trợ lọc theo thương hiệu/giá; đề xuất sản phẩm tương tự; có nút chuyển nhanh lên đầu trang. Phần mô tả chi tiết sản phẩm còn sơ sài, chưa cụ thể.
bachhoaxanh.com Bố cục đơn giản, thông tin sản phẩm và danh mục rõ ràng; có gợi ý tìm kiếm; đầy đủ thông tin cách sử dụng, đánh giá. Danh mục hiển thị bằng thao tác nhấp chuột thay vì hiệu ứng hover; chưa cố định (neo) navbar khi cuộn trang.
tiki.vn Giao diện sáng tạo, cho phép phóng to (zoom) hình ảnh sản phẩm; đa dạng hình thức thanh toán (Tiki xu, thanh toán trực tuyến, COD); có mục hỏi đáp tương tác. Thanh navbar chưa được neo cố định khi người dùng cuộn trang.
sendo.vn Giao diện rõ ràng; tích hợp chat trực tuyến; có chức năng lưu danh sách sản phẩm vừa xem; thanh navbar được neo cố định khi cuộn. Giao diện sơ đồ trang web (sitemap) còn đơn giản; kích thước phông chữ mô tả sản phẩm lớn; thiếu đề xuất sản phẩm liên quan.

Chương 3: Xác định yêu cầu – Mô hình hóa yêu cầu

Chương 3 chuyển hóa kết quả khảo sát thành hệ thống yêu cầu phần mềm. Tác giả phân loại yêu cầu thành 3 nhóm: yêu cầu chức năng (quản lý, thống kê, thao tác sản phẩm, hệ thống), yêu cầu phi chức năng (thời gian tra cứu $\le 10$s, cập nhật $\le 5$s, lưu trữ $> 10$ năm, phân quyền bảo mật), và yêu cầu hệ thống. Toàn bộ hệ thống được mô hình hóa thành 32 Use Case chi tiết với đầy đủ mô tả, tác nhân kích hoạt, tiền điều kiện và các bước thực hiện tuần tự.

Chương 4: Thiết kế phần mềm

Chương 4 đóng vai trò trọng tâm trong việc hiện thực hóa kiến trúc kỹ thuật của đồ án, bao gồm:

  • Thiết kế lược đồ lớp (Class Diagram) định nghĩa các thực thể và phương thức xử lý.
  • Thiết kế cơ sở dữ liệu quan hệ với 11 bảng dữ liệu chuẩn hóa, thiết lập đầy đủ khóa chính, khóa ngoại và 10 nhóm quy tắc ràng buộc toàn vẹn (ràng buộc phân quyền, quan hệ sản phẩm - danh mục, ràng buộc đánh giá sản phẩm, quan hệ đơn hàng - chi tiết đơn hàng, ràng buộc khi mua hàng).
  • Xây dựng 11 lược đồ tuần tự (Sequence Diagram) mô tả chi tiết dòng điều khiển của các chức năng chính.
  • Thiết kế chi tiết hệ thống giao diện người dùng và giao diện quản trị viên gồm 28 màn hình chức năng.

Chương 5: Cài đặt kiểm thử

Chương 5 trình bày việc thực thi kiểm thử chức năng trên hệ thống đã cài đặt hoàn chỉnh:

  • Kiểm thử phân hệ khách hàng: Thực hiện kiểm tra các ca kiểm thử liên quan đến đăng ký, đăng nhập, tìm kiếm, lọc sản phẩm, thêm vào giỏ hàng, cập nhật số lượng, đặt hàng, thanh toán, gửi đánh giá và đổi mật khẩu.
  • Kiểm thử phân hệ quản trị viên: Thực hiện kiểm tra các ca kiểm thử cho chức năng đăng nhập trang admin, duyệt đơn hàng, hủy đơn hàng, thêm/sửa/xóa sản phẩm, cập nhật danh mục, quản lý nhà cung cấp, kiểm duyệt đánh giá của khách hàng và xuất báo cáo thống kê doanh thu.

Kết quả và đóng góp

1. Kết quả chính đạt được

Dựa trên các số liệu và hồ sơ thiết kế trong văn bản, đồ án đã hoàn thành các nội dung cụ thể sau:

  • Xây dựng hoàn chỉnh ứng dụng web thương mại điện tử theo đúng tiến độ kế hoạch 15 tuần (từ 30/03/2020 đến 12/07/2020).
  • Hiện thực hóa đầy đủ 32 ca sử dụng (Use Case) bao quát toàn bộ quy trình mua bán hàng trực tuyến.
  • Hoàn thiện hệ thống cơ sở dữ liệu chuẩn hóa gồm 11 bảng dữ liệu (Users, Roles, AppUserRoles, Providers, Category, Products, Images, Order, OrderDetail, Evaluations, Replies) với các ràng buộc toàn vẹn chặt chẽ.
  • Triển khai 28 màn hình giao diện trực quan cho cả người dùng và quản trị viên, đáp ứng các tiêu chuẩn về thời gian xử lý (tra cứu dưới 10 giây, cập nhật dưới 5 giây).
  • Tích hợp thành công luồng xác thực nâng cao: gửi email xác nhận liên kết khi thực hiện chức năng đổi/quên mật khẩu và quy trình kiểm duyệt đánh giá/bình luận 2 cấp trước khi hiển thị công khai.

2. Giải pháp và kiến nghị của tác giả

  • Ứng dụng mô hình Single-Page Application với ReactJS giúp tối ưu hóa tốc độ kết xuất trang, giảm thiểu tải cho máy chủ thông qua cơ chế Virtual DOM.
  • Xây dựng Backend trên nền tảng .NET Core nhằm đảm bảo tính ổn định, hỗ trợ xử lý bất đồng bộ và tăng cường bảo mật hệ thống thông qua cơ chế phân quyền tài khoản.
  • Tự động hóa quy trình quản lý bán hàng giúp các cửa hàng giảm thiểu chi phí quản lý trực tiếp và hạn chế tình trạng tồn kho hàng hóa.

3. Đóng góp của đề tài

  • Cung cấp một tài liệu thiết kế phần mềm hoàn chỉnh, chi tiết từ khâu khảo sát thực tế các sàn thương mại điện tử lớn, mô hình hóa 32 use case chuẩn, đến việc thiết kế lược đồ lớp, CSDL quan hệ và lược đồ tuần tự.
  • Minh chứng tính khả thi và hiệu quả của việc kết hợp ASP.NET Core và ReactJS trong việc phát triển các giải pháp thương mại điện tử quy mô vừa và nhỏ.

Hạn chế và hướng nghiên cứu tiếp

  • Hạn chế: Theo đánh giá của nhóm tác giả trong đồ án, do hạn chế về mặt thời gian thực hiện (15 tuần) và kinh nghiệm thực tiễn, hệ thống vẫn còn một số nhược điểm cần tiếp tục hoàn thiện về mặt tối ưu hóa giao diện và bổ sung các tính năng nâng cao.
  • Hướng phát triển tiếp theo: Dựa trên phạm vi nghiên cứu được xác lập trong đồ án, hướng phát triển mở rộng bao gồm:
    • Tích hợp thêm các cổng thanh toán trực tuyến đa dạng (như cổng thanh toán ngân hàng, ví điện tử) thay cho quy trình đặt hàng cơ bản.
    • Xây dựng thêm hệ thống gợi ý sản phẩm thông minh dựa trên lịch sử xem hàng của người dùng (tương tự tính năng được khảo sát trên trang Tiki và Nguyễn Kim).
    • Tối ưu hóa giao diện responsive hoàn chỉnh trên các thiết bị di động bằng cách ứng dụng thêm React Native.

Giá trị tham khảo

Tài liệu khóa luận có giá trị tham khảo thiết thực cho các đối tượng sau:

  • Sinh viên ngành Công nghệ phần mềm và Công nghệ thông tin: Là tài liệu mẫu hữu ích về quy trình thực hiện đồ án tốt nghiệp, từ lập kế hoạch tiến độ 15 tuần, khảo sát hiện trạng, phân tích yêu cầu phần mềm đến thiết kế chi tiết CSDL và kiểm thử hệ thống.
  • Người nghiên cứu và lập trình viên Full-stack .NET Core + ReactJS: Cung cấp cấu trúc CSDL thực tế cho bài toán E-commerce, mẫu thiết kế đặc tả 32 Use Case, và cách phân chia tầng xử lý giữa API backend và SPA frontend.
  • Các phần đáng tham khảo nhất trong công trình:
    • Bảng tổng hợp phân tích ưu - nhược điểm của 05 website thương mại điện tử lớn tại Việt Nam trong Chương 2.
    • Hệ thống 32 bảng đặc tả Use Case chi tiết trong Chương 3.
    • Thiết kế chi tiết cấu trúc 11 bảng cơ sở dữ liệu quan hệ và các ràng buộc toàn vẹn trong Chương 4.

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

1. Khóa luận sử dụng những công nghệ nền tảng nào để phát triển hệ thống?
Khóa luận sử dụng .NET Core (ASP.NET Core, Entity Framework Core) cho phía Backend/Web API và thư viện ReactJS (kết hợp JSX, Virtual DOM, React Hook, Redux, React Router) cho phía giao diện Client Single-Page Application.

2. Nhóm tác giả đã khảo sát những website thực tế nào trước khi thiết kế hệ thống?
Nhóm tác giả đã tiến hành khảo sát và đánh giá ưu - nhược điểm của 05 website thương mại điện tử thực tế gồm: shopee.vn, nguyenkim.com, bachhoaxanh.com, tiki.vn, và sendo.vn.

3. Yêu cầu phi chức năng của hệ thống được quy định với các chỉ số thời gian cụ thể như thế nào?
Hệ thống quy định thời gian tra cứu thông tin không được vượt quá 10 giây, thời gian cập nhật dữ liệu không quá 5 giây, và cơ sở dữ liệu phải đảm bảo khả năng lưu trữ an toàn trên 10 năm không bị thất thoát hoặc sai lệch thông tin.

4. Cơ sở dữ liệu của đồ án gồm những bảng chính nào và xử lý phân quyền ra sao?
Cơ sở dữ liệu gồm 11 bảng: Users, Roles, AppUserRoles, Providers, Category, Products, Images, Order, OrderDetail, Evaluations, Replies. Việc phân quyền được quản lý thông qua bảng Roles và bảng trung gian AppUserRoles để phân định 3 cấp độ: Guest, User và Admin.

5. Quy trình đổi mật khẩu của người dùng được thiết kế diễn ra như thế nào?
Theo đặc tả Use Case 13 và lược đồ tuần tự xử lý, khi người dùng yêu cầu đổi mật khẩu, hệ thống yêu cầu nhập địa chỉ Gmail, sau đó hệ thống gửi một đường link xác nhận vào hộp thư. Người dùng truy cập vào link đó để nhập mật khẩu mới và xác nhận cập nhật vào cơ sở dữ liệu.


Kết luận

Đồ án tốt nghiệp "Xây dựng web bán hàng sử dụng .NET Core và ReactJS" của sinh viên Võ Văn Thiên và Nguyễn Hữu Thiện (Trường Đại học Sư phạm Kỹ thuật TP.HCM) đã giải quyết thành công bài toán số hóa quy trình kinh doanh bán lẻ trực tuyến. Công trình được triển khai bài bản qua 5 chương nội dung, kết hợp chặt chẽ giữa cơ sở lý thuyết công nghệ hiện đại, khảo sát thực tế 05 sàn thương mại điện tử và mô hình hóa 32 ca sử dụng chi tiết. Hệ thống phần mềm và cơ sở dữ liệu 11 thực thể được thiết kế hoàn chỉnh, đáp ứng đầy đủ các tiêu chuẩn kỹ thuật về hiệu năng xử lý và bảo mật phân quyền. Đây là tài liệu tham khảo có giá trị học thuật và ứng dụng thực tiễn cao cho sinh viên và lập trình viên chuyên ngành công nghệ phần mềm.