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

Khóa luận tốt nghiệp của tác giả Nguyễn Văn Hoàng và Phạm Đức Huấn (ngành Công nghệ thông tin, Khoa Đào tạo Chất lượng cao, Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh) giải quyết bài toán tin học hóa hoạt động kinh doanh bán lẻ máy tính xách tay trong điều kiện chuyển đổi số sau đại dịch COVID-19.

Bối cảnh thực tiễn được nhóm tác giả xác định xuất phát từ sự phát triển nhanh của hạ tầng mạng và công nghệ phần mềm, cùng tác động sâu sắc của đại dịch COVID-19 làm thay đổi tập quán tiêu dùng. Việc dịch chuyển mô hình kinh doanh từ bán hàng truyền thống sang các kênh trực tuyến trở thành xu thế tất yếu của các đơn vị bán lẻ nhằm xóa bỏ rào cản về khoảng cách địa lý và thời gian, tối ưu hóa quy trình kiểm soát đơn hàng cũng như hỗ trợ thanh toán linh hoạt cho người mua.

Nhiệm vụ và mục tiêu nghiên cứu của đề tài được xác định theo 6 nội dung cụ thể trong văn bản:

  1. Khảo sát, phân tích các website thương mại điện tử chuyên doanh máy tính xách tay hiện có nhằm xác định những yếu tố chức năng cần thiết của một nền tảng trực tuyến.
  2. Xây dựng hệ thống quản trị hỗ trợ quản lý khách hàng, doanh thu, danh mục sản phẩm và đơn đặt hàng với độ chính xác cao.
  3. Thiết kế giao diện ứng dụng web bảo đảm tính tiện dụng, bố cục rõ ràng và thao tác thân thiện với người dùng.
  4. Cung cấp dữ liệu chi tiết về sản phẩm laptop (mô tả kỹ thuật, hình ảnh, kích thước, tầm giá, số lượng tồn kho) phục vụ nhu cầu tham khảo và đặt hàng.
  5. Cung cấp hệ thống theo dõi chi tiết tình trạng đơn hàng cho người tiêu dùng.
  6. Thiết lập cơ chế xác thực và bảo mật trong các giao dịch trực tuyến và xử lý thanh toán điện tử.

Đối tượng nghiên cứu của đồ án bao gồm quy trình nghiệp vụ mua bán trực tuyến máy tính xách tay, cấu trúc tương tác của các sàn thương mại điện tử tiêu biểu, cùng các công nghệ hiện thực hóa hệ thống web: kiến trúc RESTful API, môi trường thực thi Node.js, framework Express.js, thư viện ReactJS, hệ quản trị cơ sở dữ liệu MongoDB và phương thức xác thực JSON Web Token (JWT).

Phạm vi nghiên cứu về mặt thời gian được thực hiện từ ngày 29/08/2023 đến ngày 29/12/2023 (nghiệm thu và hoàn thiện báo cáo vào tháng 01/2024). Phạm vi không gian và ứng dụng tập trung vào hệ thống bán lẻ máy tính xách tay trực tuyến mô hình B2C với tên gọi Website HC.VN, bao gồm hai phân hệ chính: hệ thống giao diện cho người dùng (Client) và hệ thống kiểm soát dành cho người quản trị (Admin).


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

Đề tài áp dụng ngăn xếp công nghệ MERN (MongoDB, Express.js, React, Node.js) trên nền tảng kiến trúc Client - Server nhằm phân tách rõ ràng tầng hiển thị và tầng dịch vụ nghiệp vụ.

