FurneeHome: Sinh viên FPT Aptech xây dựng website bán nội thất tích hợp Phòng thử AI

FurneeHome: Sinh viên FPT Aptech xây dựng website bán nội thất tích hợp Phòng thử AI

Không chỉ dừng lại ở chức năng mua sắm trực tuyến, đồ án FurneeHome của sinh viên FPT Aptech còn phát triển Phòng thử AI, cho phép người dùng hình dung cách bố trí nội thất trong chính không gian sống của mình. Thông qua dự án Full-stack sử dụng React, Node.js, Express và MongoDB, nhóm sinh viên vận dụng kiến thức lập trình để xây dựng một website hoàn chỉnh, từ trải nghiệm mua hàng đến quản lý dữ liệu và xử lý các nghiệp vụ thực tế.

FurneeHome – Giải quyết bài toán mua nội thất trực tuyến bằng công nghệ

Khi mua nội thất qua website, khách hàng thường gặp khó khăn trong việc hình dung một món đồ có phù hợp với không gian sống của mình hay không. Hình ảnh sản phẩm riêng lẻ chưa đủ để người mua đánh giá cách bố trí, trong khi thông tin phục vụ quá trình mua sắm có thể nằm ở nhiều nơi, gây bất tiện khi tìm kiếm và ra quyết định.

Xuất phát từ nhu cầu đó, nhóm sinh viên FPT Aptech phát triển FurneeHome – Website bán nội thất có Phòng thử AI, hướng đến đối tượng người dùng phổ thông như học sinh, sinh viên, công nhân và các gia đình.

Đồ án được thực hiện bởi bốn thành viên: Mai Chí Dũng, Lê Thanh Hoàng Triều, Nguyễn Hồng Phúc và Vũ Lương Hiệp, thuộc lớp T3.2603.E0, học kỳ 1.

Thay vì chỉ xây dựng một website thương mại điện tử với các chức năng xem sản phẩm, thêm giỏ hàng và đặt mua, nhóm phát triển FurneeHome theo hai hướng chính: hoàn thiện quy trình mua sắm trực tuyến và tích hợp Phòng thử AI để hỗ trợ người dùng tham khảo cách đặt sản phẩm trong căn phòng thực tế.

Qua đó, dự án thể hiện cách nhóm tiếp cận một nhu cầu đời sống cụ thể, chuyển hóa thành ý tưởng sản phẩm và triển khai bằng các công nghệ phát triển web hiện đại.

Các thành viên thực hiện đồ án
Các thành viên thực hiện đồ án

Phòng thử AI – Điểm nhấn công nghệ của đồ án FurneeHome

Điểm nổi bật của FurneeHome là tính năng Phòng thử AI, giúp người dùng tham khảo cách một hoặc nhiều món nội thất có thể xuất hiện trong không gian phòng của mình trước khi quyết định mua.

Quy trình sử dụng được thiết kế theo ba bước:

  • Bước 1: Chọn sản phẩm nội thất: Người dùng lựa chọn tối đa ba sản phẩm từ danh sách có sẵn trên website để đưa vào phòng thử.
  • Bước 2: Tải ảnh căn phòng lên hệ thống: Người dùng tải lên hình ảnh không gian muốn bố trí nội thất. Đây là cơ sở để dịch vụ AI tạo ảnh tham khảo theo yêu cầu.
  • Bước 3: Nhập vị trí và tạo ảnh tham khảo: Người dùng có thể nhập vị trí mong muốn cho từng món đồ nếu cần, sau đó khởi tạo ảnh. Hệ thống sử dụng dịch vụ AI bên ngoài để tạo hình ảnh tham khảo dựa trên đầu vào.

Trong quá trình phát triển, nhóm đặt ra ba nguyên tắc cho tính năng này: cố gắng giữ lại cấu trúc căn phòng gốc như cầu thang, cửa và tủ; ưu tiên vị trí do người dùng nhập; đồng thời xác định rõ giới hạn của kết quả tạo ảnh.

