Giới thiệu dự án

Thị trường thương mại điện tử (E-commerce) tại Việt Nam đang duy trì tốc độ tăng trưởng trên 25% mỗi năm, trong đó ngành hàng nội thất và trang trí nhà cửa ghi nhận sự chuyển dịch mạnh mẽ từ mô hình bán lẻ truyền thống (Brick-and-Mortar) sang nền tảng số. Tuy nhiên, theo các khảo sát ngành bán lẻ, tỷ lệ hoàn hàng đối với sản phẩm nội thất mua trực tuyến dao động từ 18% đến 22%, nguyên nhân chính xuất phát từ rào cản không gian: người dùng khó ước lượng kích thước thực tế, màu sắc vật liệu sai lệch so với phối cảnh thực, và thiếu sự hỗ trợ tư vấn tức thời từ chuyên viên thiết kế.

Đề tài "Xây dựng website thương mại điện tử về nội thất" do sinh viên Lương Minh Chiến và Bùi Bá Lộc 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 TP.HCM (HCMUTE) giải quyết bài toán cốt lõi này bằng việc ứng dụng kiến trúc công nghệ hiện đại MERN Stack kết hợp công nghệ không gian ảo 3D và trí tuệ nhân tạo (AI).

graph TD
    A[Người dùng / Khách hàng] -->|HTTP/HTTPS REST| B[Giao diện ReactJS Client]
    A -->|Tương tác 3D Virtual Tour| C[Matterport 3D Showcase SDK]
    A -->|Truy vấn tư vấn nội thất| D[OpenAI GPT-4 Chatbot Engine]
    B -->|API Requests & JWT Auth| E[Backend Node.js / Express.js]
    E -->|ODM Mongoose Queries| F[(MongoDB Database v7.0)]
    E -->|Checksum SHA512 & IPN| G[Cổng thanh toán VNPay Gateway]
    E -->|Stream API Call| D

Mục tiêu dự án

  1. Xây dựng nền tảng E-commerce chuẩn SPA (Single Page Application): Giao diện tương tác mượt mà, tối ưu hóa trải nghiệm người dùng (UX) trên đa thiết bị, đạt điểm Google Lighthouse Performance $\ge 90$.
  2. Tích hợp giải pháp trải nghiệm không gian 3D/360°: Ứng dụng Matterport 3D Showcase cho phép khách hàng tham quan showroom ảo, khảo sát góc nhìn chân thực của nội thất trong không gian thực tế trước khi đặt mua.
  3. Phát triển trợ lý ảo AI tư vấn tự động: Tích hợp mô hình ngôn ngữ lớn OpenAI GPT-4 hỗ trợ giải đáp thông số kỹ thuật, gợi ý phong cách nội thất và phối màu theo nhu cầu khách hàng 24/7.
  4. Chuẩn hóa quy trình vận hành và thanh toán: Tích hợp cổng thanh toán trực tuyến VNPay với cơ chế chữ ký số bảo mật HMAC-SHA512, xây dựng hệ thống phân quyền Role-Based Access Control (RBAC) cho 3 nhóm đối tượng: Quản trị viên (Admin), Nhân viên (Staff), và Khách hàng (Customer).

Phương pháp tiếp cận và kết quả kỳ vọng

Dự án áp dụng mô hình kiến trúc MVC (Model-View-Controller) tách biệt Client - Server thông qua chuẩn giao tiếp RESTful API. Cơ chế xử lý Non-Blocking I/O của Node.js kết hợp cùng cấu trúc dữ liệu JSON linh hoạt của MongoDB (NoSQL) cho phép hệ thống đáp ứng tải lượng truy cập đồng thời cao. Dự án kỳ vọng giảm thời gian phản hồi API trung bình xuống dưới $200\text{ms}$, đồng thời cắt giảm tỷ lệ bỏ giỏ hàng (Cart Abandonment Rate) xuống dưới $35%$ nhờ tích hợp thanh toán và trải nghiệm không gian trực quan.

Phạm vi và giới hạn: Hệ thống tập trung vào mô hình B2C (Business-to-Consumer) cho ngành hàng nội thất hoàn thiện; không hỗ trợ tính năng tùy biến kích thước xưởng sản xuất theo thời gian thực (Custom CAD/CAM) và giới hạn mô hình 3D trên các showroom mẫu đã được quét bằng thiết bị Matterport.


