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

Đề tài "Xây dựng website bán mỹ phẩm và khuyến nghị sản phẩm" (tên tiếng Anh: Cosmetics Website with Product Recommendation System) được thực hiện bởi hai sinh viên Võ Minh Tuấn và Võ Xuân Tú, dưới sự hướng dẫn của ThS. Thái Thụy Hàn Uyển, thuộc ngành Kỹ thuật Phần mềm, Khoa Công nghệ Phần mềm, Trường Đại học Công nghệ Thông tin – Đại học Quốc gia Thành phố Hồ Chí Minh (khóa 2023).

Lý do chọn đề tài và bối cảnh thực tiễn

Theo phân tích của nhóm tác giả, thị trường mỹ phẩm và nhu cầu làm đẹp của người tiêu dùng ngày càng phát triển nhằm cải thiện diện mạo và đáp ứng các mục tiêu cá nhân. Sự bùng nổ của mạng internet và hình thức mua sắm trực tuyến đặt ra yêu cầu cho các cơ sở kinh doanh mỹ phẩm phải chuyển dịch phương thức bán hàng, thiết lập nền tảng website để quảng bá sản phẩm, cung cấp các ưu đãi và mở rộng tệp khách hàng. Đồng thời, website giúp người dùng tiếp cận bài viết, đánh giá sản phẩm để đưa ra quyết định mua sắm phù hợp.

Nhóm nghiên cứu đã trích dẫn kết quả khảo sát thị trường tháng 7 năm 2022 của tổ chức Q&Me trên mẫu nghiên cứu gồm 353 phụ nữ có độ tuổi từ 25 đến 45 tại ba thành phố Đà Nẵng, Hà Nội và Thành phố Hồ Chí Minh:

Tiêu chí khảo sát Tỷ lệ / Dữ liệu thực tế
Thói quen chăm sóc da (> 1 lần/tuần) 95%
Thói quen trang điểm (> 1 lần/tuần) 62%
3 yếu tố hàng đầu quyết định mua sản phẩm Chất lượng, mức độ an toàn, thành phần
Kênh mua sắm mỹ phẩm chủ yếu Cửa hàng tư nhân bán lẻ; Cửa hàng thương hiệu; Sàn thương mại điện tử; Cửa tiệm bách hóa/siêu thị; Chuỗi spa & clinic
Phụ nữ độ tuổi 25 – 32 mua hàng trực tuyến 44%
Phụ nữ độ tuổi 25 – 32 thường xuyên chăm sóc da 93% (kênh chính: cửa hàng thương hiệu, chuỗi spa/chăm sóc da, sàn TMĐT)
Phụ nữ độ tuổi 33 – 39 mua tại cửa hàng tư nhân 50%
Phụ nữ độ tuổi trên 40 49% có sử dụng đồ trang điểm; 78% thường xuyên chăm sóc da

Ngoài ra, tác giả tiến hành khảo sát thực tế hai website bán lẻ mỹ phẩm tại Việt Nam:

  • Hasaki.vn: Có ưu điểm về giao diện trực quan, thông tin sản phẩm chi tiết, hỗ trợ đa dạng phương thức thanh toán trực tuyến (thẻ ATM, ngân hàng, VNPAY-QR, ví điện tử VNPAY) và có tích hợp gợi ý sản phẩm. Tuy nhiên, website còn thiếu tính năng đa ngôn ngữ và chưa tối ưu hoàn chỉnh trên các thiết bị di động.
  • Skin365.vn: Có giao diện thẩm mỹ, tốc độ tải nhanh, thiết kế responsive và chức năng tìm kiếm thông minh. Hạn chế là thiếu tương tác người dùng (chưa có tính năng đánh giá sản phẩm), không hỗ trợ đa ngôn ngữ và chưa có chức năng đăng nhập qua mạng xã hội.

