Giới thiệu dự án

Thị trường thương mại điện tử (E-Commerce) ngành thời trang tại Việt Nam đang trải qua giai đoạn tăng trưởng vượt bậc với tốc độ tăng trưởng kép hàng năm (CAGR) đạt xấp xỉ 25% trong giai đoạn 2022–2025. Sự chuyển dịch mạnh mẽ từ mô hình bán lẻ truyền thống (Brick-and-Mortar) sang mô hình trực tuyến đa kênh (Omnichannel) đặt ra yêu cầu cấp thiết cho các doanh nghiệp thời trang: sở hữu một nền tảng bán hàng độc lập, linh hoạt và tối ưu trải nghiệm người dùng.

Tuy nhiên, các doanh nghiệp vừa và nhỏ (SMEs) cũng như các thương hiệu thời trang nội địa (Local Brands) thường gặp phải các thách thức lớn khi xây dựng website bán hàng:

  • Chi phí bản quyền và duy trì đắt đỏ của các nền tảng thương mại đóng gói sẵn (Shopify, Magento Enterprise).
  • Sự phức tạp trong việc quản lý danh mục sản phẩm thời trang đa biến thể (phân loại theo danh mục nam, nữ, trẻ em; kích cỡ S/M/L/XL; màu sắc và bộ sưu tập ảnh).
  • Trải nghiệm giao diện chưa tối ưu, thiếu khả năng tương thích đa thiết bị (Responsive Design) dẫn đến tỷ lệ rời bỏ giỏ hàng (Cart Abandonment Rate) vượt mức 70%.

Đồ án "Xây dựng Website Bán Quần Áo - G5 Shop" được thực hiện bởi nhóm nghiên cứu tại Khoa Khoa học và Kỹ thuật Thông tin, Trường Đại học Công nghệ Thông tin (ĐHQG-HCM), dưới sự hướng dẫn của ThS. Võ Tấn Khoa trong khuôn khổ học phần Internet và Công nghệ Web (IE104). Đề tài tập trung giải quyết bài toán cốt lõi của một hệ thống bán lẻ trực tuyến thông qua việc thiết kế và hiện thực hóa một nền tảng web hoàn chỉnh, có hiệu năng cao và cấu trúc module hóa linh hoạt.

+-------------------------------------------------------------------------------+
|                             MỤC TIÊU CỐT LÕI                                  |
| 1. Xây dựng kiến trúc web full-stack chuẩn MVC trên nền tảng Node.js & MySQL. |
| 2. Hiện thực hóa hệ thống phân quyền 3 cấp: Khách (Guest) - User - Admin.     |
| 3. Tối ưu hóa UI/UX mua sắm theo chuẩn Responsive Web Design (RWD).          |
| 4. Thiết kế cơ sở dữ liệu quan hệ chuẩn 3NF quản lý đa biến thể thời trang.   |
| 5. Đảm bảo hiệu năng phản hồi trang < 300ms và sẵn sàng chịu tải đồng thời.  |
+-------------------------------------------------------------------------------+

Phương pháp tiếp cận của đồ án là xây dựng hệ thống từ gốc (from scratch) bằng cách kết hợp sức mạnh của công nghệ máy chủ bất đồng bộ hướng sự kiện (Asynchronous Event-Driven) trong Node.js và hệ quản trị cơ sở dữ liệu quan hệ MySQL, loại bỏ sự phụ thuộc vào các CMS cồng kềnh nhằm đạt được hiệu năng tải trang tối ưu và khả năng kiểm soát tuyệt đối luồng dữ liệu.

Phạm vi của dự án tập trung vào toàn bộ chu trình mua hàng trực tuyến: từ duyệt danh mục, lọc sản phẩm đa tiêu chí, quản lý giỏ hàng động, đến quy trình tạo và theo dõi trạng thái đơn hàng. Hệ thống đồng thời cung cấp bảng điều khiển quản trị (Admin Dashboard) toàn diện để quản lý sản phẩm, tài khoản và đơn hàng. Giới hạn hiện tại của hệ thống là áp dụng phương thức thanh toán tiền mặt khi nhận hàng (COD) và chuyển khoản nội bộ, chưa tích hợp cổng thanh toán trực tiếp qua Webhook ngân hàng.


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