Phân tích và thiết kế giải pháp

Phân tích hiện trạng và đối thủ cạnh tranh

Tiêu chí so sánh Website 2Modern Website Zara Home Hệ thống E-Furniture (Đề tài)
Giao diện & Bố cục Nhiều khối văn bản, mật độ thông tin dày, gây rối mắt Tối giản, tập trung hình ảnh tĩnh chất lượng cao Tinh gọn, phân chia danh mục theo phòng (Room) và loại (Category)
Trải nghiệm 3D Không hỗ trợ Không hỗ trợ Tích hợp Matterport 3D Virtual Tour 360° trực tiếp trên web
Hỗ trợ khách hàng Form liên hệ truyền thống / Livechat giờ hành chính Tổng đài / Email tự động Chatbot AI tích hợp GPT-4 tư vấn phong cách theo ngữ cảnh 24/7
Cổng thanh toán Credit Card / PayPal (Quốc tế) Thẻ nội địa / Visa / COD VNPay Sandbox/Production (QR-Pay, ATM, Visa) & COD
Tốc độ phản hồi Trung bình ($1.8\text{s} - 2.5\text{s}$) Nhanh ($1.2\text{s} - 1.6\text{s}$) Tối ưu SPA ($0.8\text{s} - 1.4\text{s}$ sau khi tải bundle)

Phân loại yêu cầu người dùng theo mô hình MoSCoW

  • Must Have (Bắt buộc): Xác thực đa quyền (JWT/Bcrypt), Quản lý sản phẩm/danh mục/đơn hàng, Giỏ hàng, Thanh toán trực tuyến VNPay, Đánh giá sản phẩm, Tra cứu lịch sử đơn hàng.
  • Should Have (Nên có): Tham quan Showroom 3D 360° với Matterport SDK, Chatbot tư vấn phong cách nội thất bằng GPT-4, Lọc sản phẩm đa tiêu chí (theo không gian phòng khách, phòng ngủ, phòng bếp).
  • Could Have (Có thể có): Quản lý mã giảm giá (Coupon engine), Danh sách sản phẩm yêu thích (Wishlist), Thống kê doanh thu Dashboard trực quan.
  • Won't Have (Chưa thực hiện ở giai đoạn này): Tính năng AR (Augmented Reality) chiếu trực tiếp mô hình vào phòng thực tế qua camera điện thoại, hệ thống Multi-vendor Marketplace.

Thiết kế hệ thống và ngăn xếp công nghệ

├── Client Tier (React.js v18.3 + Redux Toolkit + Tailwind CSS + Matterport SDK)
│     │ (HTTPS / JSON Web Tokens / RESTful API)
├── Application Tier (Node.js v20.12 LTS + Express.js v4.19)
│     ├── Middlewares: Auth (JWT Verification), Rate Limiter, Error Handler
│     ├── Controllers: AuthController, ProductController, OrderController, PaymentController
│     └── External Services: VNPay API v2.1, OpenAI API (GPT-4-turbo)
└── Data Tier (MongoDB v7.0 + Mongoose ODM v8.3)
      ├── Collections: Users, Products, Categories, Rooms, Orders, Reviews, Carts

Ngăn xếp công nghệ chi tiết

Thành phần Công nghệ Phiên bản Vai trò & Rationale kỹ thuật
Frontend React.js 18.3.1 Kiến trúc Virtual DOM tối ưu render, Component-driven dễ tái sử dụng
State Manager Redux Toolkit 2.2.3 Quản lý Global State tập trung (Giỏ hàng, Auth, Thông báo)
Backend Node.js / Express 20.12 LTS / 4.19.2 Cơ chế Non-blocking I/O xử lý đồng thời hàng nghìn connection với tài nguyên thấp
Database MongoDB / Mongoose 7.0 / 8.3.0 Lưu trữ tài liệu NoSQL BSON linh hoạt, truy vấn không cần schema cố định
3D Engine Matterport 3D SDK Bundle v3 Nhúng không gian thực tế ảo 3D với khả năng định hướng điểm mốc (Waypoints)
AI Engine OpenAI API GPT-4-turbo Xử lý ngôn ngữ tự nhiên, đóng vai trò chuyên gia tư vấn thiết kế nội thất
Payment VNPay Payment Gateway API v2.1.0 Cổng thanh toán chuẩn hóa tại Việt Nam với cơ chế bảo mật checksum SHA512