Mục tiêu nghiên cứu

  1. Xây dựng một website bán mỹ phẩm có tích hợp hệ thống khuyến nghị sản phẩm cho khách hàng.
  2. Thiết lập kênh mua sắm trực tuyến hỗ trợ người mua tìm kiếm sản phẩm phù hợp với nhu cầu cá nhân.
  3. Hỗ trợ người quản lý cửa hàng trong việc quản trị dữ liệu sản phẩm, phân loại, thương hiệu và xử lý đơn hàng.

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

  • Đối tượng sử dụng: Người dùng trong độ tuổi từ 25 đến 32 có nhu cầu tìm hiểu hoặc mua sắm mỹ phẩm; người quản lý các cửa hàng mỹ phẩm vừa và nhỏ.
  • Phạm vi môi trường: Website tương thích với các trình duyệt thông dụng (Google Chrome, Cốc Cốc) và hoạt động tương thích trên các kích thước màn hình (desktop, tablet, mobile).
  • Phạm vi thời gian: Đề cương và quá trình thực hiện khóa luận diễn ra từ ngày 06/02/2023 đến ngày 17/06/2023.
  • Phạm vi chức năng: Bao gồm các phân hệ cho khách hàng (xác thực dữ liệu cá nhân, xem và tìm kiếm sản phẩm, quản lý giỏ hàng, gợi ý sản phẩm, theo dõi đơn hàng, quản lý sổ địa chỉ, thanh toán online qua ví MoMo) và phân hệ quản trị viên (quản lý sản phẩm, thương hiệu, danh mục, thẻ sản phẩm, biến thể, xử lý đơn hàng và thống kê).

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

Khung lý thuyết và mô hình hệ thống khuyến nghị

Khóa luận tập trung ứng dụng hai thuật toán nền tảng trong hệ thống lọc thông tin:

  1. Lọc dựa trên nội dung (Content-based filtering):

    • Nguyên lý: Đưa ra đề xuất dựa trên các đặc điểm rời rạc của sản phẩm đã được gắn thẻ (tags).
    • Quy trình:
      • Thiết lập ma trận hồ sơ mặt hàng (item profile matrix), trong đó hàng biểu diễn các mặt hàng, cột biểu diễn các thẻ đặc tính; giá trị trong ô nhận giá trị 1 nếu sản phẩm mang thẻ đó và 0 nếu không có.
      • Tính toán độ tương đồng giữa sản phẩm người dùng đang xem với các sản phẩm khác trong hệ thống bằng công thức Cosine Similarity: $$\text{Cosine}(A, B) = \frac{A \cdot B}{|A| |B|}$$
      • Sắp xếp độ tương tự và trích xuất danh sách $n$ sản phẩm có độ tương quan cao nhất (ví dụ ngưỡng tương quan từ 0.5 trở lên) để hiển thị tại trang chi tiết sản phẩm.
  2. Lọc cộng tác dựa trên mặt hàng (Item-based Collaborative filtering / Item-to-Item):

    • Nguyên lý: Dựa trên giả định người dùng có xu hướng yêu thích các sản phẩm có mẫu tương tác/đánh giá tương đồng với những sản phẩm họ từng đánh giá cao trong quá khứ.
    • Quy trình:
      • Xây dựng ma trận tiện ích (utility matrix): các hàng là người dùng, các cột là mặt hàng, giá trị là điểm đánh giá (rating).
      • Xử lý giá trị còn thiếu (dấu "?"): Gán tạm bằng giá trị trung bình cộng (TBC) của các đánh giá dành cho mặt hàng đó.
      • Chuẩn hóa dữ liệu: Trừ mỗi giá trị đánh giá cho giá trị trung bình cộng của hàng tương ứng để tạo ra ma trận tiện ích chuẩn hóa (normalized utility matrix). Giá trị âm thể hiện không thích, giá trị dương thể hiện thích, giá trị 0 thể hiện trạng thái trung tính hoặc chưa xác định. Dữ liệu được lưu trữ dạng ma trận thưa (sparse matrix) nhằm tối ưu bộ nhớ.
      • Tính ma trận độ tương tự (similarity matrix) giữa các cặp mặt hàng thông qua độ đo Cosine.
      • Dự đoán điểm đánh giá chưa có bằng phương pháp $K$-láng giềng gần nhất ($K$-nearest items): $$\text{rating}(U, I_i) = \frac{\sum_{j} \text{rating}(U, I_j) \cdot s_{i, j}}{\sum_{j} |s_{i, j}|}$$
      • Lựa chọn top $n$ sản phẩm có điểm số dự đoán cao nhất để khuyến nghị cho người dùng tại trang chủ và danh mục gợi ý.