Hệ thống hiện được cấu hình thử các nhà cung cấp theo thứ tự Pollinations, sau đó đến Cloudflare AI. Do kết quả phụ thuộc vào mô hình AI và dịch vụ bên ngoài, hình ảnh tạo ra chỉ mang tính tham khảo, không thay thế việc xem xét kích thước, chất liệu và thông tin thực tế của sản phẩm.

Trong phần trình bày đồ án, nhóm đặt ảnh gốc và ảnh được tạo cạnh nhau để đối chiếu, qua đó minh họa cách tính năng AI có thể hỗ trợ trải nghiệm mua sắm nội thất trực tuyến.

FurneeHome: Sinh viên FPT Aptech xây dựng website bán nội thất tích hợp Phòng thử AI
FurneeHome: Sinh viên FPT Aptech xây dựng website bán nội thất tích hợp Phòng thử AI

Xây dựng website Full-stack với React, Node.js, Express và MongoDB

Để vận hành đồng thời chức năng thương mại điện tử và Phòng thử AI, nhóm lựa chọn kiến trúc Full-stack, tách hệ thống thành ba lớp chính: giao diện người dùng, API xử lý nghiệp vụ và cơ sở dữ liệu.

Frontend đảm nhiệm việc hiển thị thông tin và tiếp nhận thao tác từ người dùng. Backend xử lý các yêu cầu thông qua API, đọc và ghi dữ liệu trong MongoDB. Riêng chức năng tạo ảnh Phòng thử được kết nối với dịch vụ AI bên ngoài.

Các công nghệ được sử dụng trong đồ án gồm:

  • Frontend: React và Vite, xây dựng giao diện responsive.
  • Backend: Node.js và Express, phát triển RESTful API.
  • Cơ sở dữ liệu: MongoDB, truy cập thông qua Mongoose.
  • Xác thực và bảo mật: JWT và bcrypt; đăng ký và đổi mật khẩu có bước xác minh bằng mã OTP gửi qua email.
  • Dịch vụ tạo ảnh AI: Pollinations và Cloudflare AI.
  • Triển khai hệ thống: Frontend trên Cloudflare Pages, backend trên Render và cơ sở dữ liệu trên MongoDB Atlas.

Một điểm đáng chú ý trong thiết kế là các nghiệp vụ quan trọng như giá sản phẩm, tồn kho, tài khoản, giỏ hàng và đơn hàng được kiểm tra ở backend thay vì phụ thuộc hoàn toàn vào dữ liệu gửi từ giao diện. Cách tổ chức này giúp phân định rõ trách nhiệm giữa các lớp và tạo cơ sở để kiểm soát tính nhất quán của dữ liệu.

Bên cạnh đó, FurneeHome triển khai bốn nhóm quyền gồm Khách, Khách hàng (Customer), Admin và Orchestra Admin. Mỗi nhóm có phạm vi thao tác riêng, từ xem và tìm kiếm sản phẩm đến mua hàng, quản lý đơn hàng, xử lý phản hồi và quản lý tài khoản quản trị cấp dưới.

Việc kết hợp giao diện, API, cơ sở dữ liệu, xác thực và phân quyền cho thấy đồ án không chỉ tập trung vào phần hiển thị mà còn hướng đến xây dựng một hệ thống có các lớp chức năng rõ ràng.

FurneeHome: Sinh viên FPT Aptech xây dựng website bán nội thất tích hợp Phòng thử AI
FurneeHome: Sinh viên FPT Aptech xây dựng website bán nội thất tích hợp Phòng thử AI

Hoàn thiện quy trình mua hàng và kiểm soát dữ liệu

Với một website thương mại điện tử, trải nghiệm mua sắm không chỉ nằm ở giao diện thuận tiện mà còn phụ thuộc vào cách hệ thống xử lý đơn hàng, giá bán, tồn kho và các tình huống phát sinh.

Trong FurneeHome, MongoDB là nguồn dữ liệu chính, tổ chức thành bảy nhóm: Users, Categories, Products, Carts, Orders, Reviews và Feedbacks.

Quy trình mua hàng được xây dựng xuyên suốt từ lúc người dùng xem sản phẩm, thêm vào giỏ hàng, kiểm tra giỏ, thanh toán, theo dõi đơn đến đánh giá sản phẩm sau khi nhận hàng. Hệ thống hỗ trợ hai phương thức thanh toán được mô tả trong đồ án là COD và thanh toán QR, đồng thời có chức năng áp dụng voucher phí vận chuyển.