Thành phần kiến trúc Công nghệ sử dụng Vai trò kỹ thuật trong hệ thống
Tầng trình diễn (Client) ReactJS, Redux Xây dựng giao diện đơn trang (SPA), quản lý trạng thái luồng dữ liệu một chiều (one-way binding) và xử lý tương tác người dùng.
Tầng ứng dụng (Server) Node.js, Express.js Xây dựng hệ thống dịch vụ RESTful API tiếp nhận và xử lý các yêu cầu HTTP (GET, POST, PUT, DELETE).
Tầng dữ liệu (Database) MongoDB Lưu trữ dữ liệu phi quan hệ dưới định dạng văn bản JSON linh hoạt (Document-oriented NoSQL).
Tầng bảo mật (Security) JSON Web Token (JWT), Hash password Tạo mã định danh phiên làm việc, phân quyền truy cập đầu cuối API và mã hóa bảo vệ mật khẩu người dùng.
Tương tác thời gian thực Socket.io Thiết lập kênh liên lạc hai chiều giữa máy khách và máy chủ phục vụ tính năng trò chuyện trực tuyến (chat) không cần tải lại trang.
Tích hợp giao dịch PayPal SDK, COD Xử lý thanh toán số qua cổng quốc tế và phương thức nhận hàng thanh toán tiền mặt.

Phương pháp nghiên cứu thực tế bao gồm:

  • Phương pháp khảo sát, phân tích so sánh hiện trạng: Khảo sát thực tế 4 hệ thống bán lẻ trực tuyến (Phong Vũ, FPT Shop, BestBuy, Amazon) để đánh giá ưu điểm, nhược điểm trong cơ chế hiển thị, bộ lọc, phương thức đăng nhập và quy trình thanh toán.
  • Phương pháp phân tích và mô hình hóa hướng đối tượng: Sử dụng ngôn ngữ mô hình hóa UML để xây dựng sơ đồ ca sử dụng (Use Case Diagram), sơ đồ tuần tự (Sequence Diagram) và sơ đồ lớp (Class Diagram) đặc tả tương tác dữ liệu.
  • Phương pháp thiết kế cơ sở dữ liệu hướng tài liệu: Xây dựng các tập hợp dữ liệu (collections) phi quan hệ trên MongoDB phù hợp với thuộc tính kỹ thuật đa dạng của sản phẩm laptop.
  • Phương pháp kiểm thử phần mềm: Ứng dụng kiểm thử hộp trắng (White-box testing) để kiểm tra các cấu trúc logic, giải thuật xử lý và kiểm thử hộp đen (Black-box testing) để xác nhận chức năng tại giao diện người dùng.

Thiết kế và triển khai

Hệ thống HC.VN được thiết kế phục vụ 3 nhóm tác nhân chính: Khách vãng lai (người dùng chưa định danh), Khách hàng (người dùng đã đăng ký và xác thực tài khoản) và Quản trị viên (Admin).

[Trình duyệt Client: ReactJS / Redux] 
   HTTP (REST API)    WebSocket (Socket.io)
[Máy chủ Web: Node.js / Express.js / JWT]
   Mongoose Driver
[Cơ sở dữ liệu: MongoDB]

1. Phân quyền và mô hình hóa chức năng

Hệ thống được xác định gồm 26 nhóm yêu cầu chức năng và 5 yêu cầu phi chức năng (tính hiệu quả, tính tiện dụng, màu sắc giao diện, tính bảo mật, và tính sẵn sàng của phân hệ quản trị). Quyền hạn của các tác nhân được quy định như sau:

  • Khách vãng lai: Đăng ký tài khoản, xác thực mã qua thư điện tử, xem danh mục sản phẩm, xem chi tiết thông số kỹ thuật, tìm kiếm từ khóa, lọc nâng cao, thêm/sửa/xóa sản phẩm trong giỏ hàng, so sánh thông số giữa hai sản phẩm và kết xuất bản báo giá định dạng PDF.
  • Khách hàng: Kế thừa toàn bộ quyền của khách vãng lai; bổ sung quyền đăng nhập hệ thống hoặc đăng nhập thông qua Google OAuth, khôi phục mật khẩu, quản trị sổ địa chỉ giao nhận (thêm, sửa, xóa, thiết lập mặc định), gửi đánh giá chấm sao và bình luận sản phẩm, quản lý lịch sử đơn hàng, hủy đơn ở trạng thái chờ xử lý, thanh toán (COD hoặc PayPal), và trò chuyện trực tuyến với Quản trị viên.
  • Quản trị viên: Đăng nhập quản trị, theo dõi bảng điều khiển (Dashboard) thống kê thu chi, số lượng đơn hàng, người dùng, sản phẩm bán chạy và cảnh báo tồn kho theo thời gian (ngày, tháng, năm); quản lý trạng thái tài khoản khách hàng (khóa/mở khóa); cập nhật trạng thái đơn đặt hàng (Accept Order, Cancel Order); quản lý danh mục sản phẩm, danh mục thương hiệu, dữ liệu đánh giá và quản lý quy trình nhập kho.