Phương pháp nghiên cứu và phát triển phần mềm

  • Phương pháp thu thập và phân tích: Khảo sát hiện trạng từ báo cáo thị trường thứ cấp; phân tích nghiệp vụ bán lẻ và đối chuẩn tính năng từ các website Hasaki và Skin365.
  • Phương pháp thiết kế hướng mô hình: Phân tích ca sử dụng (Use case), phân loại tác nhân (Actor), thiết kế kiến trúc hệ thống và xây dựng lược đồ cơ sở dữ liệu phi quan hệ (NoSQL).
  • Phương pháp thực nghiệm và kiểm thử: Thiết kế giao diện trên Figma, lập trình ứng dụng theo từng module, kiểm thử chức năng theo kịch bản (Test cases) trên cả hai phân hệ client và admin.

Thiết kế và triển khai

Kiến trúc công nghệ

Hệ thống được thiết kế theo cấu trúc tách biệt giữa giao diện người dùng, dịch vụ nghiệp vụ và dịch vụ khuyến nghị:

Thành phần Công nghệ / Dịch vụ sử dụng Vai trò trong hệ thống
Frontend NextJS, TypeScript, Tailwind CSS, Material UI Xây dựng giao diện responsive cho Client và Dashboard Admin
Backend API NestJS Xử lý logic nghiệp vụ chính, quản lý dữ liệu, phân quyền xác thực
Recommendation Service Python, FastAPI Xử lý ma trận dữ liệu và tính toán thuật toán khuyến nghị
Cơ sở dữ liệu MongoDB Lưu trữ dữ liệu dạng tài liệu (Document-based NoSQL)
Xác thực người dùng NextAuth Đăng nhập tài khoản hệ thống và mạng xã hội (Google, Facebook)
Dịch vụ lưu trữ tệp Cloudinary Lưu trữ và phân phối hình ảnh sản phẩm, thương hiệu
Dịch vụ gửi thư điện tử NodeMailer Gửi mã OTP xác thực và thông báo hệ thống
Thanh toán trực tuyến Cổng thanh toán MoMo Tích hợp xử lý giao dịch điện tử và hoàn tiền
Bản đồ / Địa chỉ API Mapquest Tính toán và hỗ trợ hiển thị vị trí, địa chỉ nhận hàng
Quản lý mã nguồn GitHub, Yarn Quản lý phiên bản mã nguồn và các gói thư viện phụ thuộc

Thiết kế cơ sở dữ liệu MongoDB