Để hạn chế sai lệch dữ liệu, nhóm triển khai một số nguyên tắc xử lý ở phía server:

  • Kiểm tra giá và tồn kho: Server đọc lại giá và số lượng tồn kho trước khi tạo đơn, thay vì tin hoàn toàn vào dữ liệu từ frontend.
  • Tính phí vận chuyển ở backend: Hạn chế việc số liệu do phía client gửi lên ảnh hưởng đến kết quả tính toán.
  • Lưu thông tin sản phẩm tại thời điểm đặt mua: Đơn hàng lưu tên, ảnh và giá sản phẩm tại thời điểm mua, giúp lịch sử đơn không thay đổi khi thông tin sản phẩm được cập nhật sau đó.
  • Bảo toàn lịch sử giao dịch: Sản phẩm đã có lịch sử đơn hàng được chuyển sang trạng thái Ngừng bán thay vì xóa, nhằm giữ lại dữ liệu liên quan.
  • Kiểm soát quyền đánh giá: Chỉ những đơn hàng đáp ứng điều kiện hợp lệ mới được đánh giá.

Những chi tiết này phản ánh cách nhóm tiếp cận các vấn đề thường gặp trong quá trình xây dựng website bán hàng, nơi dữ liệu giữa sản phẩm, giỏ hàng, đơn hàng và lịch sử giao dịch cần được liên kết chặt chẽ.

do-an-sinh-vien
Đồ án kỳ 1-FurneeHome của sinh viên FPT Aptech

Xử lý tình huống đồng kiểm và hoàn tiền bằng VietQR

Bên cạnh quy trình mua hàng thông thường, FurneeHome còn xây dựng luồng xử lý cho tình huống khách hàng kiểm tra sản phẩm khi nhận hàng và trường hợp cần hoàn tiền.

Với chính sách đồng kiểm, người mua có thể mở hộp để xem hàng khi nhận. Nếu khách chấp nhận sản phẩm và thanh toán, đơn hàng được chuyển sang trạng thái Delivered và Paid. Nếu khách từ chối sau khi kiểm tra, shipper mang hàng về, Admin cập nhật trạng thái Returned và hệ thống tự động khôi phục tồn kho.

Đối với quy trình hoàn tiền, nhóm chú trọng hạn chế rủi ro phát sinh từ mã QR giả mạo. Thay vì yêu cầu Admin quét ảnh mã QR do khách gửi, hệ thống yêu cầu khách nhập trực tiếp tên ngân hàng, số tài khoản và tên chủ tài khoản trên website.

Sau đó, Admin thực hiện chuyển khoản theo cú pháp HOAN TIEN kèm mã đơn. Hệ thống tự sinh mã VietQR từ thông tin ngân hàng mà khách đã cung cấp để Admin quét trực tiếp. Khi giao dịch được thực hiện, Admin xác nhận đã hoàn tiền trên hệ thống và đơn hàng chuyển sang trạng thái Refunded. Với đơn COD chưa thu tiền, trạng thái thanh toán được cập nhật thành Cancelled.

Cách thiết kế này thể hiện sự quan tâm của nhóm đến các tình huống nghiệp vụ ngoài luồng mua hàng cơ bản. Thay vì chỉ hoàn thiện chức năng đặt hàng, nhóm tìm cách xây dựng quy trình xử lý trạng thái đơn và hoàn tiền rõ ràng hơn.

Đồ án kỳ 1-FurneeHome của sinh viên FPT Aptech
Đồ án kỳ 1-FurneeHome của sinh viên FPT Aptech

Những bài toán kỹ thuật nhóm sinh viên đã giải quyết

Trong quá trình phát triển FurneeHome, nhóm xử lý nhiều vấn đề liên quan đến tính nhất quán dữ liệu, trải nghiệm người dùng và sự phụ thuộc vào dịch vụ bên ngoài.

Giữ giỏ hàng khi khách chưa đăng nhập