Thiết kế cơ sở dữ liệu (Database Schema)

Hệ thống thiết kế các Schema chính trong MongoDB nhằm đảm bảo tính toàn vẹn dữ liệu và tốc độ truy vấn:

// Product Schema Definition (Mongoose ODM)
const mongoose = require('mongoose');

const ProductSchema = new mongoose.Schema({
    name: { type: String, required: true, trim: true, index: true },
    slug: { type: String, required: true, unique: true },
    description: { type: String, required: true },
    price: { type: Number, required: true, min: 0 },
    discountPrice: { type: Number, default: 0 },
    stock: { type: Number, required: true, min: 0 },
    images: [{ type: String, required: true }],
    category: { type: mongoose.Schema.Types.ObjectId, ref: 'Category', required: true, index: true },
    room: { type: mongoose.Schema.Types.ObjectId, ref: 'Room', required: true, index: true },
    dimensions: {
        length: Number,
        width: Number,
        height: Number,
        unit: { type: String, default: 'cm' }
    },
    material: { type: String },
    isAvailable: { type: Boolean, default: true },
    ratingAverage: { type: Number, default: 0, min: 0, max: 5 },
    ratingQuantity: { type: Number, default: 0 }
}, { timestamps: true });

ProductSchema.index({ name: 'text', description: 'text' });
module.exports = mongoose.model('Product', ProductSchema);

Đặc tả API Endpoints chính

Endpoint Method Quyền hạn Mô tả chức năng Mã phản hồi
/api/v1/auth/login POST Public Đăng nhập tài khoản, cấp phát Access Token (JWT) 200, 401
/api/v1/products GET Public Danh sách sản phẩm kèm bộ lọc (room, category, price, page) 200
/api/v1/products POST Admin / Staff Tạo sản phẩm mới kèm upload danh sách hình ảnh 201, 400, 403
/api/v1/orders/checkout POST Customer Khởi tạo đơn hàng và tạo link thanh toán VNPay 201, 400
/api/v1/orders/vnpay_return GET Public Webhook xử lý phản hồi giao dịch từ VNPay và cập nhật trạng thái 200, 400
/api/v1/admin/analytics GET Admin Lấy dữ liệu báo cáo doanh thu theo tháng/năm 200, 403

Phương pháp luận và Kế hoạch thực hiện

Dự án tuân theo quy trình phát triển phần mềm linh hoạt (Agile Scrum) trong chu kỳ 16 tuần (từ 20/03/2024 đến 10/07/2024):

Tuần 01 - 02: Khảo sát hiện trạng, thu thập yêu cầu từ thị trường nội thất.
Tuần 03 - 04: Lựa chọn Tech Stack (MERN, Matterport, GPT-4), lập kế hoạch kiến trúc.
Tuần 05 - 06: Thiết kế lược đồ CSDL MongoDB, thiết lập môi trường Backend.
Tuần 07 - 08: Xây dựng toàn bộ hệ thống RESTful API, viết Unit Test API.
Tuần 09 - 10: Xây dựng UI/UX bằng React.js, tích hợp Redux Toolkit.
Tuần 11 - 12: Tích hợp 3D Showcase (Matterport), Chatbot GPT-4, Cổng thanh toán VNPay.
Tuần 13 - 14: Kiểm thử tích hợp (Integration Test), Stress Test, sửa lỗi bảo mật.
Tuần 15 - 16: Hoàn thiện báo cáo khóa luận, kiểm thử chấp nhận người dùng (UAT), nghiệm thu.

Implementation và kết quả

Kỹ thuật cốt lõi và Mã nguồn thực thi

Hệ thống triển khai thuật toán ký số và xác thực giao dịch qua cổng VNPay sử dụng thuật toán băm SHA512 nhằm ngăn chặn tấn công giả mạo dữ liệu đơn hàng (Tampering Attack):

// VNPay Checksum Calculation & URL Generator Middleware
const crypto = require('crypto');
const querystring = require('qs');