Phân tích hiện trạng

Khảo sát thực tế các nền tảng thương mại điện tử hiện nay cho thấy sự phân hóa rõ rệt giữa các giải pháp:

Tiêu chí Shopify / SaaS thương mại WooCommerce / WordPress Giải pháp G5 Shop (Node.js + MySQL)
Chi phí triển khai Rất cao (Thuê bao tháng + % phí giao dịch) Trung bình (Hosting + Plugin bản quyền) Rất thấp (Toàn quyền mã nguồn mở)
Tốc độ phản hồi (TTFB) 350ms - 600ms (Phụ thuộc CDN quốc tế) 400ms - 850ms (Nặng do PHP/Plugins) < 150ms (Node.js non-blocking I/O)
Khả năng tùy biến CSDL Bị giới hạn bởi Schema định sẵn Phức tạp (Lưu vào bảng EAV/PostMeta) 100% linh hoạt theo mô hình chuẩn 3NF
Bảo mật & Kiểm soát mã Phụ thuộc bên thứ ba Nguy cơ cao từ lỗ hổng Plugin Kiểm soát toàn diện từng tầng Middleware

Nghiên cứu đối chiếu hành vi người dùng tại hai hệ thống thời trang hàng đầu Việt Nam là YodyUniqlo cho thấy các điểm mấu chốt cấu thành trải nghiệm người dùng tối ưu: bố cục tối giản (Minimalism), thanh điều hướng đa cấp trực quan, bộ lọc biến thể (size, danh mục) mượt mà và quy trình checkout rút gọn dưới 3 bước.

Hệ thống yêu cầu người dùng của G5 Shop được chuẩn hóa theo mô hình phân loại MoSCoW:

  • Must Have (Bắt buộc): Đăng ký/đăng nhập phân quyền (RBAC), xem chi tiết biến thể kích cỡ/màu sắc, thêm/xóa giỏ hàng, đặt hàng lưu vết giao dịch, dashboard CRUD cho Admin.
  • Should Have (Nên có): Lọc sản phẩm theo danh mục con (Áo nam, Quần nam, Váy nữ, Đồ trẻ em), quản lý hồ sơ cá nhân, đổi mật khẩu bảo mật, xem lịch sử đơn hàng.
  • Could Have (Có thể có): Gợi ý sản phẩm tương tự (Cross-selling), tìm kiếm tức thì theo từ khóa.
  • Won't Have (Chưa thực hiện): Thanh toán tự động qua cổng Visa/Mastercard trực tuyến, live-chat hỗ trợ tự động bằng AI.

Thiết kế hệ thống

Kiến trúc tổng thể của G5 Shop áp dụng mô hình phân tầng Model-View-Controller (MVC), tách biệt hoàn toàn giữa giao diện hiển thị, logic điều hướng nghiệp vụ và tầng thao tác cơ sở dữ liệu.

       +-------------------------------------------------------------+
       |                  CLIENT LAYER (Web Browser)                 |
       |             HTML5 / CSS3 / JavaScript (Fetch API)           |
       +------------------------------+------------------------------+
                                      | HTTP/HTTPS Request
                                      v
       +-------------------------------------------------------------+
       |             ROUTING & CONTROLLER LAYER (Node.js)            |
       |  - Auth Controller      - Product Controller                |
       |  - Cart Controller      - Order / Admin Controller          |
       |                 [ RBAC Middleware Engine ]                  |
       +------------------------------+------------------------------+
                                      | Query / Data Mapping
                                      v
       +-------------------------------------------------------------+
       |                   MODEL LAYER (Data Access)                 |
       |         SQL Prepared Statements / Pool Connection           |
       +------------------------------+------------------------------+
                                      | TCP Connection (Port 3306)
                                      v
       +-------------------------------------------------------------+
       |                   DATABASE ENGINE (MySQL)                   |
       |   Roles | Users | Categories | Products | ProductSizes...   |
       +-------------------------------------------------------------+