Giỏ hàng của khách được lưu trên trình duyệt. Khi người dùng đăng nhập, dữ liệu giỏ hàng này được gộp vào tài khoản, giúp duy trì trải nghiệm mua sắm liền mạch hơn.

Hạn chế sai lệch giá và tồn kho

Frontend không được ghi trực tiếp vào MongoDB. Khi tạo đơn hàng, server kiểm tra lại giá và tồn kho, giúp hạn chế nguy cơ dữ liệu từ phía client làm sai lệch thông tin giao dịch.

Xử lý sản phẩm đã phát sinh đơn hàng

Thay vì xóa sản phẩm đã có lịch sử giao dịch, hệ thống chuyển sản phẩm sang trạng thái Ngừng bán. Đồng thời, đơn hàng lưu lại thông tin sản phẩm tại thời điểm mua để bảo toàn lịch sử.

Dự phòng khi dịch vụ tạo ảnh AI gặp vấn đề

Tính năng Phòng thử phụ thuộc vào dịch vụ tạo ảnh bên ngoài. Nhóm cấu hình thứ tự thử nhà cung cấp Pollinations và Cloudflare AI, đồng thời xác định ảnh tạo ra là kết quả tham khảo.

Hạn chế rủi ro từ mã QR hoàn tiền

Hệ thống không quét ảnh QR do khách gửi mà sử dụng thông tin ngân hàng nhập trực tiếp và mã VietQR do hệ thống tạo ra để hỗ trợ quy trình chuyển khoản.

Bảo vệ dữ liệu thật trong quá trình đồng bộ

Nhóm thiết kế nguyên tắc không chạy seed trên cơ sở dữ liệu đã có dữ liệu, đồng thời chỉ đồng bộ JSON theo chiều từ MongoDB sang JSON. Cách tiếp cận này nhằm hạn chế nguy cơ dữ liệu mẫu ghi đè dữ liệu đang sử dụng.

Thông qua những bài toán trên, FurneeHome cho thấy việc phát triển một website Full-stack đòi hỏi nhiều hơn khả năng viết mã. Người thực hiện cần hiểu luồng nghiệp vụ, xác định các tình huống ngoại lệ và lựa chọn cách xử lý phù hợp với cấu trúc hệ thống.

Kết quả đồ án FurneeHome và định hướng phát triển

Theo nội dung đồ án, FurneeHome đã hoàn thành quy trình mua hàng từ đầu đến cuối, kết hợp xác thực email, phân quyền người dùng, trang quản trị và tính năng Phòng thử AI. Frontend và backend được triển khai độc lập, tạo thành hệ thống có thể truy cập qua các môi trường hosting tương ứng.

Các chức năng chính đã được triển khai gồm:

  • Xem, tìm kiếm và lọc sản phẩm; quản lý giỏ hàng, checkout và đơn hàng.
  • Xác thực email bằng mã OTP và phân quyền cho các nhóm người dùng.
  • Phòng thử AI với khả năng chọn tối đa ba sản phẩm mỗi lần.
  • Quản trị sản phẩm, danh mục, khách hàng, đơn hàng và feedback.
  • Quản lý admin cấp dưới theo quyền được phân công.
  • Xử lý đánh giá sản phẩm, đồng kiểm, hoàn tiền và các trạng thái liên quan.

Bên cạnh kết quả đạt được, nhóm cũng xác định một số hạn chế cần tiếp tục cải thiện. Chất lượng và tốc độ tạo ảnh Phòng thử phụ thuộc vào dịch vụ AI bên ngoài; ảnh dung lượng lớn hiện chỉ được giữ trong phiên trình duyệt nên người dùng không nên đóng tab giữa chừng. Khi dữ liệu tăng, trang quản trị cần bổ sung phân trang và tìm kiếm theo trang. Ngoài ra, chức năng OTP khi triển khai cần cấu hình SMTP Gmail App Password hợp lệ.

Trong định hướng tiếp theo, nếu FurneeHome được phát triển thành website phục vụ hoạt động kinh doanh thực tế, nhóm có thể cân nhắc lưu trữ ảnh trên R2 hoặc S3, sử dụng hàng đợi cho tác vụ tạo ảnh, tích hợp cổng thanh toán thực và bổ sung log vận hành để hỗ trợ theo dõi hệ thống.