2. Thiết kế dữ liệu trên MongoDB

Dữ liệu được tổ chức thành 7 tập hợp (Collections) chính:

Tên Collection Dữ liệu quản lý chính
User Thông tin cá nhân, email, mật khẩu băm, quyền hạn, trạng thái hoạt động và danh sách sổ địa chỉ nhận hàng.
Product Tên thiết bị, nhãn hàng, thông số cấu hình phần cứng (CPU, RAM, ổ cứng, màn hình, màu sắc), giá bán, hình ảnh và tồn kho.
Order Mã đơn hàng, định danh khách hàng, danh sách sản phẩm, địa chỉ giao hàng, tổng tiền, phương thức và trạng thái xử lý đơn.
Review Dữ liệu đánh giá số sao (rating) và nhận xét của người dùng sau khi mua sản phẩm thành công.
Comment Bình luận, hỏi đáp của khách hàng tại trang chi tiết sản phẩm, lưu trữ phản hồi phân cấp, lượt thích (like/unlike).
Brand Dữ liệu các nhãn hàng máy tính xách tay được quản lý và phân phối trên hệ thống.
Import Thông tin đơn nhập hàng từ nhà cung cấp, lưu trữ số lượng máy tính nhập kho, giá nhập và thời gian thực hiện.

3. Các tính năng kỹ thuật chuyên biệt

  • So sánh sản phẩm: Cho phép chọn 2 sản phẩm máy tính xách tay bất kỳ để hiển thị bảng so sánh đối sánh thông số; hệ thống có chức năng tự động đánh dấu (highlight) các thuộc tính có cấu hình vượt trội hơn.
  • Kết xuất báo giá tự động: Cung cấp tính năng chuyển đổi thông tin cấu hình và giá cả của sản phẩm thành tệp tin PDF giúp khách hàng có thể lưu trữ hoặc in báo giá ngoại tuyến.
  • Giao tiếp hỗ trợ thời gian thực: Tích hợp thư viện Socket.io xây dựng mô-đun tin nhắn trực tiếp giữa tài khoản khách hàng và quản trị viên, cho phép gửi nhận thông điệp tức thời, xóa tin nhắn và phản hồi biểu cảm.
  • Bảo mật xác thực: Ứng dụng chu trình gửi mã xác thực (OTP/token) kích hoạt qua thư điện tử khi người dùng đăng ký hoặc quên mật khẩu; mọi truy cập vào các API thay đổi trạng thái đều phải mang theo chuỗi JWT hợp lệ.

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

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

Nội dung chương trình bày tổng quan về bộ công nghệ MERN Stack, phân tích nguyên lý hoạt động của kiến trúc Client - Server trong môi trường web hiện đại. Tác giả phân tích cơ chế đồng bộ luồng dữ liệu một chiều (one-way binding) và cách tổ chức luồng quản lý trạng thái tập trung thông qua Redux trong ReactJS. Phần phía máy chủ trình bày nguyên lý định tuyến và xử lý trung gian (middleware) của Express.js trên nền Node.js. Về dữ liệu, chương làm rõ cấu trúc lưu trữ phi cấu trúc của MongoDB. Các giải pháp kỹ thuật ngoại vi như cơ chế xác thực chuỗi đại diện (token-based authentication) qua JWT, quy trình tích hợp cổng thanh toán PayPal, VNPAY và phương thức giao tiếp hai chiều thời gian thực với Socket.io cũng được trình bày về mặt nguyên lý.

Chương 2. Khảo sát hiện trạng và xác định yêu cầu

Chương này ghi nhận kết quả khảo sát thực tế trên 4 website thương mại điện tử: Phong Vũ, FPT Shop, BestBuy và Amazon:

