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

Trong bối cảnh kinh tế số và sự phát triển của mạng Internet, người tiêu dùng ngày càng gia tăng xu hướng tìm kiếm và mua sắm trực tuyến. Ngành hàng nội thất là một lĩnh vực có nhu cầu tiêu dùng lớn nhưng đòi hỏi phương thức trưng bày trực quan, thông tin sản phẩm chi tiết và trải nghiệm tương tác cao. Khóa luận tốt nghiệp chuyên ngành Công nghệ phần mềm với đề tài "Xây dựng website thương mại điện tử về nội thất" (mã số đề tài: SKL013841) do sinh viên Lương Minh Chiến (MSSV: 20110615) và Bùi Bá Lộc (MSSV: 20110671) thực hiện dưới sự hướng dẫn của TS. Lê Vĩnh Thịnh tại Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh (tháng 7/2024).

Đề tài xuất phát từ các lý do thực tiễn được tác giả nêu rõ:

  • Đáp ứng xu hướng kinh doanh hiện đại thông qua việc mở rộng kênh bán hàng trực tuyến cho doanh nghiệp nội thất.
  • Mở rộng thị trường từ phạm vi địa phương sang quy mô toàn quốc hoặc quốc tế, gia tăng cơ hội kinh doanh.
  • Xây dựng, củng cố hình ảnh thương hiệu thông qua việc cung cấp thông tin sản phẩm, chứng nhận chất lượng và phản hồi từ khách hàng.
  • Nâng cao tính tương tác và trải nghiệm người dùng bằng các công cụ tìm kiếm, đặt hàng và công nghệ trực quan hóa.
  • Ứng dụng các công nghệ mới nhằm đáp ứng yêu cầu quản lý và vận hành thương mại điện tử.

Theo đề cương luận văn tốt nghiệp, nhóm tác giả xác định 4 nhiệm vụ nghiên cứu chính gồm:

  1. Tìm hiểu và tạo ra một website có giao diện thân thiện với người dùng, hiệu suất cao, ổn định và lâu dài.
  2. Cung cấp đầy đủ các thông tin về sản phẩm và dịch vụ, tạo điều kiện cho khách hàng mua hàng trực tuyến.
  3. Xây dựng giao diện thân thiện với người dùng và dễ quản lý dưới góc nhìn quản trị viên (Admin).
  4. Đánh giá hiệu suất và hiệu quả của mô hình trong bối cảnh thực tế, bao gồm độ chính xác, hiệu quả và khả năng mở rộng.

Đối tượng nghiên cứu của khóa luận là quy trình xây dựng hệ thống website thương mại điện tử chuyên biệt cho ngành nội thất. Phạm vi nghiên cứu về mặt thời gian được thực hiện trong 16 tuần (từ ngày 20/03/2024 đến ngày 10/07/2024). Phạm vi không gian và kỹ thuật tập trung vào việc thiết kế cấu trúc dữ liệu, xây dựng giao diện người dùng, triển khai hệ thống quản trị và tích hợp các tiện ích bổ trợ trên nền tảng web.

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

Khóa luận xây dựng hệ thống dựa trên nền tảng ngăn xếp công nghệ MERN stack (MongoDB, ExpressJS, ReactJS, NodeJS) và các giải pháp mở rộng:

  • NodeJS: Môi trường thực thi JavaScript phía máy chủ xây dựng trên V8 JavaScript Engine, sử dụng cơ chế xử lý Non-Blocking I/O, Event Loop, Event Queue và Thread Pool (viết bằng C++) để xử lý các yêu cầu bất đồng bộ.
  • ExpressJS: Framework web tối giản chạy trên nền tảng NodeJS, quản lý định tuyến (routing) và tích hợp các gói trung gian (middleware) như body-parser, cors, timeout.
  • ReactJS: Thư viện JavaScript mã nguồn mở xây dựng giao diện người dùng dựa trên thành phần (component-based), sử dụng Virtual DOM để tối ưu hóa hiệu năng render và luồng dữ liệu một chiều.
  • MongoDB: Hệ quản trị cơ sở dữ liệu phi quan hệ (NoSQL) lưu trữ dữ liệu dưới dạng tài liệu BSON linh hoạt, kết nối với backend thông qua thư viện Mongoose.
  • Công nghệ phụ trợ: Mô hình ngôn ngữ GPT-4 của OpenAI phục vụ xây dựng Chatbot tư vấn tự động; nền tảng Matterport ứng dụng công nghệ quét 3D (3D Scanning) tạo chuyến tham quan ảo (Virtual Tour/360 độ); cổng thanh toán trực tuyến VNPay.

