Giới thiệu dự án
Thương mại điện tử (E-Commerce) tại Việt Nam đang duy trì tốc độ tăng trưởng ấn tượng từ 20% - 25%/năm, trở thành kênh phân phối trọng yếu của ngành bán lẻ thời trang. Tuy nhiên, các cửa hàng thời trang vừa và nhỏ (SMBs) như FlatShop thường gặp nhiều trở ngại trong việc chuyển đổi số: phụ thuộc vào các sàn thương mại điện tử với chi phí chiết khấu cao (15% - 25% trên mỗi đơn hàng), quản lý tồn kho thủ công gây thất thoát, và thiếu kênh tương tác trực tiếp (D2C - Direct to Consumer) để xây dựng thương hiệu bền vững.
Đề tài "Xây dựng website bán quần áo cho cửa hàng FlatShop bằng ASP.NET Core" do sinh viên Vũ Quang Tùng (Trường Đại học Công nghiệp Hà Nội) thực hiện dưới sự hướng dẫn của ThS. An Văn Minh nhằm giải quyết triệt để bài toán số hóa toàn diện quy trình kinh doanh cho FlatShop. Hệ thống cung cấp nền tảng web thương mại điện tử độc lập, tối ưu hóa trải nghiệm khách lẻ và tự động hóa khâu quản trị sản phẩm, đơn hàng, người dùng.
+-----------------------------------------------------------------------+
| HỆ THỐNG FLATSHOP E-COMMERCE |
| |
| [Khách hàng] <---> [Giao diện FlatShop Web] <---> [ASP.NET Core MVC] |
| | |
| [Quản trị viên] <---> [Admin Dashboard] <-----------------+ |
| | |
| [SQL Server 2022] |
+-----------------------------------------------------------------------+
Mục tiêu dự án
- Chuẩn hóa kiến trúc phần mềm: Xây dựng hệ thống theo mô hình MVC (Model-View-Controller) trên nền tảng .NET hiện đại, phân tách rõ ràng giữa tầng dữ liệu, logic xử lý và giao diện người dùng.
- Tối ưu hóa cơ sở dữ liệu quan hệ (RDBMS): Thiết kế lược đồ dữ liệu đạt chuẩn chuẩn hóa 3NF (Third Normal Form) trên Microsoft SQL Server, đảm bảo tính toàn vẹn (ACID) và hiệu năng truy vấn.
- Hiện thực hóa 21 Use Case nghiệp vụ: Triển khai đầy đủ phân hệ Khách hàng (Đăng ký, Đăng nhập, Duyệt danh mục, Giỏ hàng, Đặt hàng, Đánh giá sao, Lịch sử đơn) và phân hệ Quản trị (CRUD Sản phẩm, Danh mục, Banner/Slide, Tin tức, Phân quyền User).
- Nâng cao trải nghiệm người dùng (UX/UI): Thiết kế giao diện Responsive tương thích 100% trên các thiết bị di động và máy tính để bàn, giảm tối đa thao tác mua hàng.
- Đảm bảo an toàn thông tin: Tích hợp các cơ chế bảo mật tiêu chuẩn gồm mã hóa mật khẩu một chiều, ngăn chặn tấn công SQL Injection và Cross-Site Request Forgery (CSRF).
Chỉ số kỳ vọng (Measurable Metrics)
- Thời gian phản hồi máy chủ (TTFB - Time to First Byte): < 150ms đối với các trang tĩnh và < 350ms đối với các trang truy vấn dữ liệu động.
- Khả năng chịu tải đồng thời: Xử lý ổn định tối thiểu 500 người dùng hoạt động đồng thời (CCU - Concurrent Users) với tỷ lệ lỗi < 0.1%.
- Tốc độ tải trang hoàn chỉnh (Fully Loaded Page Time): < 1.8 giây trên đường truyền mạng tiêu chuẩn 4G/Băng thông rộng.
Phạm vi và giới hạn hệ thống
- Phạm vi: Ứng dụng Web đơn cửa hàng (Single-vendor B2C), hỗ trợ quy trình đặt hàng trực tuyến, thanh toán khi nhận hàng (COD), theo dõi trạng thái đơn hàng và quản lý nội dung đa phương tiện.
- Giới hạn: Chưa tích hợp trực tiếp cổng thanh toán trực tuyến quốc tế (PayPal/Stripe) và chưa áp dụng giải pháp lưu trữ phân tán (Distributed Caching).
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Trước khi xây dựng hệ thống, khảo sát thực tế tại FlatShop và các nền tảng bán lẻ tương đương cho thấy sự khác biệt rõ rệt giữa giải pháp tự phát triển trên ASP.NET Core so với các mã nguồn mở hoặc nền tảng SaaS hiện có:
| Tiêu chí so sánh |
Nền tảng SaaS (Shopify, Haravan) |
Mã nguồn mở (WooCommerce / WordPress) |
Hệ thống FlatShop (ASP.NET Core MVC) |
| Chi phí duy trì |
Rất cao (Thuê bao $29-$299/tháng + phí giao dịch) |
Trung bình (Hosting + Plugin bản quyền) |
Thấp (Chỉ tốn phí hạ tầng Server/VPS) |
| Khả năng tùy biến logic |
Bị giới hạn bởi API/App Marketplace |
Trung bình (Dễ xung đột PHP/Plugin) |
Tuyệt đối (Toàn quyền kiểm soát mã nguồn C#) |
| Hiệu năng & Tải trọng |
Phụ thuộc hạ tầng nhà cung cấp |
Giảm mạnh khi dữ liệu > 10.000 sản phẩm |
Rất cao (Tối ưu hóa biên dịch trực tiếp CLR) |
| Bảo mật mã nguồn |
Cao (Do nhà cung cấp quản lý) |
Dễ tổn thương (Lỗ hổng từ Plugin bên thứ ba) |
Rất cao (Mã nguồn đóng, bảo mật cấp doanh nghiệp) |
Phân loại yêu cầu người dùng theo mô hình MoSCoW
- Must have (Bắt buộc): Đăng ký/Đăng nhập xác thực dữ liệu, xem danh mục phân cấp (
Categories), xem chi tiết sản phẩm (Product Detail), quản lý giỏ hàng (Cart), đặt hàng tạo bản ghi kép (Orders và OrderDetail), trang quản trị Admin CRUD.
- Should have (Cần có): Hệ thống đánh giá sao (
Rating), lọc sản phẩm theo thương hiệu (Tags), quản lý tin tức (News), bộ lọc theo khoảng giá và danh mục con.
- Could have (Có thể có): Quản lý banner quảng cáo (
Advs), quản lý slide trình diễn trang chủ (Slides), chức năng hủy đơn hàng từ phía khách hàng.
- Won't have (Chưa làm trong phiên bản này): Tích hợp AI gợi ý sản phẩm tự động, hệ thống đa ngôn ngữ (i18n).
Thiết kế hệ thống
Kiến trúc 3 tầng (3-Layer Architecture) trên nền ASP.NET Core MVC
Hệ thống được thiết kế phân tầng chặt chẽ nhằm tối ưu tính độc lập và khả năng bảo trì:
- Presentation Layer (Tầng hiển thị): Sử dụng Razor View Engine (
.cshtml) kết hợp HTML5, CSS3, JavaScript, AJAX để tạo giao diện phản hồi nhanh.
- Business Logic Layer (Tầng xử lý nghiệp vụ - Controllers): Tiếp nhận Request, điều hướng luồng xử lý, thực thi validation logic (
XemChiTietSanPhamController, BaoTriSanPhamController, CartController).
- Data Access Layer (Tầng truy cập dữ liệu - EF Core & SQL Server): Tương tác với CSDL thông qua Entity Framework Core (ORM), thực thi các truy vấn LINQ to Entities đảm bảo an toàn kiểu dữ liệu (Type-safety).
+-------------------------------------------------------------+
| PRESENTATION LAYER (Razor Views) |
| Index.cshtml | Detail.cshtml | Cart.cshtml |
+-------------------------------------------------------------+
|
v (HTTP Request / ViewModel)
+-------------------------------------------------------------+
| BUSINESS LOGIC LAYER (MVC Controllers) |
| ProductController | OrderController | AdminController |
+-------------------------------------------------------------+
|
v (LINQ Queries / DTO)
+-------------------------------------------------------------+
| DATA ACCESS LAYER (Entity Framework Core) |
| FlatShopDbContext : DbContext |
+-------------------------------------------------------------+
|
v (T-SQL via ADO.NET)
+-------------------------------------------------------------+
| DATABASE (Microsoft SQL Server) |
| Tables: Products, Orders, OrderDetail, Categories... |
+-------------------------------------------------------------+
Ngăn xếp công nghệ (Technology Stack)
- Framework backend: ASP.NET Core 8.0 MVC
- Ngôn ngữ lập trình: C# 12 (.NET 8 Runtime)
- Object-Relational Mapping (ORM): Entity Framework Core 8.0
- Hệ quản trị CSDL (DBMS): Microsoft SQL Server 2022
- Frontend: Razor View Engine, Bootstrap 5.3, jQuery 3.7, FontAwesome 6
- Công cụ phát triển (IDE): Microsoft Visual Studio 2022 / Visual Studio Code
- Công cụ thiết kế & phân tích UML: StarUML, Visual Paradigm
Thiết kế cơ sở dữ liệu (Database Schema)
CSDL được chuẩn hóa loại bỏ hoàn toàn các dị thường dữ liệu (Anomalies) khi Thêm/Sửa/Xóa. Các bảng cốt lõi bao gồm:
-- Cấu trúc bảng Products lưu trữ thông tin mặt hàng
CREATE TABLE Products (
Id INT IDENTITY(1,1) PRIMARY KEY,
Name NVARCHAR(250) NOT NULL,
Description NVARCHAR(MAX) NULL,
Content NVARCHAR(MAX) NULL,
Photo NVARCHAR(500) NOT NULL,
Hot INT DEFAULT 0,
Price DECIMAL(18,2) NOT NULL,
Discount INT DEFAULT 0,
CreatedDate DATETIME DEFAULT GETDATE()
);
-- Cấu trúc bảng Categories hỗ trợ phân cấp cha - con
CREATE TABLE Categories (
Id INT IDENTITY(1,1) PRIMARY KEY,
ParentId INT DEFAULT 0,
Name NVARCHAR(200) NOT NULL,
DisplayHomePage INT DEFAULT 1
);
-- Cấu trúc bảng Orders và OrderDetail đảm bảo toàn vẹn giao dịch
CREATE TABLE Orders (
Id INT IDENTITY(1,1) PRIMARY KEY,
CustomerId INT NOT NULL,
CreateDate DATETIME DEFAULT GETDATE(),
Price DECIMAL(18,2) NOT NULL,
Status INT DEFAULT 0, -- 0: Mới đặt, 1: Đang giao, 2: Hoàn thành, 3: Đã hủy
CONSTRAINT FK_Orders_Customer FOREIGN KEY (CustomerId) REFERENCES Customer(Id)
);
CREATE TABLE OrderDetail (
Id INT IDENTITY(1,1) PRIMARY KEY,
OrdersId INT NOT NULL,
ProductId INT NOT NULL,
Quantity INT NOT NULL CHECK (Quantity > 0),
Price DECIMAL(18,2) NOT NULL,
CONSTRAINT FK_OrderDetail_Orders FOREIGN KEY (OrdersId) REFERENCES Orders(Id) ON DELETE CASCADE,
CONSTRAINT FK_OrderDetail_Products FOREIGN KEY (ProductId) REFERENCES Products(Id)
);
+----------------+ +-------------------+ +------------------+
| Customer | 1 * | Orders | 1 * | OrderDetail |
+----------------+----------+-------------------+----------+------------------+
| PK Id | | PK Id | | PK Id |
| Name | | FK CustomerId | | FK OrdersId |
| Email | | CreateDate | | FK ProductId |
| Phone | | Price | | Quantity |
| Password | | Status | | Price |
+----------------+ +-------------------+ +--------+---------+
| *
|
| 1
+--------+---------+
| Products |
+------------------+
| PK Id |
| Name |
| Price |
| Discount |
| Photo |
+------------------+
Phương pháp luận (Methodology)
Dự án áp dụng mô hình phát triển phần mềm Agile/Scrum thu gọn chia thành các giai đoạn (Milestones) với chu kỳ kiểm thử liên tục:
[Khảo sát & Thu thập Use Case] ---> [Thiết kế UML / VOPC / DB 3NF] ---> [Lập trình Backend / Frontend] ---> [Kiểm thử Đơn vị & Tải] ---> [Đóng gói Triển khai]
- Đánh giá rủi ro & giải pháp giảm thiểu:
- Rủi ro sai lệch dữ liệu tồn kho khi nhiều người đặt cùng lúc: Áp dụng Database Transaction (
IDbContextTransaction) với mức cô lập ReadCommitted.
- Rủi ro rò rỉ thông tin cá nhân: Băm mật khẩu người dùng bằng giải pháp bảo mật mật mã học SHA-256 kèm Salt, áp dụng Cookie Authentication có cờ
HttpOnly và Secure.
Implementation và kết quả
Quy trình phát triển (Development Process)
Hệ thống được phát triển bám sát các biểu đồ lớp phân tích (VOPC - View Of Participating Classes) và biểu đồ trình tự (Sequence Diagrams) đã thiết kế trong chương 3 của đồ án tốt nghiệp.
Xử lý logic đặt hàng và bảo toàn giao dịch (Transaction Logic)
Đoạn mã xử lý tại CartController minh họa quy trình lưu thông tin đơn hàng từ session giỏ hàng vào hai bảng liên kết Orders và OrderDetail:
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Checkout(OrderViewModel model)
{
var customerId = HttpContext.Session.GetInt32("CustomerId");
if (customerId == null)
{
return RedirectToAction("Login", "Account");
}
var cart = HttpContext.Session.GetJson<List<CartItem>>("Cart") ?? new List<CartItem>();
if (!cart.Any())
{
ModelState.AddModelError("", "Giỏ hàng rỗng!");
return View(model);
}
// Sử dụng Transaction để bảo toàn tính nguyên tử (Atomicity)
using var transaction = await _dbContext.Database.BeginTransactionAsync();
try
{
var order = new Order
{
CustomerId = customerId.Value,
CreateDate = DateTime.Now,
Price = cart.Sum(x => x.Quantity * (x.Price - (x.Price * x.Discount / 100))),
Status = 0 // Trạng thái: Chờ duyệt
};
_dbContext.Orders.Add(order);
await _dbContext.SaveChangesAsync();
foreach (var item in cart)
{
var orderDetail = new OrderDetail
{
OrdersId = order.Id,
ProductId = item.ProductId,
Quantity = item.Quantity,
Price = item.Price - (item.Price * item.Discount / 100)
};
_dbContext.OrderDetail.Add(orderDetail);
}
await _dbContext.SaveChangesAsync();
await transaction.CommitAsync();
// Xóa sạch giỏ hàng sau khi đặt thành công
HttpContext.Session.Remove("Cart");
return RedirectToAction("OrderSuccess", new { id = order.Id });
}
catch (Exception ex)
{
await transaction.RollbackAsync();
_logger.LogError(ex, "Lỗi xảy ra trong quá trình tạo đơn hàng.");
return View("Error");
}
}
Xử lý phân hệ quản trị sản phẩm (BaoTriSanPhamController)
Triển khai logic bảo trì sản phẩm với thao tác bất đồng bộ (async/await) giúp máy chủ không bị khóa luồng (Non-blocking I/O):
[Authorize(Roles = "Admin,AdminPhu,CongTacVien")]
public class BaoTriSanPhamController : Controller
{
private readonly FlatShopDbContext _context;
private readonly IWebHostEnvironment _env;
public BaoTriSanPhamController(FlatShopDbContext context, IWebHostEnvironment env)
{
_context = context;
_env = env;
}
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> CreatePost(ProductInputModel input, IFormFile photoUpload)
{
if (ModelState.IsValid)
{
string fileName = "default.jpg";
if (photoUpload != null && photoUpload.Length > 0)
{
fileName = Guid.NewGuid().ToString() + Path.GetExtension(photoUpload.FileName);
string uploadPath = Path.Combine(_env.WebRootPath, "Upload/Products", fileName);
using var stream = new FileStream(uploadPath, FileMode.Create);
await photoUpload.CopyToAsync(stream);
}
var product = new Product
{
Name = input.Name,
Description = input.Description,
Content = input.Content,
Price = input.Price,
Discount = input.Discount,
Hot = input.Hot,
Photo = fileName
};
_context.Products.Add(product);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
return View("CreateUpdate", input);
}
}
Kiểm thử và đánh giá (Testing & Validation)
Hệ thống đã trải qua quá trình kiểm thử tự động và thủ công nhằm đánh giá toàn diện tính chính xác và hiệu năng chịu tải.
KẾT QUẢ KIỂM THỬ TẢI (Apache JMeter)
+------------------+---------------------+-------------------+-------------+
| Số lượng User ảo | Thời gian phản hồi | Tần suất đáp ứng | Tỷ lệ lỗi |
| (Concurrent CCU) | trung bình (ms) | (Throughput req/s)| Error Rate |
+------------------+---------------------+-------------------+-------------+
| 100 Users | 112 ms | 485 req/s | 0.00 % |
| 300 Users | 245 ms | 920 req/s | 0.00 % |
| 500 Users | 418 ms | 1,210 req/s | 0.04 % |
| 1,000 Users | 1,180 ms | 1,450 req/s | 0.82 % |
+------------------+---------------------+-------------------+-------------+
- Kiểm thử chức năng (Functional Testing): Thiết lập 64 Test Case bao phủ toàn bộ 21 Use Case. Tỷ lệ vượt qua (Pass Rate) đạt 100%.
- Đánh giá trải nghiệm người dùng (UAT): Thử nghiệm trên nhóm 30 người dùng thực tế thực hiện hành vi tìm kiếm, thêm giỏ hàng và thanh toán. Điểm số hài lòng chuẩn hóa SUS (System Usability Scale) đạt 86.5/100 (Mức Xuất sắc - Grade A).
Kết quả đạt được
Hệ thống hoàn thành đầy đủ các tiêu chí chức năng và phi chức năng đã đề ra trong đề cương khóa luận:
| Hạng mục chức năng |
Dự kiến ban đầu |
Kết quả thực tế |
Tỷ lệ hoàn thành |
| Xác thực tài khoản |
Đăng ký, đăng nhập cơ bản |
Xác thực đa phân quyền (Admin, CTV, Khách) |
100% |
| Hiển thị sản phẩm |
Danh sách, xem chi tiết |
Danh mục đa cấp, Lọc theo Tag/Giá, Rating sao |
100% |
| Xử lý đơn hàng |
Thêm giỏ hàng, đặt đơn |
Lưu CSDL nguyên tử, Tra cứu lịch sử, Hủy đơn |
100% |
| Quản trị nội dung |
CRUD Sản phẩm, Danh mục |
Quản lý Slide, Quảng cáo, Tin tức, User |
100% |
| Giao diện người dùng |
Tương thích Web PC |
Responsive 100% Mobile, Tablet, Desktop |
100% |
Đổi mới và đóng góp
- Ứng dụng mô hình phân tích trực quan VOPC vào thực tế: Đồ án đã ánh xạ thành công toàn bộ các biểu đồ lớp phân tích (VOPC) và biểu đồ trình tự (BDTT) sang kiến trúc Controller - Entity - View cụ thể của ASP.NET Core MVC, tạo ra bộ khung mã nguồn mẫu có tính tái sử dụng cao.
- Tối ưu hóa truy vấn dữ liệu với LINQ & EF Core: Triển khai cơ chế tải dữ liệu có chọn lọc (
.Select(), .AsNoTracking()) cho các trang danh sách, giúp giảm 40% dung lượng RAM tiêu thụ trên máy chủ so với cách nạp toàn bộ thực thể.
- Cải tiến tốc độ xử lý nghiệp vụ: So với hệ thống quản lý thủ công trước đây của FlatShop, website giúp giảm 65% thời gian xử lý đơn hàng và loại bỏ 98% sai sót trong việc tính toán giá trị giỏ hàng kèm chiết khấu (
Discount).
- Đóng góp học thuật và ứng dụng: Cung cấp tài liệu tham khảo hoàn chỉnh từ phân tích đặc tả yêu cầu, thiết kế CSDL quan hệ 3NF đến mã nguồn thực tế cho sinh viên ngành Công nghệ Thông tin tại Đại học Công nghiệp Hà Nội.
Ứng dụng thực tế và triển khai
Kịch bản vận hành thực tế
- Phía người tiêu dùng: Khách hàng truy cập trang chủ FlatShop, xem các banner quảng cáo nổi bật (
Slides), lọc quần áo nam/nữ theo danh mục (Categories), kiểm tra bảng giá sau chiết khấu, xem đánh giá của người mua trước (Rating), đưa sản phẩm vào giỏ hàng và đặt mua chỉ trong 3 bước mà không cần gặp mặt người bán.
- Phía cửa hàng: Quản trị viên theo dõi danh sách đơn hàng theo thời gian thực tại bảng điều khiển, chuyển đổi trạng thái đơn từ "Chờ xử lý" sang "Đang giao", cập nhật số lượng mẫu mã mới (
Products) và đăng bài viết thời trang (News) để tăng tương tác.
Hướng dẫn triển khai (Deployment Architecture)
- Hạ tầng máy chủ:
- Hệ điều hành: Windows Server 2019 / Ubuntu 22.04 LTS
- Máy chủ web (Reverse Proxy): Internet Information Services (IIS) hoặc Nginx chuyển tiếp tới Kestrel Server
- Cơ sở dữ liệu: SQL Server 2019/2022 Standard Edition
- Cấu hình tối thiểu: 2 vCPU, 4GB RAM, 40GB SSD.
+----------------+ HTTP/HTTPS +-------------------+ Reverse Proxy +------------------------+
| Internet User | -------------------> | Nginx / IIS | ---------------------> | Kestrel Web Server |
+----------------+ | (SSL Offloading) | | (ASP.NET Core App) |
+-------------------+ +-----------+------------+
|
| ADO.NET / Port 1433
v
+------------------------+
| Microsoft SQL Server |
+------------------------+
Phân tích chi phí - lợi ích (ROI Estimates)
- Chi phí đầu tư phần mềm ban đầu: ~0 VNĐ (Tự phát triển mã nguồn mở trên nền tảng .NET).
- Chi phí hạ tầng: ~250.000 VNĐ/tháng (Cloud VPS tiêu chuẩn).
- Hiệu quả kinh tế: Tăng doanh số bán lẻ dự kiến thêm 35% nhờ mở rộng kênh bán lẻ 24/7; thời gian hoàn vốn đầu tư hạ tầng (Payback Period) ước tính chỉ sau 4.5 tháng hoạt động.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật
- Hệ thống thanh toán hiện tại vẫn dừng lại ở hình thức COD (Cash on Delivery) hoặc chuyển khoản thủ công, chưa kết nối trực tiếp cổng thanh toán điện tử (VNPay, MoMo, ZaloPay API).
- Quá trình tìm kiếm sản phẩm đang sử dụng mệnh đề
LIKE %keyword% trong SQL, chưa tích hợp công nghệ tìm kiếm toàn văn chuyên sâu (Full-Text Search).
Hướng nâng cấp trong tương lai
- Tích hợp cổng thanh toán trực tuyến: Kết nối API VNPay/MoMo với chữ ký số HMAC-SHA512 để xử lý giao dịch tức thì.
- Nâng cấp công cụ tìm kiếm: Tích hợp ElasticSearch hoặc Redis Search để hỗ trợ tìm kiếm mờ (Fuzzy Search) và gợi ý từ khóa thông minh (Auto-complete).
- Mở rộng kiến trúc Microservices: Tách phân hệ Quản lý đơn hàng và Thanh toán thành các dịch vụ độc lập kết nối qua RabbitMQ Message Broker khi quy mô đơn hàng vượt quá 10.000 đơn/ngày.
- Tự động hóa CI/CD: Xây dựng quy trình đóng gói tự động bằng Docker và GitHub Actions triển khai lên nền tảng đám mây Azure / AWS.
Đối tượng hưởng lợi
+---------------------------------------------------------------------------------+
| GIÁ TRỊ MANG LẠI |
+-------------------+-------------------------------------------------------------+
| Sinh viên IT | Tài liệu mẫu chuẩn về phân tích UML (VOPC, BDTT) & C# Core |
| Lập trình viên | Bộ khung mẫu (Template) ASP.NET Core MVC kết hợp EF Core |
| Cửa hàng FlatShop | Sở hữu kênh bán hàng D2C chuyên nghiệp, cắt giảm 20% chi phí|
| Người tiêu dùng | Trải nghiệm mua sắm tiện lợi, nhanh chóng, minh bạch giá cả |
+-------------------+-------------------------------------------------------------+
- Sinh viên Công nghệ Thông tin: Nguồn học liệu tham khảo chất lượng cao về cách chuẩn hóa CSDL từ dạng sơ khai lên 3NF/BCNF và phương pháp chuyển hóa từ phân tích hướng đối tượng (OOAD) sang mã nguồn thực thi.
- Lập trình viên phần mềm: Nắm bắt các mẫu thiết kế (Design Patterns), kỹ thuật xử lý Transaction bất đồng bộ trong EF Core và cấu trúc View linh hoạt với Razor.
- Chủ doanh nghiệp / Cửa hàng bán lẻ: Giải pháp công nghệ tinh gọn, độc lập hoàn toàn về mặt dữ liệu khách hàng, giảm tối đa chi phí hoa hồng cho các sàn thương mại trung gian.
- Khách hàng trực tuyến: Công cụ mua sắm quần áo minh bạch thông tin, tốc độ phản hồi nhanh, dễ dàng tra cứu và đánh giá sản phẩm.
Câu hỏi thường gặp
1. Yêu cầu phần cứng và môi trường tối thiểu để triển khai website FlatShop là gì?
Hệ thống yêu cầu máy chủ cài đặt .NET Runtime 8.0 trở lên và Microsoft SQL Server (tối thiểu phiên bản 2017 Express). Về phần cứng, cấu hình tối thiểu là 2 Cores CPU, 4GB RAM và 20GB dung lượng ổ cứng khả dụng.
2. Hệ thống xử lý thế nào khi lượng truy cập tăng đột biến trong các đợt Flash Sale?
Kiến trúc ASP.NET Core sử dụng Kestrel Server chạy bất đồng bộ đa luồng (Async/Await), cho phép tiếp nhận hàng ngàn kết nối I/O cùng lúc mà không làm cạn kiệt Thread Pool. Khi mở rộng, hệ thống có thể kết hợp thêm giải pháp Cache phân tán (Redis Cache) cho danh mục sản phẩm và triển khai cân bằng tải (Load Balancing) qua Nginx.
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?
Do hệ thống được thiết kế theo mô hình MVC module hóa, nhà phát triển chỉ cần xây dựng thêm PaymentController và Service VnPayService, nhận phản hồi từ IPN (Instant Payment Notification) của nhà cung cấp để tự động cập nhật trường Status trong bảng Orders.
4. Chi phí vận hành và bảo trì hệ thống hàng tháng là bao nhiêu?
Chi phí vận hành định kỳ bao gồm tên miền (Domain ~250.000 VNĐ/năm) và máy chủ ảo (Cloud VPS ~150.000 - 300.000 VNĐ/tháng). Tổng chi phí duy trì chỉ khoảng 2.000.000 - 3.500.000 VNĐ/năm, tối ưu hơn rất nhiều so với chi phí thuê nền tảng SaaS.
5. Dữ liệu mật khẩu của khách hàng và ban quản trị được bảo vệ như thế nào?
Mật khẩu người dùng được xử lý băm (Hash) trước khi lưu vào bảng Customer và Users. Kết hợp cùng cơ chế chống tấn công Cross-Site Scripting (XSS) tự động của Razor View và cờ [ValidateAntiForgeryToken] trên tất cả các Form POST, hệ thống ngăn chặn triệt để nguy cơ đánh cắp phiên làm việc.
Kết luận
Đồ án tốt nghiệp "Xây dựng website bán quần áo cho cửa hàng FlatShop bằng ASP.NET Core" của sinh viên Vũ Quang Tùng đã giải quyết xuất sắc bài toán thực tiễn về chuyển đổi số cho mô hình kinh doanh thời trang bán lẻ. Bằng việc kết hợp nền tảng công nghệ mạnh mẽ ASP.NET Core với hệ quản trị cơ sở dữ liệu quan hệ Microsoft SQL Server được chuẩn hóa 3NF, hệ thống đạt được sự cân bằng hoàn hảo giữa hiệu năng xử lý, tính ổn định và mức độ bảo mật.
Dự án không chỉ khẳng định năng lực ứng dụng toàn diện các kiến thức kỹ thuật phần mềm (từ phân tích đặc tả yêu cầu, thiết kế biểu đồ UML/VOPC đến lập trình C# hướng đối tượng) mà còn đem lại giá trị kinh tế trực tiếp cho đơn vị thụ hưởng FlatShop. Đây là nền tảng vững chắc để tiếp tục mở rộng các tính năng nâng cao như tích hợp thanh toán số, tối ưu hóa công cụ tìm kiếm và triển khai kiến trúc điện toán đám mây trong tương lai.