Website khảo sát Ưu điểm ghi nhận Hạn chế ghi nhận
Phong Vũ Bố cục rõ ràng, bộ lọc tìm kiếm đầy đủ, hỗ trợ giao diện tương thích (responsive), nhiều phương thức thanh toán. Thiếu chức năng đánh giá và nhận xét sản phẩm; thiếu kênh hỏi đáp trực tiếp với quản trị viên; xuất hiện một số lỗi khi lọc.
FPT Shop Giao diện trực quan, thẻ sản phẩm thể hiện rõ thông số và khuyến mãi, hỗ trợ so sánh sản phẩm. Hạn chế về phương thức đăng nhập (chỉ dùng số điện thoại).
BestBuy Thẻ sản phẩm chi tiết kèm số lượng đánh giá, quy trình mua hàng đơn giản, hỗ trợ đa dạng phương thức đăng nhập. Tốc độ tải trang chậm, hạn chế ngôn ngữ và phương thức thanh toán.
Amazon Tốc độ tải trang nhanh, bộ lọc sản phẩm đa dạng, hỗ trợ đa ngôn ngữ, hiển thị đánh giá rõ ràng. Phương thức đăng nhập chưa đa dạng.

Từ kết quả khảo sát, nhóm tác giả xây dựng bảng 26 yêu cầu chức năng (được phân loại theo lưu trữ, kết xuất và tính toán) cùng 5 yêu cầu phi chức năng làm cơ sở thiết kế.

Chương 3. Thiết kế phần mềm

Đây là chương trọng tâm của báo cáo với khối lượng thiết kế kỹ thuật lớn:

  • Mô hình hóa ca sử dụng: Thiết lập 2 sơ đồ Use Case tổng quan và 2 sơ đồ Use Case chi tiết cho cả phân hệ người dùng và phân hệ quản trị viên. Xây dựng 45 bảng đặc tả chi tiết cho từng ca sử dụng (từ Bảng 5 đến Bảng 49 trong tài liệu).
  • Mô hình hóa tương tác: Xây dựng 48 sơ đồ tuần tự (Sequence Diagram từ Hình 16 đến Hình 63) mô tả tuần tự các thông điệp trao đổi giữa Actor, View, Controller, API và Database cho tất cả các thao tác (đăng nhập Google, xác thực tài khoản, lọc nâng cao, thanh toán, so sánh sản phẩm, chat, quản lý đơn nhập hàng...).
  • Thiết kế dữ liệu: Xây dựng sơ đồ lớp (Class Diagram) và chi tiết hóa cấu trúc 7 Collection trên MongoDB (từ Bảng 50 đến Bảng 56).
  • Thiết kế giao diện: Đặc tả chi tiết hơn 40 màn hình giao diện kèm bảng mô tả các trường thông tin (từ Bảng 57 đến Bảng 98), bao gồm các giao diện chức năng phía Client (trang chủ, giỏ hàng, đặt hàng, sổ địa chỉ, trang so sánh thông số, phòng chat) và phía Admin (bảng điều khiển Dashboard, quản lý đơn hàng, kho hàng, nhãn hàng, người dùng, đánh giá).

Chương 4. Cài đặt và kiểm thử hệ thống

Chương 4 xác định mục đích, phạm vi và quy trình kiểm thử phần mềm được áp dụng trong quá trình phát triển website HC.VN:

  • Kiểm thử hộp trắng: Rà soát cấu trúc mã nguồn API, luồng xử lý dữ liệu và kiểm tra các câu lệnh truy vấn tới cơ sở dữ liệu MongoDB.
  • Kiểm thử hộp đen: Thiết lập các ca kiểm thử (test cases) trên giao diện thực tế nhằm xác nhận tính chính xác của chức năng đăng nhập, thêm hàng vào giỏ, lọc sản phẩm, tính toán giá trị đơn hàng, cập nhật sổ địa chỉ và quy trình phê duyệt đơn của quản trị viên.
  • Kết quả kiểm thử: Toàn bộ các API chính và quy trình người dùng cơ bản đều vượt qua kiểm tra, hệ thống ghi nhận tính ổn định trong việc lưu trữ và trích xuất dữ liệu, các giao dịch kiểm thử qua cổng PayPal thử nghiệm (sandbox) phản hồi chính xác.