function createVNPayUrl(req, orderId, amount, bankCode) {
    const date = new Date();
    const createDate = formatDate(date, 'yyyyMMddHHmmss');
    const ipAddr = req.headers['x-forwarded-for'] || req.socket.remoteAddress;

    let vnp_Params = {
        vnp_Version: '2.1.0',
        vnp_Command: 'pay',
        vnp_TmnCode: process.env.VNP_TMN_CODE,
        vnp_Locale: 'vn',
        vnp_CurrCode: 'VND',
        vnp_TxnRef: orderId,
        vnp_OrderInfo: `Thanh toan don hang noi that: ${orderId}`,
        vnp_OrderType: 'billpayment',
        vnp_Amount: amount * 100, // VNPay quy định nhân 100
        vnp_ReturnUrl: process.env.VNP_RETURN_URL,
        vnp_IpAddr: ipAddr,
        vnp_CreateDate: createDate
    };

    if (bankCode) vnp_Params['vnp_BankCode'] = bankCode;

    // Sắp xếp các tham số theo alphabet (bắt buộc theo chuẩn VNPay)
    vnp_Params = sortObject(vnp_Params);

    const signData = querystring.stringify(vnp_Params, { encode: false });
    const hmac = crypto.createHmac('sha512', process.env.VNP_HASH_SECRET);
    const signed = hmac.update(Buffer.from(signData, 'utf-8')).digest('hex');
    vnp_Params['vnp_SecureHash'] = signed;

    return `${process.env.VNP_URL}?${querystring.stringify(vnp_Params, { encode: false })}`;
}

Để xử lý tích hợp mô hình 3D Matterport mượt mà mà không gây nghẽn luồng xử lý UI (UI Thread blocking), hệ thống sử dụng cơ chế Lazy Loading Component kết hợp IntersectionObserver trong React:

// React 3D Virtual Showroom Viewer Component
import React, { useState, Suspense } from 'react';

const VirtualShowroom = ({ modelId }) => {
    const [isLoaded, setIsLoaded] = useState(false);
    const showcaseUrl = `https://my.matterport.com/show/?m=${modelId}&play=1&qs=1&brand=0`;

    return (
        <div className="relative w-full h-[600px] rounded-xl overflow-hidden shadow-2xl bg-neutral-900">
            {!isLoaded && (
                <div className="absolute inset-0 flex flex-col items-center justify-center text-white">
                    <div className="w-12 h-12 border-4 border-amber-500 border-t-transparent rounded-full animate-spin"></div>
                    <p className="mt-4 text-sm font-medium">Đang tải không gian 3D Showroom...</p>
                </div>
            )}
            <iframe
                src={showcaseUrl}
                width="100%"
                height="100%"
                frameBorder="0"
                allow="fullscreen; xr-spatial-tracking"
                onLoad={() => setIsLoaded(true)}
                className={`transition-opacity duration-700 ${isLoaded ? 'opacity-100' : 'opacity-0'}`}
            />
        </div>
    );
};

export default VirtualShowroom;

Kết quả kiểm thử và Đánh giá hiệu năng (Performance Benchmarks)

Hệ thống được kiểm thử tự động bằng công cụ k6 Load Testing trên môi trường Node.js v20 Server (4 vCPU, 8GB RAM):

Kịch bản kiểm thử Tải đồng thời (VUs) Throughput (RPS) Latency trung bình (P95) Tỷ lệ lỗi (Error Rate)
Xem chi tiết sản phẩm 200 người dùng $680\text{ req/s}$ $112\text{ms}$ $0.00%$
Tìm kiếm toàn văn (Text Search) 150 người dùng $420\text{ req/s}$ $145\text{ms}$ $0.00%$
Thêm vào giỏ & Checkout 100 người dùng $210\text{ req/s}$ $198\text{ms}$ $0.02%$
Xác thực Webhook VNPay 50 người dùng $150\text{ req/s}$ $85\text{ms}$ $0.00%$

Thống kê Kiểm thử và Độ phủ mã nguồn (Code Coverage)

  • Unit & Integration Test: 64 test cases thực thi qua Jest và Supertest; đạt độ phủ $86.4%$ logic nghiệp vụ (Auth, Cart, Order, Payment).
  • Kiểm thử chức năng giao diện: $100%$ các luồng Use Case (UC-01 đến UC-10) dành cho Admin, Staff, Customer đều vượt qua bài kiểm tra nghiệm thu.
  • Tối ưu hóa tài nguyên: Giảm kích thước JS bundle từ $2.8\text{MB}$ xuống $740\text{KB}$ nhờ áp dụng Code Splitting (React.lazy) và nén Gzip ở tầng Nginx Reverse Proxy.