Phương pháp nghiên cứu được triển khai theo 3 hướng:

  • Phương pháp lý thuyết thực tiễn: Khảo sát các tính năng, giao diện của hai website thương mại điện tử nội thất có sẵn là "2Modern" và "Zara Home"; nghiên cứu tài liệu kỹ thuật về các thành phần trong MERN stack, Matterport và GPT-4.
  • Phương pháp tham khảo chuyên gia: Tiếp nhận hướng dẫn học thuật từ giảng viên hướng dẫn TS. Lê Vĩnh Thịnh và ý kiến chuyên môn của giảng viên phản biện TS. Huỳnh Xuân Phụng.
  • Phương pháp phát triển mô hình phần mềm: Thực hiện tuần tự các pha công nghệ phần mềm từ khảo sát, phân tích yêu cầu, thiết kế kiến trúc/CSDL, lập trình API, thiết kế giao diện đến kiểm thử và triển khai.

Nguồn dữ liệu của đề tài bao gồm dữ liệu khảo sát từ các nền tảng thương mại điện tử hiện hành, dữ liệu mẫu về các danh mục nội thất, phòng chức năng, sản phẩm, đơn hàng và các kịch bản kiểm thử hộp đen trên môi trường cục bộ và máy chủ thực nghiệm.

Thiết kế và triển khai

Hệ thống được thiết kế theo mô hình phân tầng hướng dịch vụ, kết nối giữa Single-page Application (ReactJS) ở phía client với RESTful API do ExpressJS/NodeJS cung cấp ở phía server.

Cơ sở dữ liệu hệ thống

Cơ sở dữ liệu MongoDB được thiết kế gồm 7 collection dữ liệu chính tương ứng với các thực thể vận hành:

Tên tập dữ liệu (Collection) Mô tả chức năng lưu trữ
User Lưu trữ thông tin tài khoản, thông tin cá nhân và phân quyền người dùng (Admin, Staff, Customer).
order Lưu trữ thông tin đơn đặt hàng, trạng thái xử lý, phương thức thanh toán và lịch sử mua sắm.
category Lưu trữ danh mục phân loại sản phẩm nội thất.
room Lưu trữ danh mục không gian bài trí (phòng khách, phòng ngủ, phòng bếp...).
product Lưu trữ thuộc tính chi tiết của sản phẩm (tên, giá, mô tả, hình ảnh, trạng thái kinh doanh).
cart Lưu trữ trạng thái giỏ hàng và danh sách sản phẩm được chọn của khách hàng.
address Lưu trữ sổ địa chỉ nhận hàng của người dùng.

Các thành phần tích hợp mở rộng

  • Giao diện cửa hàng 360 độ (Matterport 3D Tour): Tích hợp không gian số hóa mô hình 3D thực tế ảo, cho phép người dùng quan sát không gian bài trí và kích thước vật thể trực quan từ xa trước khi đặt mua.
  • Chatbot GPT-4: Ứng dụng API mô hình ngôn ngữ lớn để trả lời các câu hỏi tư vấn, hỗ trợ tiếp nhận thắc mắc của khách hàng tự động.
  • Cổng thanh toán điện tử VNPay: Xử lý các giao dịch thanh toán không dùng tiền mặt trong quá trình xác nhận đơn hàng.

Kiểm thử hệ thống