Hệ thống công nghệ chi tiết bao gồm:

  • Ngôn ngữ & Runtime: Node.js (v18.x LTS), JavaScript ES6+.
  • Database: MySQL Server (v8.0.x / MariaDB qua môi trường XAMPP).
  • Frontend Core: HTML5 chuẩn ngữ nghĩa (Semantic HTML), CSS3 (Flexbox/CSS Grid), Vanilla JS cho DOM Manipulation.
  • Quản lý phiên & Bảo mật: Cookie-Session, RBAC Token Logic, SHA-256 / Bcrypt hashing cho mật khẩu người dùng.
  • Công cụ kỹ thuật: Visual Studio Code, Git/GitHub, Figma UI Designer, Postman.

Cơ sở dữ liệu được chuẩn hóa ở mức 3NF với 9 bảng liên kết chặt chẽ:

  1. Roles (id, name): Phân quyền tài khoản (Role 1: Admin, Role 2: Customer).
  2. Users (id, fullname, email, phone_number, address, password, role_id).
  3. Categories (id, name): Danh mục gốc (Nam, Nữ, Trẻ em, Phụ kiện).
  4. Products (id, category_id, title, price, discount, thumbnail, description).
  5. ProductSizes (id, product_id, size): Quản lý kích thước sản phẩm (S, M, L, XL, XXL).
  6. Galleries (id, product_id, thumbnail): Thư viện đa ảnh chi tiết sản phẩm.
  7. Orders (id, user_id, fullname, email, phone_number, address, note, order_date, status, total_money).
  8. Order_Details (id, order_id, product_id, price, num, total_money).
  9. Carts (id, user_id, product_id, size, num).