Cơ sở dữ liệu của hệ thống được tổ chức thành 16 collections:

  1. Account: Lưu thông tin xác thực bên ngoài (access_token, refresh_token, provider, providerAccountId, userId, userEmail, expire_at).
  2. Address: Lưu sổ địa chỉ của người nhận hàng (name, phone, province, district, ward, specificAddress, default, coordinates).
  3. Admin: Lưu thông tin tài khoản người quản trị (name, email, password, birthday, gender, role).
  4. Brand: Lưu danh mục thương hiệu mỹ phẩm (name, logo).
  5. Category: Lưu cấu trúc danh mục phân cấp (name đa ngôn ngữ qua ITranslate[], parentCategory, icon).
  6. Comment: Lưu đánh giá của khách hàng (content, user, rate, orderItem).
  7. Order: Lưu thông tin đơn hàng (orderItems, date, user, address, status, paymentMethod, shippingFee, transId, refund, orderId).
  8. OrderItem: Lưu chi tiết mặt hàng trong đơn (productItem, price, quantity).
  9. OTPVerification: Quản lý việc gửi và đối soát mã xác thực email (email, opt, expire_at).
  10. Product: Lưu thông tin sản phẩm gốc (name, description song ngữ Anh - Việt, productItems, categories, brand, productId, variations).
  11. ProductItem: Lưu thông tin chi tiết của từng biến thể sản phẩm con (price, thumbnail, productConfigurations, images, quantity, tags, rating, comments, salesQuantity).
  12. Promotion: Quản lý chương trình giảm giá (start, end, discountRate, productItems).
  13. SalesQuantity: Lưu vết số lượng sản phẩm bán ra (sold).
  14. Tag: Quản lý các thẻ đặc tính phục vụ phân loại và hệ thống gợi ý (name, parent, weight).
  15. TagGroup: Phân nhóm các thẻ sản phẩm (name).
  16. User: Lưu thông tin tài khoản của khách hàng.

Phân tích tác nhân và ca sử dụng

Hệ thống xác định 3 tác nhân chính:

  • Người dùng không có tài khoản: Xem danh mục, xem chi tiết sản phẩm, lọc/tìm kiếm, xem thương hiệu.
  • Người dùng có tài khoản: Đăng ký, đăng nhập (thường hoặc qua Google/Facebook), đăng xuất, đổi mật khẩu, quản lý thông tin cá nhân, quản lý sổ địa chỉ, thêm/sửa giỏ hàng, tạo và hủy đơn hàng, theo dõi tình trạng đơn hàng, thanh toán qua MoMo, chat với chatbot tư vấn.
  • Người quản lý (Admin): Quản lý sản phẩm, quản lý sản phẩm con/biến thể, quản lý danh mục, quản lý thương hiệu, quản lý thẻ và nhóm thẻ, xem danh sách và cập nhật trạng thái đơn hàng, thực hiện hoàn tiền đơn hàng trực tuyến bị hủy.

Hệ thống thiết lập 41 ca sử dụng (use case) bao quát toàn bộ nghiệp vụ từ tương tác khách hàng đến quản trị nội bộ.

Kiểm thử chức năng

Quá trình kiểm thử phần mềm được tiến hành qua các bộ kịch bản kiểm thử (Test cases) cụ thể:

  • Phía Client: Kiểm thử đăng nhập, đăng ký, tìm kiếm và lọc sản phẩm, giỏ hàng, đặt hàng, chỉnh sửa thông tin cá nhân, quản lý sổ địa chỉ, tương tác gợi ý sản phẩm.
  • Phía Admin: Kiểm thử quản lý sản phẩm, loại sản phẩm, biến thể, thương hiệu, thẻ sản phẩm, quản lý đơn hàng và thay đổi thông tin tài khoản quản trị.

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

Chương 1. Giới thiệu đề tài, đối tượng và khảo sát hiện trạng

Chương 1 trình bày bối cảnh thực tế về sự phát triển của ngành mỹ phẩm, phân tích hành vi mua sắm dựa trên khảo sát của Q&Me (năm 2022) và xác định tính cấp thiết của việc áp dụng thương mại điện tử. Tác giả tiến hành mổ xẻ chi tiết hai hệ thống website Hasaki và Skin365 nhằm xác định các ưu điểm cần kế thừa (giao diện phân cụm, tìm kiếm tiện ích, giỏ hàng nhanh) và các khuyết điểm cần khắc phục (bổ sung tính năng đa ngôn ngữ Anh - Việt, thiết kế responsive trên thiết bị di động, đăng nhập mạng xã hội và hệ thống đánh giá sản phẩm). Chương này cũng xác định rõ 3 mục tiêu cụ thể, phạm vi môi trường, phạm vi chức năng và kế hoạch phân công công việc chi tiết từ tháng 02/2023 đến tháng 06/2023 giữa hai sinh viên thực hiện.