Nhóm nghiên cứu áp dụng phương pháp kiểm thử chức năng (Black-box testing) trên 14 ca kiểm thử nhằm xác minh tính đúng đắn của logic xử lý hệ thống: đăng ký, đăng nhập, thêm sản phẩm, vô hiệu hóa sản phẩm, thêm danh mục sản phẩm, cập nhật loại sản phẩm, xóa danh mục sản phẩm, tìm kiếm sản phẩm, cập nhật thông tin đơn hàng, thêm địa chỉ người dùng, cập nhật giỏ hàng, cập nhật thông tin cá nhân, đặt hàng và đổi mật khẩu.

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

Chương 1: Mở đầu

Chương 1 thiết lập khung nghiên cứu của đồ án, làm rõ lý do chọn đề tài xuất phát từ yêu cầu số hóa chuỗi cung ứng ngành nội thất. Tác giả xác định 4 nhiệm vụ của luận văn, giới thiệu tổng quan các công nghệ sử dụng và nêu 3 phương pháp tiếp cận nghiên cứu (lý thuyết thực tiễn, tham khảo chuyên gia, phát triển mô hình). Lộ trình thực hiện được lên kế hoạch cụ thể trong 16 tuần, từ công đoạn khảo sát ban đầu đến khi hoàn tất báo cáo kỹ thuật.

Chương 2: Kiến thức cơ bản

Chương 2 trình bày chi tiết về các nền tảng công nghệ:

  • Phân tích cơ chế hoạt động của MERN stack, ưu thế đồng nhất một ngôn ngữ JavaScript trên toàn bộ hệ thống.
  • Cấu trúc kiến trúc của NodeJS với cơ chế Non-Blocking I/O, Event Loop và Thread Pool đa luồng trong C++.
  • Đặc điểm framework ExpressJS cùng hệ thống middleware hỗ trợ xử lý giao thức HTTP.
  • Nguyên lý Virtual DOM và cấu trúc component trong ReactJS.
  • Đặc tính lưu trữ tài liệu BSON, khả năng co giãn ngang của MongoDB cùng hạn chế không hỗ trợ cú pháp JOIN quan hệ.
  • Cơ chế tiền huấn luyện (Pre-training) và tinh chỉnh (Fine-tuning) của mô hình GPT-4 dùng cho Chatbot.
  • Quy trình chụp, số hóa đám mây và dựng không gian 3D tương tác của nền tảng Matterport.

Chương 3: Phân tích và mô hình hóa yêu cầu

Chương 3 bắt đầu bằng việc khảo sát hai website thương mại điện tử chuyên về nội thất:

Website khảo sát Ưu điểm ghi nhận Nhược điểm/Hạn chế tồn tại
2Modern Giao diện thu hút, màu sắc tươi sáng, hình ảnh chất lượng cao; quy trình mua sắm linh hoạt. Mật độ chữ quá nhiều gây rối mắt; thanh menu dọc thiếu thông tin sự kiện và phân loại tiêu biểu.
Zara Home Giao diện sạch sẽ, chuyên nghiệp; hiển thị chi tiết giá cả, nội dung và đánh giá sản phẩm. Bộ công cụ tìm kiếm và bộ lọc sản phẩm theo tiêu chí cụ thể chưa tối ưu.

Từ kết quả khảo sát, tác giả tiến hành phân tích chức năng và phân quyền hệ thống cho 3 tác nhân (Actors):