Chương 5. Kết luận

Chương cuối cùng tổng kết các kết quả đạt được về mặt ứng dụng phần mềm, chỉ rõ các hạn chế kỹ thuật phát sinh trong quá trình xây dựng và vạch ra lộ trình phát triển tiếp theo cho hệ thống bán laptop HC.VN.


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

Về kết quả kỹ thuật, đồ án hoàn thành việc xây dựng website bán máy tính xách tay HC.VN với đầy đủ các phân hệ chức năng theo kế hoạch đề ra:

Thành viên thực hiện Phân công trách nhiệm chính Đánh giá kết quả
Phạm Đức Huấn (MSSV: 19110211) Thiết kế giao diện Client; xử lý Front-End; lập tài liệu báo cáo phần Front-End và giao diện; tham gia thiết kế cơ sở dữ liệu và kiểm thử hệ thống. Hoàn thành tốt
Nguyễn Văn Hoàng (MSSV: 19110209) Thiết kế cấu trúc cơ sở dữ liệu; xây dựng toàn bộ hệ thống API phía Back-End; thiết kế giao diện Admin; lập tài liệu báo cáo Back-End và các phần kỹ thuật chung. Hoàn thành tốt

Đóng góp cụ thể của công trình so với các hệ thống khảo sát:

  • Giải quyết được thiếu sót của website Phong Vũ thông qua việc triển khai hoàn chỉnh mô-đun đánh giá phân cấp (chấm sao, bình luận, phản hồi bình luận, thích/bỏ thích) và tính năng nhắn tin tư vấn trực tiếp với quản trị viên qua Socket.io.
  • Đa dạng hóa phương thức đăng nhập và kiểm soát tài khoản hơn so với FPT Shop (hỗ trợ cả đăng nhập thông thường kèm cơ chế xác thực email và đăng nhập liên kết qua Google).
  • Bổ sung chức năng so sánh trực tiếp cấu hình hai mẫu máy có cơ chế tự động đánh dấu (highlight) thông số tối ưu và chức năng trích xuất bản báo giá laptop định dạng PDF, hỗ trợ việc ra quyết định mua sắm của khách hàng.

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

Khóa luận ghi nhận các hạn chế kỹ thuật do nhóm tác giả tự xác định:

  • Khoảng thời gian thực hiện đề tài tương đối ngắn (khoảng 4 tháng), kinh nghiệm xây dựng dự án phần mềm quy mô thương mại của nhóm sinh viên còn hạn chế dẫn đến việc còn tồn tại một số lỗi nhỏ trong quá trình vận hành.
  • Khả năng tích hợp thanh toán số mới dừng lại ở cổng PayPal và phương thức COD; hệ thống chưa hoàn tất kết nối thực tế với cổng thanh toán nội địa VNPAY cũng như các ví điện tử phổ biến tại Việt Nam.
  • Hệ thống chưa hỗ trợ chuyển đổi đa ngôn ngữ cho người dùng quốc tế.

Các hướng phát triển được đề xuất trong văn bản:

  • Tối ưu hóa hiệu năng của bộ máy tìm kiếm và hoàn thiện thuật toán lọc sản phẩm nâng cao.
  • Mở rộng kết nối cổng thanh toán trực tuyến VNPAY và các phương thức thanh toán không tiền mặt nội địa khác.
  • Nghiên cứu phát triển thuật toán gợi ý sản phẩm tự động dựa trên lịch sử xem và hành vi mua sắm của người dùng.
  • Xây dựng ứng dụng di động (Mobile Application) đồng bộ dữ liệu với hệ thống máy chủ web hiện tại.

Giá trị tham khảo

Đồ án có giá trị tham khảo thiết thực cho sinh viên ngành Công nghệ thông tin, Kỹ thuật phần mềm và Hệ thống thông tin trong việc thực hiện đồ án chuyên ngành hoặc khóa luận tốt nghiệp về phát triển ứng dụng thương mại điện tử với MERN Stack.