Chương 2. Hệ thống gợi ý Recommendation System

Chương 2 tập trung trình bày cơ sở lý thuyết và các bước tính toán toán học của hai kỹ thuật khuyến nghị:

  • Trình bày phương pháp Content-based filtering bằng cách mô tả thuật toán xây dựng ma trận đặc trưng item profile, chuẩn hóa vector và áp dụng công thức Cosine Similarity để trích xuất danh sách sản phẩm tương đồng dựa trên thẻ (tag).
  • Trình bày chi tiết phương pháp Item-to-Item Collaborative filtering: giải quyết bài toán ma trận tiện ích (utility matrix) có nhiều giá trị thiếu bằng phương pháp điền giá trị trung bình cộng hàng, chuẩn hóa ma trận bằng phép trừ giá trị trung bình để đưa về ma trận thưa (sparse matrix), tính độ tương tự Cosine giữa các cột mặt hàng và áp dụng công thức dự đoán điểm số đánh giá với thuật toán $K$-láng giềng gần nhất ($K=2$ trong ví dụ thực tế được minh họa).

Chương 3. Xây dựng hệ thống

Chương 3 là phần trọng tâm về kỹ thuật, trình bày các kết quả xây dựng hệ thống:

  • Phân tích yêu cầu chức năng cho cả hai phân hệ Client và Admin; xác định yêu cầu phi chức năng về hỗ trợ đa ngôn ngữ (tiếng Việt, tiếng Anh), tính bảo mật và phân quyền tài khoản.
  • Mô tả chi tiết sơ đồ 41 Use case tương ứng với 3 tác nhân trong hệ thống.
  • Chi tiết hóa lược đồ cơ sở dữ liệu MongoDB thông qua cấu trúc dữ liệu của 16 collections.
  • Thiết kế kiến trúc tổng thể kết nối giữa NextJS (Frontend), NestJS (Core Backend), FastAPI (Recommendation Service) và cơ sở dữ liệu MongoDB.
  • Trình bày hệ thống giao diện người dùng đa nền tảng (desktop và mobile) gồm các màn hình chính: đăng nhập, đăng ký, trang chủ, phân loại sản phẩm, tìm kiếm, chi tiết sản phẩm, giỏ hàng, thanh toán, sổ địa chỉ, trang quản trị sản phẩm, biến thể, thương hiệu, thẻ sản phẩm và đơn hàng.
  • Báo cáo kết quả kiểm thử chức năng và đánh giá tổng thể hệ thống.

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

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

  • Hoàn thiện hệ thống website thương mại điện tử: Xây dựng thành công ứng dụng web hoạt động trên trình duyệt với giao diện tương thích responsive trên máy tính để bàn và thiết bị di động.
  • Tích hợp hai mô hình khuyến nghị: Triển khai dịch vụ FastAPI độc lập chạy mô hình Content-based filtering (gợi ý sản phẩm tương tự khi xem chi tiết) và Item-based Collaborative filtering (gợi ý sản phẩm dựa trên hành vi đánh giá của người dùng).
  • Hoàn thiện các tiện ích tích hợp:
    • Tích hợp cổng thanh toán trực tuyến MoMo và quy trình hoàn tiền cho đơn hàng online bị hủy.
    • Hỗ trợ đa ngôn ngữ hiển thị (tiếng Việt và tiếng Anh).
    • Tích hợp đăng nhập nhanh qua Google và Facebook sử dụng NextAuth.
    • Tích hợp xác thực email người dùng thông qua mã OTP với NodeMailer.
    • Hỗ trợ chatbot tương tác tư vấn sản phẩm cho khách hàng.
    • Xây dựng hệ thống quản trị admin dashboard hoàn chỉnh cho phép quản lý vòng đời sản phẩm đa biến thể, quản lý danh mục phân cấp và theo dõi trạng thái đơn hàng.