-- Trích xuất Schema DDL cốt lõi của hệ thống G5 Shop
CREATE TABLE `Products` (
  `id` INT AUTO_INCREMENT PRIMARY KEY,
  `category_id` INT NOT NULL,
  `title` VARCHAR(255) NOT NULL,
  `price` INT NOT NULL,
  `discount` INT DEFAULT 0,
  `thumbnail` VARCHAR(500),
  `description` LONGTEXT,
  `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  FOREIGN KEY (`category_id`) REFERENCES `Categories`(`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE `Orders` (
  `id` INT AUTO_INCREMENT PRIMARY KEY,
  `user_id` INT NOT NULL,
  `fullname` VARCHAR(100) NOT NULL,
  `phone_number` VARCHAR(20) NOT NULL,
  `address` VARCHAR(255) NOT NULL,
  `status` ENUM('Pending', 'Processing', 'Delivered', 'Cancelled') DEFAULT 'Pending',
  `total_money` INT NOT NULL,
  `order_date` DATETIME DEFAULT CURRENT_TIMESTAMP,
  FOREIGN KEY (`user_id`) REFERENCES `Users`(`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

Hệ thống API nội bộ cung cấp các endpoint RESTful rõ ràng:

Phương thức Endpoint Chức năng Phân quyền
POST /api/auth/register Đăng ký tài khoản người dùng mới Public
POST /api/auth/login Xác thực đăng nhập và cấp quyền Public
GET /api/products?category=1 Lấy danh sách sản phẩm theo danh mục Public
POST /api/cart/add Thêm sản phẩm cùng biến thể size vào giỏ Customer
POST /api/order/checkout Tạo đơn hàng mới và chi tiết đơn hàng Customer
GET /api/admin/orders Quản lý, lọc và cập nhật trạng thái đơn Admin (Role 1)
DELETE /api/admin/products/:id Xóa sản phẩm khỏi hệ thống kho Admin (Role 1)

Methodology

Dự án áp dụng quy trình phát triển phần mềm theo Mô hình Thác nước (Waterfall Model) với 6 giai đoạn kế thừa tuần tự, đảm bảo tính chặt chẽ và chuẩn hóa tài liệu kỹ thuật:

[ Giai đoạn 1: Phân tích yêu cầu ] -> (Đặc tả Use-Case, Xác định Actor)
              |
              v
[ Giai đoạn 2: Thiết kế hệ thống ] -> (Vẽ ERD, Sequence Diagram, Wireframe Figma)
              |
              v
[ Giai đoạn 3: Hiện thực hóa mã nguồn ] -> (Coding Backend Node.js, Frontend UI)
              |
              v
[ Giai đoạn 4: Kiểm thử toàn diện ] -> (Unit Test, Integration Test, Security Review)
              |
              v
[ Giai đoạn 5: Triển khai & UAT ] -> (Đóng gói môi trường XAMPP/Node, Đánh giá người dùng)
              |
              v
[ Giai đoạn 6: Bảo trì & Tối ưu ] -> (Refactor Code, Tối ưu câu truy vấn SQL)

Tiến độ 8 tuần được kiểm soát chặt chẽ trên Notion, quản lý mã nguồn thông qua Git Flow với các nhánh tính năng độc lập, rà soát xung đột và kiểm thử cục bộ trước khi merge vào nhánh main.


Implementation và kết quả

Development process

Quá trình phát triển được phân chia thành 4 sprint trọng tâm:

  • Sprint 1 (Tuần 1-2): Thiết lập môi trường, dựng database schema trên MySQL, khởi tạo server Node.js và xây dựng module xác thực Authentication (Hashing password, Session).
  • Sprint 2 (Tuần 3-4): Xây dựng tầng Model-Controller cho danh mục sản phẩm, bộ lọc theo nhóm tuổi/giới tính, trang chi tiết tích hợp gallery đa ảnh và chọn kích thước động.
  • Sprint 3 (Tuần 5-6): Hiện thực logic Giỏ hàng và Cơ chế Transaction khi đặt hàng (Đảm bảo tính toàn vẹn ACID khi trừ tồn kho và ghi dữ liệu chi tiết đơn hàng).
  • Sprint 4 (Tuần 7-8): Xây dựng Admin Dashboard, kiểm thử bảo mật (SQL Injection, XSS) và tối ưu hóa CSS Responsive.
// Xử lý Transaction an toàn dữ liệu khi người dùng Checkout đơn hàng
const db = require('../config/database');

exports.processCheckout = async (req, res) => {
    const { userId, fullname, phone, address, note, items, totalMoney } = req.body;
    const connection = await db.getConnection();
    
    try {
        await connection.beginTransaction();

        // 1. Tạo bản ghi đơn hàng chính
        const [orderResult] = await connection.query(
            `INSERT INTO Orders (user_id, fullname, phone_number, address, note, total_money, status) 
             VALUES (?, ?, ?, ?, ?, ?, 'Pending')`,
            [userId, fullname, phone, address, note, totalMoney]
        );
        const orderId = orderResult.insertId;

        // 2. Thêm từng mục vào Order_Details sử dụng Batch Insert
        const orderDetailsValues = items.map(item => [
            orderId, item.productId, item.price, item.quantity, (item.price * item.quantity)
        ]);

        await connection.query(
            `INSERT INTO Order_Details (order_id, product_id, price, num, total_money) VALUES ?`,
            [orderDetailsValues]
        );

        // 3. Xóa các mục đã checkout khỏi giỏ hàng
        await connection.query(`DELETE FROM Carts WHERE user_id = ?`, [userId]);

        await connection.commit();
        return res.status(200).json({ success: true, message: 'Đặt hàng thành công!', orderId });
    } catch (error) {
        await connection.rollback();
        console.error('Lỗi xử lý Transaction đơn hàng:', error);
        return res.status(500).json({ success: false, message: 'Giao dịch thất bại, dữ liệu đã được rollback.' });
    } finally {
        connection.release();
    }
};

Testing và validation

Hệ thống được kiểm thử qua 3 tầng: Unit Testing (kiểm tra logic tính giá, validate chuỗi đầu vào email/password), Integration Testing (kiểm tra chu trình Đăng ký -> Mua hàng -> Xác nhận đơn hàng tại Admin), và Security Testing.

+-------------------------------------------------------------------------------+
|                       KẾT QUẢ KIỂM THỬ TẢI & HIỆU NĂNG                        |
|                                                                               |
| Công cụ: Apache Benchmark (ab) & Google Lighthouse Audit                      |
| - Môi trường test: Node.js v18 LTS, MySQL 8.0, 500 Virtual Users (Concurrency)|
|                                                                               |
| Chỉ số đo lường             | Kết quả đạt được   | Tiêu chuẩn chấp nhận      |
| --------------------------- | ------------------ | ------------------------- |
| Tốc độ phản hồi trung bình  | 142 ms             | < 300 ms (Đạt)            |
| Throughput (Req/sec)        | 845.20 req/s       | > 500 req/s (Đạt)         |
| Tỷ lệ lỗi Request (Failed)  | 0.00%              | < 0.50% (Đạt)             |
| Lighthouse Performance      | 94 / 100           | > 90 (Đạt)                |
| Lighthouse SEO Score        | 100 / 100          | > 90 (Đạt)                |
| Lighthouse Accessibility    | 96 / 100           | > 90 (Đạt)                |
+-------------------------------------------------------------------------------+

Kiểm thử chấp nhận người dùng (User Acceptance Testing - UAT) trên 50 người dùng ngẫu nhiên ghi nhận 98% đánh giá giao diện trực quan, không gặp lỗi nghẽn giao dịch khi đặt hàng. 100% các lỗi nghiêm trọng (Fatal Bugs) về cơ sở dữ liệu đã được xử lý triệt để trước khi nghiệm thu.

Kết quả đạt được

Hệ thống đã hoàn thành 100% các tính năng đặt ra trong bản đặc tả kỹ thuật:

  • Hoàn thiện module xác thực hai luồng độc lập: Người dùng cá nhân và Quản trị viên cửa hàng.
  • Catalog sản phẩm phong phú, chia tách thông minh thành các danh mục riêng biệt: Áo nam, Quần nam, Áo nữ, Quần nữ, Đồ trẻ em.
  • Cơ chế quản lý kho đa chiều với bảng liên kết ProductSizesGalleries giúp một sản phẩm có thể hiển thị nhiều góc chụp với các kích thước thực tế.
  • Bảng điều khiển quản trị (Dashboard) cho phép thực hiện đầy đủ thao tác quản lý đơn hàng, theo dõi doanh thu và duyệt xóa tài khoản linh hoạt.

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

Đổi mới kỹ thuật

  • Kiến trúc dữ liệu tối ưu cho E-Commerce thời trang: Khắc phục nhược điểm dư thừa dữ liệu (Data Redundancy) bằng cách chuẩn hóa các bảng kích thước (ProductSizes) và hình ảnh (Galleries). Việc này giúp giảm kích thước cơ sở dữ liệu tới 38% so với cách lưu trữ mảng JSON trực tiếp vào bảng sản phẩm truyền thống.
  • Xử lý bất đồng bộ triệt để: Tận dụng triệt để cơ chế async/await và Connection Pooling trong kết nối MySQL giúp hệ thống không bị nghẽn I/O khi nhiều người dùng cùng truy vấn sản phẩm trong các khung giờ cao điểm Flash Sale.
  • Tối ưu hóa SEO On-Page cấu trúc: Khác với các ứng dụng Single Page Application (SPA) thuần túy gặp khó khăn trong việc thu thập dữ liệu của bot tìm kiếm, G5 Shop kết hợp cấu trúc semantic HTML5 chuẩn mực, thẻ meta động và cấu trúc URL thân thiện, giúp đạt điểm số SEO tuyệt đối 100/100 trên Google Lighthouse.

So sánh với các giải pháp hiện hành

Đặc tính kỹ thuật G5 Shop (Đề tài) Magento 2 Community Giải pháp No-Code / Webflow
Yêu cầu RAM Server < 256 MB Tối thiểu 2 GB - 4 GB Không kiểm soát server
Độ trễ Database Query 8ms - 15ms 45ms - 120ms (Do EAV) Không thể tùy chỉnh
Khả năng làm chủ mã nguồn 100% mã nguồn mở Phức tạp, khó maintain Phụ thuộc 100% vendor
Chi phí duy trì hàng tháng $5 (VPS cơ bản) $30 - $100 $29 - $200+

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

Kịch bản ứng dụng

Website G5 Shop được thiết kế chuyên biệt để triển khai ngay cho:

  1. Các Local Brand thời trang: Cần một website riêng để khẳng định nhận diện thương hiệu, thoát khỏi sự phụ thuộc và biểu phí hoa hồng cao (15-25%) từ các sàn Shopee/Lazada/TikTok Shop.
  2. Cửa hàng bán lẻ may mặc truyền thống: Chuyển đổi số mô hình kinh doanh, quản lý tập trung đơn hàng, tồn kho và danh sách khách hàng thân thiết trên một dashboard duy nhất.
                             KỊCH BẢN TRIỂN KHAI THỰC TẾ
                                
   +--------------------+       +---------------------------------------------+
   |   NGUỒN TRUY CẬP   |       |             HẠ TẦNG MÁY CHỦ LINUX           |
   |                    |       |                                             |
   | - Desktop Users    | ====> |   [ Nginx Reverse Proxy & SSL (Port 443) ]  |
   | - Mobile Devices   | HTTP  |                         |                   |
   | - Search Engine Bot|       |                         v                   |
   +--------------------+       |   [ PM2 Process Manager / Node.js Engine ]  |
                                |                         |                   |
                                |                         v                   |
                                |   [ MySQL Database Server (Port 3306) ]     |
                                +---------------------------------------------+

Chiến lược triển khai và ROI

  • Yêu cầu phần cứng máy chủ tối thiểu: 1 vCPU, 1GB RAM, 20GB SSD Storage (Hệ điều hành Ubuntu 22.04 LTS).
  • Phần mềm: Nginx làm Reverse Proxy và cấu hình chứng chỉ bảo mật SSL Let's Encrypt, PM2 quản lý tiến trình Node.js chạy ngầm liên tục 24/7.
  • Phân tích hiệu quả kinh tế (ROI):
    • Chi phí đầu tư máy chủ: ~1.500.000 VNĐ/năm.
    • Tiết kiệm chi phí phần mềm quản lý và phí sàn: ước tính 20.000.000 – 40.000.000 VNĐ/năm cho một cửa hàng có doanh thu trung bình 100 triệu/tháng.
    • Thời gian hoàn vốn đầu tư kỹ thuật: dưới 2 tháng.

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

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

  • Chưa tích hợp cơ chế Webhook đồng bộ tự động với các cổng thanh toán điện tử (VNPay, MoMo, ZaloPay) và các đơn vị vận chuyển (Giao Hàng Nhanh, Giao Hàng Tiết Kiệm).
  • Cơ chế tìm kiếm sản phẩm đang sử dụng truy vấn SQL LIKE %...% cơ bản, chưa áp dụng cơ chế Full-Text Search hoặc Search Engine chuyên dụng khi dữ liệu đạt hàng triệu bản ghi.
  • Hệ thống thông báo đơn hàng cho quản trị viên chưa ứng dụng giao thức real-time (WebSocket/Socket.IO).

Hướng phát triển nâng cao

  • Tích hợp Payment Gateway & Logistics API: Tự động hóa hoàn toàn quy trình xác nhận thanh toán và tạo vận đơn giao hàng.
  • Áp dụng Redis Caching: Lưu trữ đệm danh mục sản phẩm và phiên đăng nhập, tăng khả năng chịu tải lên 5.000+ CCU.
  • Hệ thống AI Recommendation: Xây dựng thuật toán gợi ý trang phục thông minh dựa trên lịch sử xem hàng và độ tương đồng hành vi của người dùng (Collaborative Filtering).
  • Phát triển Mobile App: Sử dụng React Native hoặc Flutter tái sử dụng lại 100% hệ thống RESTful API sẵn có của G5 Shop.

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

  • Sinh viên ngành CNTT / Kỹ thuật Phần mềm: Nguồn tài liệu tham khảo hoàn chỉnh về kiến trúc MVC thuần trên Node.js, phương pháp thiết kế CSDL quan hệ chuẩn hóa 3NF và quy trình viết tài liệu đặc tả UML (Use-case, Sequence Diagram).
  • Lập trình viên Web (Developers): Cung cấp bộ khung boilerplate tinh gọn, tối ưu logic xử lý bất đồng bộ và transaction an toàn trong Node.js mà không bị phụ thuộc vào các thư viện ORM phức tạp.
  • Doanh nghiệp thời trang & Chủ cửa hàng bán lẻ: Sở hữu một giải pháp e-commerce hoàn chỉnh, tự chủ dữ liệu khách hàng, tối ưu hóa chi phí vận hành với hiệu năng vượt trội.
  • Giảng viên và Nhà nghiên cứu: Bộ tài liệu thực nghiệm phục vụ công tác giảng dạy học phần Phát triển Ứng dụng Web và Quản trị Dự án Phần mềm theo mô hình thác nước chuẩn mực.

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

1. Yêu cầu cấu hình hệ thống (System Requirements) để triển khai G5 Shop là gì?

Hệ thống yêu cầu máy chủ cài đặt Node.js runtime (phiên bản 16.x hoặc 18.x LTS trở lên) và MySQL Server (phiên bản 8.0 hoặc MariaDB 10.4 trở lên). Môi trường phát triển cục bộ có thể sử dụng trọn gói thông qua XAMPP kết hợp với Node.js runtime trên cả hệ điều hành Windows, macOS hoặc Linux.

2. Hệ thống xử lý giới hạn mở rộng (Scalability Limits) như thế nào khi lượng truy cập tăng vọt?

Khi lượng người dùng đồng thời vượt quá 1.000 CCU, hệ thống có thể mở rộng theo chiều ngang (Horizontal Scaling) bằng cách tách riêng máy chủ Web và máy chủ MySQL. Đồng thời, cấu hình thêm Nginx Load Balancer để phân phối tải đến nhiều Node process và triển khai lớp nhớ đệm Redis để cache các truy vấn danh mục sản phẩm tĩnh.

3. Khả năng tích hợp với các hệ thống quản lý bán hàng (POS) bên thứ ba ra sao?

Nhờ thiết kế kiến trúc chuẩn RESTful API, G5 Shop dễ dàng kết nối với các phần mềm quản lý bán hàng như KiotViet, Sapo hay Haravan thông qua các API endpoints trung gian mà không làm thay đổi cấu trúc database cốt lõi.

4. Quy trình bảo trì và sao lưu cơ sở dữ liệu định kỳ được thực hiện như thế nào?

Cơ sở dữ liệu MySQL của G5 Shop có thể được thiết lập cronjob tự động sao lưu định kỳ hàng ngày thông qua công cụ mysqldump và nén đẩy lên các dịch vụ lưu trữ đám mây (Google Drive / AWS S3). Quá trình cập nhật mã nguồn được thực hiện không gián đoạn dịch vụ thông qua cơ chế Zero-Downtime Reload của PM2.

5. Chi phí triển khai và thời gian thu hồi vốn (ROI Timeline) ước tính là bao nhiêu?

Tổng chi phí thiết lập và vận hành máy chủ ước tính khoảng 100.000 - 150.000 VNĐ/tháng. Đối với một cửa hàng thời trang vừa và nhỏ, việc tự chủ hệ thống giúp tiết kiệm hàng chục triệu đồng tiền phí hoa hồng nền tảng, mang lại điểm hòa vốn và lợi nhuận kinh tế kỹ thuật rõ rệt ngay trong vòng 60 đến 90 ngày đầu tiên vận hành.


Kết luận

Đồ án "Xây dựng Website Bán Quần Áo - G5 Shop" của nhóm sinh viên Trường Đại học Công nghệ Thông tin (ĐHQG-HCM) đã chứng minh tính khả thi, hiệu quả và độ tin cậy cao của việc kết hợp kiến trúc MVC, Node.js và MySQL trong bài toán thương mại điện tử thực tế. Không chỉ giải quyết trọn vẹn các yêu cầu nghiệp vụ phức tạp từ quản lý sản phẩm đa biến thể đến quy trình mua sắm tối ưu, đề tài còn cung cấp nền tảng vững chắc cho các bước phát triển mở rộng trong tương lai. Đây là một giải pháp chuyển đổi số thiết thực, hiệu quả về mặt chi phí và sở hữu giá trị học thuật cũng như ứng dụng thực tiễn cao cho cộng đồng lập trình và doanh nghiệp bán lẻ thời trang.