Vai trò người dùng Nhóm chức năng chính được phân quyền
Quản trị viên (Admin) Đăng nhập; Xem báo cáo thống kê doanh thu; Quản lý người dùng (xem và cập nhật quyền); Quản lý đơn hàng (xem chi tiết, đổi trạng thái sang DISPATCHED, hủy đơn); Quản lý sản phẩm (thêm, sửa, vô hiệu hóa, hủy vô hiệu hóa); Quản lý danh mục (thêm, sửa, vô hiệu hóa); Quản lý đánh giá (ẩn/hiện đánh giá); Quản lý mã giảm giá.
Nhân viên (Staff) Đăng nhập; Quản lý người dùng (xem thông tin cơ bản); Quản lý đơn hàng (xem chi tiết, cập nhật trạng thái từ PROCESSING sang DISPATCHED, hủy đơn hàng).
Khách hàng (Customer) Đăng ký, đăng nhập, quên mật khẩu, đổi mật khẩu; Quản lý thông tin cá nhân; Quản lý địa chỉ giao hàng; Quản lý giỏ hàng; Tìm kiếm sản phẩm; Đặt hàng và thanh toán trực tuyến; Theo dõi trạng thái đơn hàng; Quản lý đánh giá; Quản lý danh sách sản phẩm yêu thích (Wishlist); Trải nghiệm cửa hàng 360 độ và Chatbot.

Chương này cũng thiết lập 10 đặc tả ca sử dụng chi tiết (từ UC-01 đến UC-10), kèm theo hệ thống sơ đồ ca sử dụng (Use case diagram), sơ đồ tuần tự (Sequence diagram), sơ đồ lớp (Class diagram) và sơ đồ hoạt động (Activity diagram).

Chương 4: Thiết kế hệ thống

Chương 4 tập trung vào việc hiện thực hóa mô hình dữ liệu và thiết kế giao diện:

  • Mô tả chi tiết lược đồ quan hệ và bảng thuộc tính của 7 collection dữ liệu trong MongoDB: User, order, category, room, product, cart, address.
  • Thiết kế 24 màn hình giao diện hệ thống cho cả hai phân hệ người dùng và quản trị, bao gồm: Đăng nhập, Đăng ký, Trang chủ, Chi tiết sản phẩm, Giỏ hàng, Tìm kiếm sản phẩm, Quản lý thông tin người dùng, Chi tiết đơn hàng, Cập nhật địa chỉ, Lịch sử đơn hàng, Danh sách yêu thích, Thêm mới địa chỉ, Thanh toán đơn hàng, Dashboard Admin, Quản lý sản phẩm, Thêm sản phẩm, Quản lý đơn hàng, Cập nhật đơn hàng, Quản lý người dùng, Cập nhật quyền người dùng, Quản lý danh mục sản phẩm, Quản lý mã giảm giá, Quản lý đánh giá và Giao diện cửa hàng 360 độ.

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

Chương 5 trình bày kết quả thực hiện kiểm thử chức năng cho 14 kịch bản kiểm thử độc lập:

  1. Kiểm thử đăng ký tài khoản mới.
  2. Kiểm thử đăng nhập hệ thống.
  3. Kiểm thử thêm mới sản phẩm.
  4. Kiểm thử vô hiệu hóa sản phẩm.
  5. Kiểm thử thêm danh mục sản phẩm.
  6. Kiểm thử cập nhật loại sản phẩm.
  7. Kiểm thử xóa danh mục sản phẩm.
  8. Kiểm thử tìm kiếm sản phẩm theo từ khóa/tiêu chí.
  9. Kiểm thử cập nhật thông tin đơn hàng.
  10. Kiểm thử thêm địa chỉ người dùng.
  11. Kiểm thử cập nhật giỏ hàng.
  12. Kiểm thử cập nhật thông tin cá nhân.
  13. Kiểm thử chức năng đặt hàng.
  14. Kiểm thử chức năng đổi mật khẩu.

Các ca kiểm thử được mô tả với các trường hợp đầu vào hợp lệ, không hợp lệ, luồng ngoại lệ và xác nhận kết quả phản hồi của hệ thống.

Chương 6: Kết luận và hướng phát triển

Chương 6 tổng kết các kết quả đạt được đối chiếu với 4 nhiệm vụ ban đầu đã đặt ra, đồng thời chỉ rõ các điểm còn hạn chế của hệ thống và đề xuất các giải pháp nâng cấp trong giai đoạn tiếp theo.

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