Giải pháp và đóng góp của đề tài

  • Khắc phục các hạn chế còn tồn tại ở các trang web khảo sát thực tế: bổ sung giao diện responsive tối ưu cho thiết bị di động, bổ sung hỗ trợ song ngữ (tiếng Việt - tiếng Anh), và tích hợp hệ thống đánh giá/bình luận sản phẩm đi kèm đăng nhập mạng xã hội.
  • Đề xuất kiến trúc tách rời dịch vụ khuyến nghị viết bằng Python (FastAPI) khỏi backend nghiệp vụ (NestJS), giúp việc xử lý các phép toán ma trận của hệ thống gợi ý không ảnh hưởng đến hiệu năng phục vụ giao dịch mua bán thông thường.
  • Áp dụng phương pháp chuẩn hóa ma trận tiện ích về ma trận thưa (sparse matrix), giúp tiết kiệm tài nguyên bộ nhớ khi xử lý dữ liệu người dùng và sản phẩm.

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

Hạn chế

  • Hệ thống mới dừng lại ở phiên bản ứng dụng web chạy trên trình duyệt (Chrome, Cốc Cốc), chưa xây dựng thành ứng dụng di động độc lập (native mobile app).
  • Dữ liệu thử nghiệm hệ thống khuyến nghị còn ở quy mô vừa và nhỏ; độ chính xác của mô hình Collaborative filtering phụ thuộc nhiều vào số lượng tương tác và đánh giá thực tế của người dùng (vấn đề Cold Start khi hệ thống mới vận hành).
  • Phạm vi nghiên cứu khảo sát người dùng tập trung chủ yếu vào nhóm đối tượng từ 25 đến 32 tuổi và các cửa hàng quy mô vừa và nhỏ.

Hướng phát triển

  • Nghiên cứu và tối ưu hóa thêm các thuật toán khuyến nghị nâng cao nhằm cải thiện tốc độ xử lý khi số lượng người dùng và sản phẩm tăng trưởng quy mô lớn.
  • Phát triển thêm ứng dụng trên nền tảng di động (mobile application) để mở rộng khả năng tiếp cận của khách hàng.
  • Nâng cấp khả năng xử lý thông minh của chatbot tư vấn sản phẩm.

Giá trị tham khảo

Tài liệu khóa luận có giá trị tham khảo đối với:

  • Sinh viên ngành Kỹ thuật Phần mềm và Công nghệ Thông tin: Cung cấp tài liệu tham khảo chi tiết về quy trình phân tích, thiết kế và cài đặt một hệ thống thương mại điện tử hiện đại từ khâu lập đề cương, thiết kế Use case đến kiểm thử chức năng.
  • Lập trình viên Full-stack: Cung cấp mô hình kiến trúc kết hợp giữa NextJS, NestJS, FastAPI và cơ sở dữ liệu MongoDB; thiết kế schema NoSQL xử lý cấu trúc sản phẩm đa biến thể (Product, ProductItem, Tag, Variation).
  • Người nghiên cứu hệ thống khuyến nghị: Cung cấp các bước toán học chi tiết, dễ hiểu trong việc chuyển đổi ma trận dữ liệu, chuẩn hóa utility matrix và lập trình thuật toán Cosine Similarity kết hợp $K$-nearest items.

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

1. Hệ thống sử dụng những thuật toán gợi ý nào và áp dụng trong những ngữ cảnh cụ thể nào?

Khóa luận sử dụng hai thuật toán:

  • Content-based filtering: Dựa vào ma trận item profile và công thức Cosine Similarity giữa các thẻ (tags) sản phẩm, áp dụng để gợi ý các mặt hàng có đặc điểm tương đồng với sản phẩm mà khách hàng đang xem tại trang chi tiết sản phẩm.
  • Item-based Collaborative filtering: Dựa vào ma trận utility chứa điểm đánh giá (ratings) của người dùng, chuẩn hóa dữ liệu và dự đoán điểm bằng công thức $K$-láng giềng gần nhất, áp dụng để đưa ra danh sách các mặt hàng mà người dùng có thể sẽ thích tại trang chủ hoặc danh mục gợi ý.