Các nội dung có giá trị tham khảo cao nhất trong tài liệu gồm:

  • Tài liệu phân tích yêu cầu với 45 bảng đặc tả Use Case chi tiết và 48 sơ đồ tuần tự (Sequence Diagram), cung cấp mẫu thiết kế hoàn chỉnh cho các chức năng nghiệp vụ thương mại điện tử.
  • Cấu trúc thiết kế 7 Collections trên cơ sở dữ liệu MongoDB phục vụ lưu trữ sản phẩm công nghệ có thông số kỹ thuật phức tạp cùng các chu trình nhập hàng và phản hồi của người dùng.
  • Mô hình triển khai kênh liên lạc trực tuyến thời gian thực giữa người dùng và quản trị viên sử dụng Socket.io trong kiến trúc ứng dụng web hướng dịch vụ.

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

1. Website HC.VN hỗ trợ những phương thức thanh toán nào cho khách hàng?
Theo nội dung thiết kế và kết quả triển khai, hệ thống hỗ trợ 2 hình thức thanh toán chính: thanh toán khi nhận hàng (COD) và thanh toán trực tuyến qua cổng PayPal. Phương thức thanh toán VNPAY được tác giả khảo sát và định hướng tích hợp trong các giai đoạn phát triển tiếp theo.

2. Cơ chế phân quyền và bảo mật tài khoản người dùng trên hệ thống được thực hiện như thế nào?
Hệ thống sử dụng giải pháp băm mật khẩu (hash password) để bảo vệ dữ liệu đăng nhập và ứng dụng chuẩn JSON Web Token (JWT). Toàn bộ các luồng dữ liệu vào và ra qua API đều được máy chủ kiểm soát và phân quyền thông qua việc xác thực chuỗi Token gửi kèm trong tiêu đề yêu cầu. Ngoài ra, tài khoản đăng ký mới bắt buộc phải kích hoạt qua mã gửi về email.

3. Cơ sở dữ liệu của hệ thống được tổ chức thành những Collection nào trong MongoDB?
Cơ sở dữ liệu NoSQL của đề tài gồm 7 Collection: User (thông tin tài khoản và sổ địa chỉ), Product (dữ liệu sản phẩm và cấu hình), Order (đơn đặt hàng), Review (đánh giá sao và nhận xét), Comment (bình luận hỏi đáp), Brand (danh mục thương hiệu) và Import (dữ liệu đơn nhập hàng từ nhà cung cấp).

4. Điểm đặc trưng trong tính năng so sánh sản phẩm của đề tài là gì?
Chức năng cho phép người dùng chọn hai sản phẩm máy tính xách tay bất kỳ để đặt cạnh nhau so sánh chi tiết các thông số kỹ thuật (vi xử lý, bộ nhớ RAM, dung lượng lưu trữ, màn hình...), đồng thời hệ thống tự động làm nổi bật (highlight) các thuộc tính có cấu hình tối ưu hơn để người dùng thuận tiện đánh giá.

5. Khách vãng lai chưa có tài khoản có thể sử dụng những chức năng nào trên website?
Khách vãng lai có quyền xem danh sách và chi tiết sản phẩm, tìm kiếm từ khóa, lọc nâng cao theo cấu hình, so sánh thông số giữa hai sản phẩm, thêm/sửa/xóa sản phẩm trong giỏ hàng, kết xuất bản báo giá định dạng PDF, và thực hiện đăng ký tài khoản mới.


Kết luận

Đồ án tốt nghiệp "Phân tích, thiết kế và xây dựng website bán laptop" của sinh viên Nguyễn Văn Hoàng và Phạm Đức Huấn đã hoàn thành mục tiêu xây dựng một nền tảng thương mại điện tử chuyên doanh hoàn chỉnh mang tên HC.VN. Công trình thể hiện sự chặt chẽ trong phương pháp tiếp cận công nghệ phần mềm thông qua hệ thống tài liệu phân tích hướng đối tượng UML đầy đủ và thiết kế cơ sở dữ liệu hướng tài liệu rõ ràng. Sản phẩm ứng dụng thành công ngăn xếp MERN Stack, đáp ứng các tiêu chuẩn nghiệp vụ cốt lõi từ quản lý hàng hóa, xử lý đơn đặt hàng đến tương tác đa chiều thời gian thực giữa khách hàng và nhà quản trị.