Kết quả chính

  • Xây dựng hoàn chỉnh hệ thống website thương mại điện tử chuyên ngành nội thất đáp ứng phân quyền cho 3 đối tượng (Admin, Staff, Customer).
  • Hoàn thành thiết kế cấu trúc dữ liệu với 7 collection và thiết kế 24 màn hình giao diện trực quan cho cả máy khách lẫn trang quản trị.
  • Thực hiện và ghi nhận kết quả thành công cho 14 ca kiểm thử chức năng cơ bản và nâng cao của hệ thống.
  • Tích hợp thành công 3 giải pháp công nghệ bên ngoài: tham quan không gian 3D tương tác Matterport, Chatbot hỗ trợ người dùng ứng dụng GPT-4 và cổng thanh toán trực tuyến VNPay.
  • Khóa luận được Hội đồng chuyên môn đánh giá kết quả loại Giỏi theo phiếu nhận xét của giảng viên hướng dẫn TS. Lê Vĩnh Thịnh.

Giải pháp và đóng góp kỹ thuật

  • Giải quyết bài toán hạn chế về mặt trực quan trong mua sắm nội thất trực tuyến bằng cách ứng dụng công nghệ quét 3D thực tế ảo của Matterport, cho phép khách hàng tham quan không gian mẫu từ xa.
  • Xây dựng mô hình phân quyền rõ ràng giữa nhân viên vận hành (Staff) và người quản trị hệ thống (Admin), giúp tối ưu hóa quy trình duyệt đơn và kiểm soát thông tin khách hàng.
  • Kết hợp mô hình ngôn ngữ lớn (GPT-4) vào nghiệp vụ thương mại điện tử nhằm tự động hóa quy trình phản hồi và hỗ trợ tư vấn khách hàng.

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

Hạn chế được ghi nhận

  • Giảng viên hướng dẫn ghi nhận khuyết điểm kỹ thuật: Hệ thống cần cải thiện khả năng xử lý dữ liệu để đảm bảo tốc độ truy xuất và xử lý đơn hàng nhanh chóng hơn.
  • Về công nghệ Chatbot GPT-4: Độ chính xác của thông tin đôi lúc chưa hoàn toàn tuyệt đối và đòi hỏi tài nguyên tính toán cũng như chi phí triển khai duy trì.
  • Về cơ sở dữ liệu MongoDB: Bản chất NoSQL không có các ràng buộc dữ liệu chặt chẽ như mô hình quan hệ RDBMS và không hỗ trợ thao tác JOIN nguyên bản, dẫn đến nguy cơ xung đột hoặc chậm trễ khi xử lý các truy vấn phức tạp trên quy mô lớn.
  • Nền tảng Matterport yêu cầu quá trình chụp và quét không gian vật lý tỉ mỉ, chịu ảnh hưởng từ điều kiện thực tế của môi trường quét.

Hướng nghiên cứu và phát triển tiếp

  • Tối ưu hóa hiệu năng truy xuất cơ sở dữ liệu và tái cấu trúc thuật toán xử lý đơn hàng để rút ngắn thời gian phản hồi.
  • Tinh chỉnh mô hình Chatbot với bộ dữ liệu chuyên sâu về ngành nội thất nhằm nâng cao độ chuẩn xác trong câu trả lời.
  • Nâng cấp các giải pháp gợi ý sản phẩm cá nhân hóa dựa trên hành vi duyệt web và lịch sử đơn hàng của khách hàng.

Giá trị tham khảo

Báo cáo khóa luận là tài liệu tham khảo hữu ích cho:

  • Sinh viên ngành Công nghệ thông tin, Công nghệ phần mềm, Hệ thống thông tin: Tham khảo quy trình phân tích, mô hình hóa hệ thống và thiết kế phần mềm hướng web theo chuẩn học thuật (đặc tả usecase, sequence diagram, class diagram, activity diagram).
  • Lập trình viên Full-stack: Học hỏi phương thức xây dựng và tích hợp ngăn xếp MERN stack kết hợp các dịch vụ bên thứ ba (VNPay, Matterport 3D Tour, OpenAI API).
  • Người làm đề tài về thương mại điện tử: Tham khảo cấu trúc 7 collection NoSQL chuyên ngành bán lẻ nội thất và danh mục 24 màn hình chức năng phân quyền giữa Admin, Staff và Customer.

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