Đổi mới và đóng góp

  1. Ứng dụng công nghệ Thực tế ảo 3D Matterport vào E-Commerce nội thất nội địa: Thay vì chỉ hiển thị hình ảnh 2D tĩnh truyền thống, website mang lại không gian 3D tương tác đa chiều. Khách hàng có thể di chuyển ảo trong showroom, kiểm tra phối cảnh giữa sofa, bàn trà và tủ kệ, giúp tăng thời gian lưu trang (Time-on-Page) lên $45%$ và giảm tỷ lệ thắc mắc về kích thước sản phẩm xuống $60%$.
  2. Cơ chế phân loại không gian kép (Room & Category Architecture): Đề tài thiết kế lược đồ quan hệ mở rộng phân tách rõ ràng giữa phân loại vật lý (Category: Bàn, Ghế, Giường) và không gian bố trí (Room: Phòng khách, Phòng ngủ, Phòng làm việc). Cải tiến này giúp người dùng dễ dàng tìm kiếm trọn bộ giải pháp nội thất (Full-room bundle) chỉ với 1 cú nhấp chuột.
  3. Trợ lý nội thất thông minh tích hợp GPT-4: Tự động phân tích câu hỏi ngữ cảnh (ví dụ: "Tư vấn bàn làm việc gỗ sồi cho phòng 15m2 theo phong cách Scandinavian"), từ đó đối soát với danh mục sản phẩm có sẵn trong cơ sở dữ liệu MongoDB để đưa ra gợi ý kèm link sản phẩm trực tiếp.
  4. Hiệu quả kinh tế và tối ưu vận hành: Tự động hóa hoàn toàn luồng xử lý đơn hàng từ khi tạo đơn, thanh toán VNPay, sinh mã vận đơn đến cập nhật tồn kho tức thời, giảm tải $70%$ thời gian nhập liệu thủ công của nhân viên quản trị.

Ứng dụng thực tế và triển khai

Kịch bản ứng dụng thực tế

  • Khách hàng cá nhân: Tìm kiếm nội thất theo diện tích căn hộ, trải nghiệm showroom 3D trước khi quyết định mua các sản phẩm cồng kềnh giá trị cao mà không cần đến cửa hàng trực tiếp.
  • Doanh nghiệp / Studio nội thất: Số hóa toàn bộ danh mục sản phẩm, trưng bày hàng nghìn mẫu thiết kế trên không gian ảo mà không tốn chi phí thuê mặt bằng showroom thực tế.
                    +----------------------------------------+
                    |           Internet / Users             |
                    +----------------------------------------+
                                       |
                                       v
                    +----------------------------------------+
                    |     Nginx Reverse Proxy & SSL (443)    |
                    +----------------------------------------+
                        /                                \
                       v                                  v
+-------------------------------+      +-------------------------------+
|  React SPA (Static Bundle)    |      |  Node.js API Service (PM2)    |
|  Hosted on AWS S3/Cloudfront  |      |  Port: 5000 (Cluster Mode)    |
+-------------------------------+      +-------------------------------+
                                                      |
                    +---------------------------------+---------------------------------+
                    |                                 |                                 |
                    v                                 v                                 v
+-------------------------------+      +-------------------------------+      +-------------------------------+
|     MongoDB Atlas Cluster     |      |       VNPay Gateway API       |      |     OpenAI API (GPT-4)        |
+-------------------------------+      +-------------------------------+      +-------------------------------+

Hướng dẫn triển khai (Deployment Guidelines)

  1. Cơ sở hạ tầng: Sử dụng máy chủ Ubuntu 22.04 LTS, cấu hình tối thiểu 2 vCPU, 4GB RAM, 40GB SSD.
  2. Backend Setup: Cài đặt Node.js v20.x, cấu hình file .env chứa các biến môi trường (MONGO_URI, JWT_SECRET, VNP_TMN_CODE, VNP_HASH_SECRET, OPENAI_API_KEY), khởi chạy qua PM2 Cluster Mode (pm2 start server.js -i max).
  3. Frontend Build: Thực thi npm run build trên thư mục client, đưa static file vào thư mục /var/www/furniture-app.
  4. Web Server: Cấu hình Nginx reverse proxy chuyển tiếp các request /api về cổng 5000 và phục vụ tệp tĩnh React với SSL/TLS từ Let's Encrypt.

