Bối cảnh và vấn đề nghiên cứu
Bối cảnh thực tiễn và lý do chọn đề tài
Sự phát triển mạnh mẽ của công nghệ thông tin và công nghệ phần mềm đã thúc đẩy sự phổ biến của các ứng dụng website trong quản lý, kinh doanh và tiếp thị. Website đóng vai trò là kênh kết nối trực tuyến giúp doanh nghiệp hiện diện trên Internet, tiếp cận khách hàng tiềm năng và tối ưu hóa hoạt động bán hàng.
Bối cảnh nghiên cứu của đề tài gắn liền với giai đoạn sau đại dịch COVID-19, khi các biện pháp giãn cách và phòng chống dịch bệnh thúc đẩy thói quen mua sắm trực tuyến thay vì mua hàng trực tiếp. Tác giả trích dẫn các số liệu khảo sát thực tế để minh chứng cho tính cấp thiết của đề tài:
- Theo khảo sát của PwC vào cuối năm 2021 trên 9.000 người tiêu dùng thuộc 26 quốc gia (bao gồm Việt Nam): 41% người tiêu dùng toàn cầu tăng cường mua sắm trực tuyến qua thiết bị điện tử, tỷ lệ này tại Việt Nam đạt 69%. Đồng thời, 50% người tiêu dùng bày tỏ mong muốn tiếp tục mua sắm trực tuyến nhiều hơn trong tương lai.
- Trong năm 2022, Việt Nam ghi nhận hơn 51 triệu người tham gia mua sắm trực tuyến với tổng mức chi tiêu đạt 12,42 tỷ USD. Trong đó, 73% người thường xuyên mua hàng trên các nền tảng thương mại điện tử và 59% từng đặt hàng trên các website bán hàng.
Từ thực tế hành vi tiêu dùng và yêu cầu kinh doanh, đề tài "Xây dựng website bán hàng điện tử qua mạng" được thực hiện nhằm xây dựng một giải pháp phần mềm thương mại điện tử hoàn chỉnh, hỗ trợ khách hàng tìm kiếm thông tin hàng hóa, đặt hàng và giúp người bán quản lý hoạt động kinh doanh trực tuyến.
Mục tiêu và nhiệm vụ nghiên cứu
- Nghiên cứu tổng quan cơ sở lý thuyết về website, lập trình web và các mô hình thương mại điện tử (đặc biệt là mô hình C2C).
- Khảo sát nhu cầu người dùng và chủ doanh nghiệp, phân tích và mô hình hóa chức năng hệ thống thông qua biểu đồ phân rã, sơ đồ luồng dữ liệu (DFD), sơ đồ ca sử dụng (Use Case) và biểu đồ trình tự (Sequence Diagram).
- Thiết kế cơ sở dữ liệu quan hệ (RDBMS) và xây dựng kiến trúc giao diện lập trình ứng dụng (RESTful API).
- Cài đặt môi trường phát triển, lập trình giao diện người dùng (Frontend), xây dựng dịch vụ xử lý nghiệp vụ phía máy chủ (Backend), và tiến hành kiểm thử các chức năng của website bán hàng điện tử.
Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu: Quy trình phân tích, thiết kế và xây dựng một website bán hàng trực tuyến; các công nghệ phần mềm ứng dụng trong phát triển hệ thống web thương mại điện tử.
- Phạm vi nghiên cứu:
- Về mặt kỹ thuật: Xây dựng ứng dụng web đơn trang (Single Page Application - SPA) phía client kết hợp kiến trúc dịch vụ API phía server và cơ sở dữ liệu quan hệ.
- Về mặt chức năng: Tập trung vào các quy trình nghiệp vụ mua bán hàng điện tử, bao gồm quản lý danh mục sản phẩm, tìm kiếm, giỏ hàng, thanh toán, quản lý đơn hàng, đánh giá/bình luận sản phẩm và quản lý người dùng.
Cơ sở lý thuyết và công nghệ áp dụng
Đồ án tổng hợp và áp dụng các nền tảng lý thuyết chuyên ngành công nghệ phần mềm và mạng máy tính:
Khung lý thuyết và mô hình ứng dụng
- Lập trình hướng đối tượng (Object-Oriented Programming - OOP): Đồ án dựa trên 4 tính chất cốt lõi:
- Tính trừu tượng (Abstraction): Tập trung vào các thuộc tính và hành vi cốt lõi của đối tượng, ẩn đi các chi tiết cài đặt phức tạp.
- Tính đóng gói (Encapsulation) và che giấu thông tin: Bảo vệ trạng thái nội tại của đối tượng, chỉ cho phép truy cập hoặc thay đổi thông qua các phương thức được định nghĩa.
- Tính kế thừa (Inheritance): Cho phép các lớp con tái sử dụng và mở rộng các thuộc tính, phương thức từ lớp cha.
- Tính đa hình (Polymorphism): Cho phép các đối tượng khác nhau phản ứng linh hoạt với cùng một thông điệp hoặc phương thức.
- Giao thức truyền tải HTTP và HTTPS: Hệ thống vận hành theo mô hình Client - Server. Để bảo mật dữ liệu trao đổi giữa trình duyệt và máy chủ, hệ thống ứng dụng giao thức HTTPS tích hợp chứng thư số SSL/TLS với 3 nguyên tắc bảo mật: Mã hóa dữ liệu (Encryption), Xác thực danh tính (Authentication) và Toàn vẹn dữ liệu (Data Integrity).
- Mô hình thương mại điện tử C2C (Customer to Customer): Mô hình giao dịch trực tuyến giữa các cá nhân thông qua nền tảng trung gian. Tác giả phân tích các đặc điểm như tính cạnh tranh đa dạng, tỷ suất lợi nhuận cao cho người bán, cùng với những thách thức về kiểm soát chất lượng và thanh toán.
- Hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS): Áp dụng mô hình cơ sở dữ liệu do E.F. Codd đề xuất từ năm 1970, lưu trữ dữ liệu dưới dạng các bảng (quan hệ) gồm hàng (bản ghi) và cột (thuộc tính), sử dụng các ràng buộc toàn vẹn dữ liệu như Khóa chính (Primary Key - duy nhất, Not Null), Khóa ngoại (Foreign Key - liên kết bảng), ràng buộc Not Null và điều kiện kiểm tra (Check).
Công nghệ phát triển phần mềm
- Giao diện người dùng (Frontend):
- Angular: Framework phát triển ứng dụng đơn trang (SPA) do Google phát triển, hỗ trợ kiến trúc Component, Module (
NgModules), Data Binding hai chiều, Service và công cụ dòng lệnh Angular CLI.
- TypeScript: Ngôn ngữ mã nguồn mở của Microsoft, là tập mở rộng của JavaScript bổ sung kiểu tĩnh (static typing) và cú pháp hướng đối tượng theo chuẩn ECMAScript, được biên dịch sang JavaScript bằng trình biên dịch
tsc.
- Phía máy chủ (Backend):
- ASP.NET Core 6 (.NET 6): Web framework mã nguồn mở của Microsoft phát hành tháng 11/2021, hỗ trợ đa nền tảng (Windows, Linux, macOS), tích hợp sẵn Dependency Injection (DI) và kiến trúc modular qua NuGet packages. Văn bản ghi nhận các chỉ số tối ưu hiệu năng của ASP.NET Core 6: thông lượng middleware tăng ~5%, hiệu năng MVC trên Linux tăng ~12%, giảm ~40% bộ nhớ cho kết nối HTTPS và tốc độ tuần tự hóa Protobuf nhanh hơn ~20%.
- Cơ sở dữ liệu (Database):
- MySQL: Hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở theo mô hình Client - Server, sử dụng giấy phép GPL và được quản lý bởi Oracle Corporation.
Phân tích, thiết kế và triển khai hệ thống
Kiến trúc chức năng và phân quyền người dùng
Hệ thống được thiết kế phục vụ 3 nhóm tác nhân (actors) chính:
- Người dùng (Khách hàng): Đăng nhập (tài khoản hệ thống hoặc Google), đăng ký tài khoản, lấy lại mật khẩu, xem chi tiết sản phẩm, thêm địa chỉ nhận hàng, quản lý giỏ hàng, thực hiện thủ tục thanh toán, tìm kiếm sản phẩm, sử dụng bộ lọc thông minh, gửi bình luận và đánh giá sản phẩm.
- Chủ doanh nghiệp: Đăng nhập vào hệ thống quản trị, thực hiện các thao tác thêm, sửa, xóa thông tin sản phẩm và hàng hóa.
- Quản trị viên (Admin): Đăng nhập hệ thống với quyền admin, thay đổi thông tin cá nhân, quản lý danh sách người dùng (cấp lại mật khẩu, phân quyền), quản lý sản phẩm (thêm, sửa, xóa) và quản lý thể loại sản phẩm (thêm, sửa, xóa).
Bảng phân rã chức năng hệ thống (Bảng 1 trong khóa luận):
+ Quản lý thông tin sản phẩm: Thêm sản phẩm, Sửa sản phẩm, Xóa sản phẩm, Cập nhật phản hồi.
+ Quản lý báo cáo thống kê: Thống kê đơn hàng, Thống kê sản phẩm.
+ Quản lý người dùng: Thêm người dùng, Sửa người dùng, Xóa người dùng, Phân quyền, Tài khoản người dùng.
Thiết kế cơ sở dữ liệu quan hệ
Hệ thống chuẩn hóa dữ liệu thành 8 thực thể quan hệ, đồng thời tích hợp các trường quản trị hệ thống như xóa mềm (IsDeleted), thông tin người tạo (CreatedBy), ngày tạo (CreatedDate), người chỉnh sửa (ModifiedBy) và ngày chỉnh sửa (ModifiedDate).
| Tên thực thể |
Diễn giải |
Các trường thuộc tính chính |
| USER |
Người dùng |
Id, Username, Password, Email, FullName, Gender, Age, PhoneNumber, Role, CreatedBy, CreatedDate, ModifiedBy, ModifiedDate, IsDeleted |
| CATEGORY |
Thể loại |
Id, Title, CreatedBy, CreatedDate, ModifiedBy, ModifiedDate, IsDeleted |
| PRODUCT |
Sản phẩm |
Id, Title, Image, Images, Description, ShorstDesc, Price, Quantity, CategoryId, CreatedBy, CreatedDate, ModifiedBy, ModifiedDate, IsDeleted |
| COMMENT |
Bình luận |
Id, Content, NameAssessor, Email, UserId, ProductId, CreatedBy, CreatedDate, ModifiedBy, ModifiedDate, IsDeleted |
| RATING |
Đánh giá |
Id, RatingCount, NameAssessor, Email, UserId, ProductId, CreatedBy, CreatedDate, ModifiedBy, ModifiedDate, IsDeleted |
| ADDRESS |
Địa chỉ |
Id, LineFirst, LineSecond, City, State, Country, PhoneNumber, PostalCode, UserId, CreatedBy, CreatedDate, ModifiedBy, ModifiedDate, IsDeleted |
| ORDER |
Đơn hàng |
Id, UserId, CreatedBy, CreatedDate, ModifiedBy, ModifiedDate, IsDeleted |
| ORDERDETAIL |
Chi tiết đơn hàng |
Id, Quantity, OrderId, ProductId, CreatedBy, CreatedDate, ModifiedBy, ModifiedDate, IsDeleted |
Đặc tả luồng xử lý Use Case và biểu đồ trình tự
Khóa luận xây dựng kịch bản chi tiết và biểu đồ trình tự cho các use case cốt lõi:
- Use case Tìm kiếm: Người dùng nhấn biểu tượng tìm kiếm trên
MainUI, nhập từ khóa sản phẩm. SanPhamController gửi thông điệp getProductByName() đến thực thể Product và tầng cơ sở dữ liệu ICSDL, trả về kết quả hiển thị trên giao diện; trường hợp không có kết quả hoặc mất kết nối CSDL, hệ thống thông báo trạng thái tương ứng.
- Use case Đăng nhập: Người dùng nhập tài khoản/mật khẩu trên
LoginUI. LoginController gọi hàm login() và getUser() từ thực thể User. Nếu hợp lệ, hệ thống hiển thị thông tin và chuyển giao diện My Account; nếu sai, hệ thống báo lỗi.
- Use case Đăng ký: Người dùng nhập thông tin bắt buộc trên
LoginUI. UserController thực thi hàm createUser() để lưu trữ thông tin mới vào bảng USER thông qua ICSDL và chuyển hướng về màn hình đăng nhập.
- Use case Chọn theo thể loại: Người dùng chọn danh mục trên
MainUI, SanPhamController truy xuất danh mục qua getCategory() từ bảng CATEGORY và danh sách sản phẩm qua getProductById() từ bảng PRODUCT để hiển thị.
- Use case Đánh giá và Bình luận: Từ trang chi tiết sản phẩm, người dùng chọn "Đánh giá", điền thông tin vào form popup. Hệ thống tự động sinh mã và gọi các hàm
createComment(), createRating(), cập nhật đồng thời vào các bảng COMMENT và RATING.
- Use case Thêm vào giỏ hàng: Người dùng chọn sản phẩm và bấm "Thêm giỏ hàng", hệ thống gọi phương thức lưu sản phẩm vào danh sách giỏ hàng nếu sản phẩm còn hàng tồn trong kho.
Môi trường cài đặt và kiểm thử
- Môi trường phát triển: Cài đặt và cấu hình Visual Studio Code, NodeJS, Git-scm, Angular CLI và Visual Studio 2022 trên nền tảng hệ điều hành Windows.
- Kiểm thử hệ thống: Đồ án thiết lập bảng kịch bản kiểm thử (Bảng 3: Kiểm thử) nhằm đánh giá tính đúng đắn của các use case, luồng cơ bản và luồng rẽ nhánh của các chức năng đăng nhập, đăng ký, tìm kiếm, giỏ hàng và xử lý đơn hàng.
Nội dung chính theo từng chương
Chương 1: Tổng quan về đề tài
- Khảo sát bối cảnh thị trường thương mại điện tử, trích dẫn số liệu người tiêu dùng của PwC (2021) và quy mô thị trường mua sắm trực tuyến Việt Nam năm 2022 (51 triệu người dùng, 12,42 tỷ USD).
- Trình bày cơ sở lý thuyết về 4 đặc tính của lập trình hướng đối tượng (OOP), giao thức HTTP/HTTPS cùng chứng thư số SSL/TLS, mô hình thương mại điện tử khách hàng với khách hàng (C2C) và hệ quản trị cơ sở dữ liệu quan hệ (RDBMS).
- Giới thiệu và phân tích ưu điểm của các công nghệ lựa chọn: Angular framework (Single Page Application, Data Binding, Components, Modules, Services), TypeScript, ASP.NET Core 6 (tối ưu thông lượng, giảm tải bộ nhớ HTTPS, hỗ trợ đa nền tảng) và hệ quản trị CSDL MySQL.
Chương 2: Phân tích hệ thống
- Khảo sát yêu cầu bài toán, phân tích mục đích xây dựng trang web làm cầu nối giữa doanh nghiệp và người mua hàng.
- Xây dựng bảng phân tích chức năng (Bảng 1), sơ đồ phân tích chức năng mức gộp và sơ đồ phân rã chức năng.
- Mô hình hóa luồng dữ liệu thông qua Sơ đồ luồng dữ liệu (DFD) mức đỉnh và các sơ đồ DFD mức dưới đỉnh (Quản lý sản phẩm, Quản lý báo cáo thống kê, Quản lý đơn hàng, Quản lý người dùng).
- Thiết kế dữ liệu với Mô hình khái niệm dữ liệu, Mô hình liên kết thực thể (ERD) và bảng định nghĩa thuộc tính chi tiết cho 8 thực thể dữ liệu (Bảng 2).
- Xây dựng Biểu đồ Use Case tổng quát, viết kịch bản đặc tả chi tiết (luồng cơ bản, luồng rẽ nhánh, tiền/hậu điều kiện) và vẽ biểu đồ trình tự (Sequence Diagram) cho các use case chính.
- Thiết kế các bảng tổng quan giao diện lập trình ứng dụng (API).
Chương 3: Cài đặt môi trường và kết quả
- Trình bày các bước thiết lập môi trường phát triển: cài đặt Visual Studio Code, NodeJS, Git-scm, Angular CLI và Visual Studio 2022.
- Triển khai và chụp ảnh giao diện thực tế của hệ thống hoàn chỉnh: Giao diện trang chủ, Sản phẩm theo thể loại, Chi tiết sản phẩm, Trang tìm kiếm sản phẩm, Trang đăng nhập, Thủ tục thanh toán, Trang xác nhận đơn hàng (Thankyou), Trang thêm mới sản phẩm, Trang chỉnh sửa sản phẩm, Trang danh sách người dùng, Danh sách đơn hàng và Trang cá nhân người dùng.
- Trình bày kết quả đánh giá hệ thống thông qua Bảng 3 (Kiểm thử chức năng).
Kết quả và đóng góp
Kết quả chính
- Hoàn thành thiết kế kiến trúc và cài đặt thành công hệ thống website bán hàng điện tử trực tuyến với sự kết hợp giữa Frontend (Angular, TypeScript) và Backend (ASP.NET Core 6, CSDL MySQL).
- Xây dựng đầy đủ hồ sơ phân tích và thiết kế phần mềm theo chuẩn kỹ thuật: hệ thống biểu đồ phân rã chức năng, sơ đồ luồng dữ liệu DFD đa mức, biểu đồ Use Case và biểu đồ trình tự cho từng ca sử dụng.
- Hiện thực hóa cơ sở dữ liệu quan hệ gồm 8 bảng dữ liệu chuẩn hóa, tích hợp đầy đủ các ràng buộc khóa chính, khóa ngoại, cơ chế xóa mềm (
IsDeleted) và trường theo dõi lịch sử chỉnh sửa dữ liệu (CreatedDate, ModifiedDate, CreatedBy, ModifiedBy).
- Cài đặt hoàn chỉnh các giao diện tương tác: trang chủ, danh mục sản phẩm, tìm kiếm, giỏ hàng, thanh toán, đánh giá sản phẩm và các trang quản trị dành cho chủ doanh nghiệp và admin.
Đóng góp của đề tài
- Ứng dụng thành công phiên bản công nghệ mới ASP.NET Core 6 và Angular vào bài toán phát triển website thương mại điện tử, khai thác các ưu thế về hiệu năng, tính module hóa và kiến trúc ứng dụng đơn trang (SPA).
- Cung cấp tài liệu phân tích thiết kế hệ thống chi tiết từ mô hình chức năng, mô hình dữ liệu đến đặc tả use case, làm cơ sở kỹ thuật rõ ràng cho việc phát triển và bảo trì phần mềm.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế
- Do giới hạn về thời gian nghiên cứu và nguồn lực thực hiện, một số chức năng quản trị nâng cao trong tài liệu thiết kế ban đầu còn ở mức cơ bản (ví dụ: mục phân quyền chi tiết cho người dùng và quản lý thể loại ở trạng thái ghi nhận sơ khởi).
- Hoạt động kiểm thử phần mềm chủ yếu tập trung vào kiểm tra tính đúng đắn của các luồng chức năng (Functional Testing) theo kịch bản use case, chưa mở rộng sang kiểm thử tải (Load Testing) hoặc kiểm thử bảo mật chuyên sâu.
Hướng nghiên cứu tiếp
- Hoàn thiện và nâng cao hệ thống phân quyền chi tiết cho các nhóm người dùng trong trang quản trị.
- Tích hợp thêm các cổng thanh toán trực tuyến tự động và mở rộng các bộ lọc tìm kiếm thông minh.
- Tiếp tục tối ưu hóa trải nghiệm người dùng trên giao diện và nâng cao các giải pháp bảo mật dữ liệu giao dịch.
Giá trị tham khảo
- Đối tượng tham khảo: Sinh viên chuyên ngành Khoa học máy tính, Công nghệ thông tin, Kỹ thuật phần mềm đang thực hiện đồ án tốt nghiệp hoặc các môn học Phân tích thiết kế hệ thống, Phát triển ứng dụng Web.
- Nội dung giá trị:
- Quy trình mô hình hóa hệ thống chuẩn mực: phương pháp xây dựng DFD, Use Case, Sequence Diagram và thiết kế CSDL quan hệ cho bài toán thương mại điện tử.
- Cấu trúc tích hợp giữa kiến trúc Single Page Application (Angular/TypeScript) với RESTful Web API (.NET 6), hỗ trợ lập trình viên trong việc thiết lập cấu trúc dự án và quản lý dữ liệu.
Câu hỏi thường gặp
1. Đồ án sử dụng những công nghệ và framework nào để xây dựng Frontend và Backend?
Phía Frontend sử dụng framework Angular kết hợp ngôn ngữ TypeScript và công cụ Angular CLI để xây dựng ứng dụng đơn trang (SPA). Phía Backend sử dụng ASP.NET Core 6 (.NET 6) của Microsoft, kết nối với hệ quản trị cơ sở dữ liệu quan hệ MySQL.
2. Cơ sở dữ liệu của hệ thống gồm những thực thể nào?
Hệ thống được thiết kế gồm 8 thực thể quan hệ chính: USER (người dùng), CATEGORY (thể loại), PRODUCT (sản phẩm), COMMENT (bình luận), ADDRESS (địa chỉ), RATING (đánh giá), ORDER (đơn hàng) và ORDERDETAIL (chi tiết đơn hàng).
3. Tác giả sử dụng các số liệu thống kê thực tế nào để chứng minh tính cấp thiết của đề tài?
Tác giả trích dẫn khảo sát của PwC (cuối 2021) cho thấy 41% người tiêu dùng toàn cầu và 69% người tiêu dùng Việt Nam tăng cường mua sắm trực tuyến. Đồng thời, số liệu năm 2022 ghi nhận Việt Nam có hơn 51 triệu người tham gia mua sắm trực tuyến với tổng chi tiêu đạt 12,42 tỷ USD, trong đó 73% thường xuyên mua hàng qua các nền tảng thương mại điện tử.
4. Hệ thống phân chia quyền hạn cho những nhóm người dùng nào?
Hệ thống phân chia thành 3 nhóm tác nhân: Người dùng/Khách hàng (tìm kiếm, xem sản phẩm, quản lý giỏ hàng, thanh toán, bình luận, đánh giá), Chủ doanh nghiệp (quản lý thêm, sửa, xóa sản phẩm) và Quản trị viên (quản trị người dùng, sản phẩm, thể loại và thông tin cá nhân).
5. Use case "Bình luận và Đánh giá" tương tác với những bảng dữ liệu nào?
Use case này tương tác trực tiếp với 3 bảng dữ liệu trong hệ thống: lấy thông tin sản phẩm từ bảng PRODUCT, sau đó lưu trữ nội dung nhận xét vào bảng COMMENT và lưu số điểm đánh giá vào bảng RATING cùng với định danh của người dùng (UserId).
Kết luận
Khóa luận tốt nghiệp "Xây dựng website bán hàng điện tử qua mạng" của sinh viên Tạ Quang Huy đã giải quyết hoàn chỉnh bài toán xây dựng một hệ thống thương mại điện tử hiện đại. Đề tài kết hợp thành công nền tảng lý thuyết phân tích thiết kế hệ thống với các công nghệ phần mềm tiên tiến gồm Angular, TypeScript, ASP.NET Core 6 và MySQL. Toàn bộ quy trình từ khảo sát thực tế, mô hình hóa luồng dữ liệu, thiết kế 8 thực thể CSDL đến cài đặt giao diện và kiểm thử chức năng đều được thực hiện đầy đủ, mang lại giá trị tham khảo kỹ thuật cao cho việc nghiên cứu và phát triển ứng dụng web.