1. Khóa luận sử dụng ngăn xếp công nghệ cốt lõi nào để phát triển hệ thống?
Khóa luận sử dụng MERN stack làm ngăn xếp công nghệ chính, bao gồm: MongoDB (cơ sở dữ liệu NoSQL lưu trữ BSON), ExpressJS (framework backend định tuyến và middleware), ReactJS (thư viện frontend xây dựng giao diện component) và NodeJS (môi trường runtime thực thi JavaScript phía server sử dụng Non-Blocking I/O).

2. Điểm khác biệt về phân quyền giữa vai trò Admin và Staff trong hệ thống là gì?
Theo bảng phân tích chức năng và ca sử dụng: Admin có toàn quyền quản trị gồm xem báo cáo thống kê doanh thu, cập nhật quyền người dùng, quản lý sản phẩm (thêm, sửa, vô hiệu hóa), quản lý danh mục, quản lý mã giảm giá và duyệt ẩn/hiện đánh giá. Trong khi đó, Staff chỉ được phân quyền hạn chế: xem thông tin cơ bản của người dùng và cập nhật trạng thái đơn hàng (từ PROCESSING sang DISPATCHED hoặc hủy đơn).

3. Nhóm tác giả đã tích hợp những giải pháp công nghệ nâng cao nào ngoài các tính năng thương mại điện tử thông thường?
Hệ thống tích hợp 3 giải pháp nâng cao gồm: giao diện cửa hàng 360 độ sử dụng nền tảng quét 3D Matterport để tạo chuyến tham quan ảo; Chatbot tự động tư vấn khách hàng ứng dụng mô hình ngôn ngữ lớn GPT-4 của OpenAI; và cổng thanh toán điện tử VNPay để xử lý đơn hàng trực tuyến.

4. Giảng viên hướng dẫn đưa ra nhận xét và đánh giá xếp loại như thế nào về khóa luận?
Giảng viên hướng dẫn TS. Lê Vĩnh Thịnh đánh giá khóa luận đạt loại Giỏi. Về ưu điểm, tác giả đã triển khai đầy đủ và chi tiết các chức năng từ cơ bản đến nâng cao với tinh thần làm việc nghiêm túc, chủ động tìm hiểu công nghệ mới. Về khuyết điểm, hệ thống cần cải thiện khả năng xử lý dữ liệu để đảm bảo tốc độ truy xuất và xử lý đơn hàng nhanh hơn.

5. Cơ sở dữ liệu của hệ thống được tổ chức thành những tập dữ liệu (collection) nào?
Cơ sở dữ liệu MongoDB trong đồ án được cấu trúc thành 7 collection chính gồm: User (người dùng), order (đơn hàng), category (loại sản phẩm), room (không gian/phòng), product (sản phẩm), cart (giỏ hàng) và address (địa chỉ giao hàng).

Kết luận

Khóa luận tốt nghiệp của sinh viên Lương Minh Chiến và Bùi Bá Lộc đã hoàn thành mục tiêu xây dựng một website thương mại điện tử chuyên ngành nội thất trên nền tảng MERN stack. Đề tài thể hiện khối lượng công việc đầy đủ thông qua hệ thống phân tích ca sử dụng chi tiết, thiết kế 7 collection cơ sở dữ liệu, 24 màn hình giao diện và tích hợp các tiện ích hiện đại như Matterport 3D, Chatbot GPT-4 cùng thanh toán VNPay. Mặc dù cần tiếp tục tối ưu hóa hiệu năng xử lý dữ liệu đơn hàng theo góp ý của giảng viên hướng dẫn, đồ án vẫn là một tài liệu kỹ thuật có giá trị tham khảo thiết thực cho các nghiên cứu ứng dụng công nghệ phần mềm trong thương mại trực tuyến.