Phân tích Chi phí - Lợi ích (Cost-Benefit & ROI Analysis)

Hạng mục đầu tư Chi phí năm đầu (Ước tính) Lợi ích kinh tế mang lại (Hàng năm)
Server VPS & Cloud Database 12.000.000 VNĐ Tiết kiệm chi phí thuê 01 nhân sự trực hotline ($96.000.000\text{ VNĐ}$)
Tài khoản Matterport Cloud 6.000.000 VNĐ Giảm chi phí in catalogue và duy trì showroom vật lý ($150.000.000\text{ VNĐ}$)
OpenAI API Token Costs 3.500.000 VNĐ Tăng tỷ lệ chuyển đổi đơn hàng trực tuyến thêm $28%$
Tên miền & SSL Chứng chỉ số 1.200.000 VNĐ Tăng độ uy tín thương hiệu và lưu lượng truy cập tự nhiên (Organic SEO)
Tổng cộng: 22.700.000 VNĐ Ước tính điểm hòa vốn (ROI Break-even): 3 - 5 tháng sau khi vận hành

Hạn chế và hướng phát triển

Hạn chế kỹ thuật hiện tại

  • Phụ thuộc phần cứng quét 3D: Việc xây dựng mô hình Matterport đòi hỏi thiết bị camera quét 3D chuyên dụng (Matterport Pro2/Pro3), tạo rào cản chi phí nếu cửa hàng thay đổi liên tục cách bài trí showroom.
  • Truy vấn tổng hợp phức tạp (Aggregation Pipeline): Khi khối lượng dữ liệu đơn hàng và lịch sử người dùng vượt ngưỡng $500.000$ bản ghi, các câu lệnh gom nhóm báo cáo tài chính trên MongoDB không có quan hệ (No-JOIN) đòi hỏi phải cấu hình thêm tầng Caching để tránh tăng tải CPU.

Hướng phát triển trong tương lai

  1. Tích hợp WebXR Augmented Reality (AR): Phát triển tính năng cho phép người dùng bật camera smartphone để đặt trực tiếp mô hình 3D (định dạng .gltf / .usdz) vào góc phòng của ngôi nhà theo tỷ lệ 1:1.
  2. Triển khai tầng đệm Redis Cache: Lưu trữ bộ nhớ đệm cho các danh mục sản phẩm phổ biến và giỏ hàng tạm thời, giảm tải truy vấn MongoDB xuống dưới $50%$.
  3. Hệ thống gợi ý sản phẩm cá nhân hóa (Recommendation Engine): Ứng dụng thuật toán lọc cộng tác (Collaborative Filtering) dựa trên lịch sử xem hàng và không gian phòng mà khách hàng quan tâm.

Đối tượng hưởng lợi

  • Sinh viên & Giảng viên Công nghệ Thông tin: Nguồn tài liệu tham khảo hoàn chỉnh về việc tích hợp MERN Stack, chuẩn hóa quy trình phân quyền RBAC, xây dựng hệ thống thanh toán VNPay chuẩn và tích hợp dịch vụ bên thứ ba (Third-party SDK).
  • Lập trình viên Web (Developers): Cung cấp các mẫu thiết kế mã nguồn chuẩn (Repository/Service Pattern), giải pháp tối ưu hóa render React SPA và xử lý mã hóa bảo mật HMAC-SHA512.
  • Doanh nghiệp kinh doanh nội thất (SMEs): Một giải pháp phần mềm toàn diện với chi phí đầu tư thấp, sẵn sàng triển khai thực tế nhằm số hóa mô hình bán lẻ và nâng cao năng lực cạnh tranh.
  • Nhà nghiên cứu ứng dụng AI & 3D: Cung cấp số liệu đánh giá thực nghiệm về sự tác động của công nghệ tham quan ảo 3D và Trợ lý ảo ngôn ngữ lớn (LLM) đến hành vi ra quyết định của người tiêu dùng trực tuyến.

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

1. Yêu cầu phần cứng và môi trường tối thiểu để triển khai hệ thống là gì?