Những định hướng này cho thấy nhóm đã bước đầu nhìn nhận sản phẩm không chỉ ở phạm vi đồ án học kỳ mà còn từ góc độ vận hành và khả năng mở rộng trong tương lai.

Đồ án thực tế – Cơ hội vận dụng kiến thức lập trình tại FPT Aptech

Từ ý tưởng giải quyết nhu cầu mua nội thất trực tuyến, nhóm sinh viên FPT Aptech đã phát triển FurneeHome thành một website Full-stack tích hợp AI, có quy trình mua hàng, hệ thống phân quyền và các nghiệp vụ quản lý dữ liệu tương đối toàn diện.

Điểm đáng chú ý của đồ án không chỉ nằm ở tính năng Phòng thử AI mà còn ở cách nhóm xử lý những vấn đề phía sau một sản phẩm số: kiểm soát giá và tồn kho, bảo toàn lịch sử đơn hàng, quản lý quyền truy cập và xây dựng quy trình hoàn tiền.

Thông qua quá trình thực hiện, sinh viên có cơ hội vận dụng kiến thức về frontend, backend, cơ sở dữ liệu, API và tích hợp dịch vụ bên ngoài để giải quyết một bài toán cụ thể. Đây cũng là cách tiếp cận giúp người học kết nối kiến thức lập trình với tư duy phân tích, thiết kế và phát triển sản phẩm.

Tìm hiểu các chương trình đào tạo lập trình tại FPT Aptech để khám phá lộ trình học tập và cơ hội thực hành xây dựng các sản phẩm công nghệ từ những bài toán thực tế.

Lê Mộng Thuý – Giảng viên FPT Aptech

Viện Đào Tạo Quốc Tế FPT
FPT Academy International là đơn vị đào tạo thuộc hệ sinh thái giáo dục của Tập đoàn FPT, chuyên cung cấp các chương trình đào tạo chuẩn quốc tế trong lĩnh vực công nghệ, chuyển đổi số và kỹ năng nghề nghiệp, hướng tới học viên và doanh nghiệp trong nước và toàn cầu.

Có thể bạn quan tâm

FurneeHome: Sinh viên FPT Aptech xây dựng website bán nội thất tích hợp Phòng thử AI

Không chỉ dừng lại ở chức năng mua sắm trực tuyến, đồ án FurneeHome của sinh viên FPT Aptech còn…

Thương hiệu trà Kombucha “Về Nhà” – Đồ án gợi ký ức tuổi thơ miền tây của sinh viên FPT Arena Multimedia

Lấy cảm hứng từ hương vị quê nhà và những trò chơi dân gian gắn liền với tuổi thơ vùng…

THE COVER-UP: Đồ án phim hoạt hình 3D mang màu sắc bí ẩn của sinh viên FPT Arena Multimedia

Lấy bối cảnh học đường, kết hợp sắc thái bí ẩn cùng cảm giác hoài niệm về thời học sinh,…

Sinh viên FPT Arena Multimedia phát triển bộ nhận diện thương hiệu WOAA dành cho Gen Z

Với dự án WOAA, sinh viên FPT Arena Multimedia vận dụng kiến thức chuyên môn để xây dựng bộ nhận…

Đồ án sinh viên FPT Aptech: Xây dựng hệ thống quản lý quy trình tuyển dụng trên nền tảng web

Từ một bài toán quản lý tuyển dụng thực tế, nhóm sinh viên FPT Aptech đã phát triển một hệ…

Railway Reservation & Management System đồ án kỳ 3 của sinh viên FPT Aptech

Railway Reservation & Management System là Web App học kỳ 3 của nhóm sinh viên FPT Aptech gồm Triệu Phong,…

Sinh viên FPT Aptech thiết kế đồ án thực tế Pharmaceutical Guide

PHARMACEUTICAL GUIDE là đồ án học kỳ 3 của nhóm sinh viên FPT Aptech, được phát triển từ một bài…

Đồ án kỳ 3 TARS Delivery System thực hiện bởi sinh viên FPT Aptech

TARS Delivery System là đồ án Web app học kỳ 3 của nhóm sinh viên FPT Aptech, được xây dựng…