2. Thuật toán Item-based Collaborative Filtering xử lý các ô dữ liệu bị thiếu (missing value) trong Utility Matrix như thế nào?

Để xử lý các ô dữ liệu chưa được người dùng đánh giá (kí hiệu là dấu "?"), tác giả thay thế bằng giá trị trung bình cộng (TBC) của tất cả các đánh giá mà mặt hàng đó đã nhận được. Sau đó, hệ thống thực hiện bước chuẩn hóa bằng cách lấy từng giá trị trong hàng trừ đi giá trị trung bình cộng này. Các giá trị thiếu sau chuẩn hóa sẽ trở thành 0 (đại diện cho trạng thái chưa xác định), cho phép chuyển đổi ma trận về dạng ma trận thưa (sparse matrix) để tối ưu bộ nhớ và phục vụ tính toán Cosine Similarity.

3. Những con số khảo sát thị trường nào được nhóm tác giả dùng làm căn cứ xây dựng hệ thống?

Tác giả sử dụng số liệu từ khảo sát của Q&Me (tháng 7/2022) trên 353 phụ nữ tại Đà Nẵng, Hà Nội và TP.HCM: 95% có thói quen chăm sóc da và 62% trang điểm hơn 1 lần/tuần; 44% khách hàng độ tuổi 25–32 chọn mua hàng trên kênh trực tuyến; 93% người trong độ tuổi 25–32 thường xuyên sử dụng mỹ phẩm chăm sóc da; 50% người dùng độ tuổi 33–39 mua tại cửa hàng tư nhân đơn lẻ; và 78% khách hàng trên 40 tuổi thường xuyên chăm sóc da.

4. Cơ sở dữ liệu MongoDB của hệ thống gồm những collections chính nào để quản lý sản phẩm đa biến thể?

Để quản lý sản phẩm có nhiều thuộc tính và phiên bản, hệ thống phân tách thành các collections: Product (chứa tên, mô tả song ngữ, danh mục, thương hiệu, danh sách biến thể), ProductItem (chứa giá, hình ảnh, cấu hình biến thể cụ thể, số lượng tồn, thẻ sản phẩm, điểm đánh giá), Tag và TagGroup (quản lý thẻ đặc tính và nhóm thẻ phục vụ gợi ý), cùng collection SalesQuantity để theo dõi số lượng đã bán.

5. Hệ thống hỗ trợ những phương thức thanh toán và dịch vụ bên thứ ba nào?

Hệ thống tích hợp cổng thanh toán trực tuyến qua ví điện tử MoMo (có hỗ trợ hoàn tiền khi đơn hủy), dịch vụ lưu trữ hình ảnh Cloudinary, dịch vụ gửi mã OTP qua NodeMailer, dịch vụ định vị/bản đồ Mapquest API, và dịch vụ xác thực tài khoản NextAuth hỗ trợ đăng nhập qua Google và Facebook.


Kết luận

Khóa luận tốt nghiệp của sinh viên Võ Minh Tuấn và Võ Xuân Tú đã xây dựng hoàn chỉnh một website bán mỹ phẩm trực tuyến đa nền tảng, tích hợp hệ thống khuyến nghị sản phẩm dựa trên hai thuật toán Content-based filtering và Item-based Collaborative filtering. Bằng việc kết hợp kiến trúc NextJS, NestJS, FastAPI và MongoDB, hệ thống giải quyết đồng thời bài toán kinh doanh bán lẻ trực tuyến, quản trị đơn hàng đa biến thể và cá nhân hóa trải nghiệm mua sắm cho người dùng. Toàn bộ quy trình phân tích yêu cầu, thiết kế kiến trúc 16 collections, xây dựng 41 Use case và kiểm thử chức năng được trình bày khoa học, mang lại giá trị tham khảo rõ ràng cho sinh viên và kỹ sư phát triển phần mềm thương mại điện tử.