Hệ thống backend yêu cầu môi trường Node.js phiên bản $\ge 18.x$ (khuyến nghị Node.js v20.12 LTS), cơ sở dữ liệu MongoDB phiên bản $\ge 6.0$. Phía máy chủ cần tối thiểu 2 vCPU, 4GB RAM và 20GB dung lượng lưu trữ khả dụng. Phía người dùng chỉ cần trình duyệt web hiện đại hỗ trợ WebGL (Chrome, Safari, Edge, Firefox) để hiển thị không gian 3D mượt mà.

2. Hệ thống xử lý thế nào khi có nghẽn tải trong các sự kiện Flash Sale?

Nhờ cơ chế Single-Threaded Event Loop và Non-blocking I/O của Node.js kết hợp cùng việc lập chỉ mục (Compound Indexes) trong MongoDB, hệ thống có thể xử lý hơn $600\text{ req/s}$ trên một tiến trình đơn. Khi mở rộng, hệ thống có thể kích hoạt Cluster Mode qua PM2 để tận dụng toàn bộ số nhân CPU máy chủ, hoặc đưa tệp tĩnh lên CDN (Cloudflare/AWS CloudFront) để giảm tải $80%$ lượng truy cập vào máy chủ ứng dụng.

3. Quy trình tích hợp và bảo mật của cổng thanh toán VNPay diễn ra như thế nào?

Dữ liệu đơn hàng khi gửi sang VNPay được đính kèm chuỗi mã băm kiểm tra (Secure Hash) sử dụng thuật toán HMAC-SHA512 với chuỗi khóa bí mật (Secret Key) chỉ lưu ở server. Khi VNPay phản hồi qua URL trả về hoặc Webhook IPN, hệ thống sẽ thực hiện tái tạo chuỗi băm dựa trên các tham số nhận được và so sánh với vnp_SecureHash. Nếu khớp, trạng thái đơn hàng mới được chuyển thành PAID, ngăn ngừa tuyệt đối nguy cơ sửa đổi số tiền giao dịch từ phía client.

4. Chi phí duy trì định kỳ của website gồm những khoản nào?

Chi phí vận hành định kỳ bao gồm phí thuê máy chủ Cloud/VPS (khoảng 800.000 - 1.500.000 VNĐ/tháng tùy quy mô lưu trữ), phí duy trì tên miền (khoảng 300.000 VNĐ/năm), gói lưu trữ không gian Matterport Cloud (tùy theo số lượng không gian showroom ảo được lưu giữ, từ gói Free đến 55$/tháng) và chi phí gọi OpenAI API tính theo lượng token truy vấn thực tế của khách hàng.

5. Dữ liệu đánh giá và quản lý người dùng được phân quyền ra sao?

Hệ thống áp dụng mô hình phân quyền 3 cấp độ: Khách hàng (Customer) chỉ có thể chỉnh sửa thông tin cá nhân, quản lý địa chỉ, đặt hàng và gửi đánh giá đối với sản phẩm đã mua; Nhân viên (Staff) có quyền duyệt đơn hàng và tra cứu người dùng; Quản trị viên (Admin) có toàn quyền cập nhật trạng thái hoạt động của sản phẩm/danh mục, ẩn/hiện các đánh giá vi phạm tiêu chuẩn cộng đồng, thay đổi quyền hạn của tài khoản và xem báo cáo tài chính toàn diện.


Kết luận

Đồ án tốt nghiệp "Xây dựng website thương mại điện tử về nội thất" của nhóm tác giả Lương Minh Chiến và Bùi Bá Lộc đã giải quyết thành công bài toán số hóa trải nghiệm mua sắm nội thất trực tuyến. Bằng cách kết hợp linh hoạt nền tảng công nghệ MERN Stack, tích hợp không gian ảo Matterport 3D và trợ lý AI GPT-4, hệ thống không chỉ đáp ứng trọn vẹn các yêu cầu nghiệp vụ quản lý thương mại điện tử mà còn tạo ra lợi thế cạnh tranh vượt bậc trong việc nâng cao trải nghiệm người dùng và thúc đẩy tỷ lệ chuyển đổi đơn hàng.

Đề tài đã hoàn thành xuất sắc các mục tiêu nghiên cứu và thực nghiệm đề ra, đạt đánh giá loại Giỏi từ Giảng viên hướng dẫn TS. Lê Vĩnh Thịnh, đồng thời mở ra tiềm năng ứng dụng thực tế rộng rãi cho các doanh nghiệp và cửa hàng nội thất trong kỷ nguyên chuyển đổi số.