Giới thiệu dự án

Thương mại điện tử (E-Commerce) tại Việt Nam duy trì tốc độ tăng trưởng kép hàng năm (CAGR) trên 20%, tạo áp lực chuyển đổi số mạnh mẽ lên các cửa hàng bán lẻ truyền thống. Các doanh nghiệp thời trang vừa và nhỏ (SMBs) gặp nhiều rào cản khi triển khai hạ tầng số:

  • Phụ thuộc vào các nền tảng mạng xã hội khiến tỷ lệ sót đơn hàng lên tới 15-20%.
  • Chi phí duy trì các nền tảng thương mại điện tử SaaS đóng gói sẵn ở mức cao.
  • Khó khăn trong việc đồng bộ hóa dữ liệu tồn kho theo thời gian thực ($24/7$).

Đề tài "Xây dựng Website bán quần áo" được nghiên cứu và phát triển bởi sinh viên Lê Hữu Phước (Khoa Tin học, Trường Đại học Sư phạm – Đại học Đà Nẵng) dưới sự hướng dẫn của thầy Lê Văn Mỹ. Đề tài tập trung giải quyết bài toán tự động hóa quy trình bán hàng thông qua hệ thống web mã nguồn mở độc lập, tối ưu hóa chi phí vận hành và nâng cao trải nghiệm người dùng.

+-----------------------------------------------------------------------+
|                           MỤC TIÊU DỰ ÁN                              |
+-----------------------------------------------------------------------+
|  1. Xây dựng nền tảng Web động trên kiến trúc PHP & MySQL             |
|  2. Thiết kế CSDL quan hệ chuẩn hóa 3NF cho Catalog & Order           |
|  3. Quản lý trạng thái phiên (Session State Management)               |
|  4. Phân quyền chặt chẽ: Customer, Member, Administrator              |
|  5. Tối ưu hóa hiệu năng truy vấn dữ liệu và hiển thị UI              |
+-----------------------------------------------------------------------+

Hệ thống được phát triển theo mô hình Client-Server truyền thống với kiến trúc 3 lớp (Three-Tier Architecture). Phương pháp này giúp tách biệt tầng giao diện (Presentation Layer), tầng xử lý logic (Business Logic Layer) và tầng dữ liệu (Data Access Layer). Cách tiếp cận này giảm mức độ phụ thuộc tài nguyên phần cứng, cho phép hệ sinh thái vận hành mượt mà trên các gói lưu trữ (Hosting/VPS) tiêu chuẩn mà không đòi hỏi chi phí bảo trì phức tạp.

Dự án giới hạn phạm vi nghiên cứu trong khuôn khổ cổng thông tin bán lẻ đơn kênh (Single-vendor B2C), tập trung vào các luồng nghiệp vụ: duyệt danh mục, quản lý giỏ hàng qua phiên (Session-based Cart), đặt hàng trực tiếp và quản trị sản phẩm/đơn hàng. Các tính năng nâng cao như cổng thanh toán trực tuyến bên thứ ba (Third-party Payment Gateway) và tính năng giao diện thích ứng đa thiết bị (Fully Responsive Web Design) được xếp vào lộ trình nâng cấp ở giai đoạn tiếp theo.


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 giải pháp kinh doanh trực tuyến cho thấy mỗi mô hình đều tồn tại các ưu nhược điểm kỹ thuật riêng biệt:

Tiêu chí Bán hàng qua Mạng xã hội Nền tảng CMS (WordPress/WooCommerce) Nền tảng Custom PHP/MySQL (Đề tài)
Kiểm soát mã nguồn Không (Phụ thuộc nền tảng) Trung bình (Bị ràng buộc bởi Plugin/Theme) Toàn diện 100% (Full Control)
Mức tiêu hao tài nguyên Rất thấp (SaaS) Cao (Nhiều mã nguồn dư thừa, overhead lớn) Rất thấp (Tối ưu hóa mã nguồn trực tiếp)
Tính linh hoạt dữ liệu Kém (Dữ liệu phân mảnh) Trung bình (Dữ liệu nằm trong bảng wp_posts) Cao (Thiết kế Schema chuẩn hóa theo nhu cầu)
Rủi ro xung đột mã Không Cao khi cập nhật phiên bản plugin/core Không có rủi ro xung đột bên thứ ba
Chi phí triển khai Miễn phí Thấp - Trung bình Tối thiểu (Mã nguồn mở miễn phí)

Áp dụng mô hình phân loại yêu cầu MoSCoW, hệ thống xác định các tính năng trọng tâm:

  • Must Have: Catalog sản phẩm theo danh mục, Quản lý giỏ hàng ($_SESSION), Đặt hàng lưu trữ CSDL, Đăng ký/Đăng nhập xác thực người dùng, Bảng điều khiển quản trị (Admin Dashboard: CRUD Sản phẩm, Danh mục, Đơn hàng).
  • Should Have: Tìm kiếm sản phẩm theo từ khóa/danh mục, Quản lý tài khoản khách hàng, Cập nhật trạng thái đơn hàng (Pending, Processing, Completed).
  • Could Have: Slider quảng cáo động (slider), Form liên hệ trực tiếp (lienhe.php), Khóa/Mở khóa tài khoản người dùng (Block user).
  • Won't Have (v1.0): Tích hợp cổng thanh toán trực tuyến (VNPAY/Momo), Đánh giá và chấm điểm sản phẩm (Product Rating/Review).

Thiết kế hệ thống

Kiến trúc hệ thống được xây dựng trên mô hình 3 tầng phân rã rõ ràng:

Hệ thống sử dụng ngăn xếp công nghệ:

  • Ngôn ngữ phía máy chủ (Server-side): PHP (Hỗ trợ từ phiên bản PHP 5.1 đến PHP 7.x/8.x).
  • Hệ quản trị cơ sở dữ liệu (DBMS): MySQL Community Server (Lưu trữ quan hệ với Storage Engine InnoDB/MyISAM).
  • Web Server: Apache HTTP Server tích hợp trong gói XAMPP.
  • Ngôn ngữ giao diện (Client-side): HTML5, CSS3, JavaScript.

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

Hệ thống bao gồm các bảng cơ sở dữ liệu chính được chuẩn hóa nhằm triệt tiêu dư thừa dữ liệu và đảm bảo toàn vẹn tham chiếu:

-- Bảng quản lý thông tin khách hàng
CREATE TABLE `user_account` (
  `id` INT AUTO_INCREMENT PRIMARY KEY,
  `name` VARCHAR(255) NOT NULL,
  `email_account` VARCHAR(255) NOT NULL UNIQUE,
  `pass_word` VARCHAR(255) NOT NULL,
  `phone_number` VARCHAR(11) NOT NULL,
  `address` VARCHAR(255) NOT NULL,
  `create_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
  `update_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- Bảng quản lý danh mục sản phẩm
CREATE TABLE `category` (
  `id` INT AUTO_INCREMENT PRIMARY KEY,
  `name` VARCHAR(255) NOT NULL,
  `slug` VARCHAR(255) NOT NULL,
  `status` VARCHAR(255) DEFAULT 'active',
  `create_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
  `update_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- Bảng lưu trữ chi tiết sản phẩm
CREATE TABLE `product` (
  `id` INT AUTO_INCREMENT PRIMARY KEY,
  `category_id` INT,
  `name` VARCHAR(255) NOT NULL,
  `price` INT(10) NOT NULL,
  `img_product` VARCHAR(255) NOT NULL,
  `quantity` INT NOT NULL DEFAULT 0,
  `descrip` TEXT,
  `company` VARCHAR(255),
  `create_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
  `update_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  INDEX (`category_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- Bảng quản lý đơn đặt hàng
CREATE TABLE `order_product` (
  `id` INT AUTO_INCREMENT PRIMARY KEY,
  `user_id` INT NOT NULL,
  `name` VARCHAR(255) NOT NULL,
  `address` VARCHAR(255) NOT NULL,
  `phone_number` VARCHAR(11) NOT NULL,
  `status` VARCHAR(20) DEFAULT 'Pending',
  `total_mony` DOUBLE NOT NULL,
  `create_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
  INDEX (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- Bảng lưu trữ chi tiết mặt hàng trong đơn
CREATE TABLE `order_details` (
  `id` INT AUTO_INCREMENT PRIMARY KEY,
  `order_id` INT NOT NULL,
  `id_product` INT NOT NULL,
  `name_product` VARCHAR(255) NOT NULL,
  `quantity` INT NOT NULL,
  `Unit_price` DOUBLE NOT NULL,
  INDEX (`order_id`),
  INDEX (`id_product`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Thiết kế Bảo mật và Tối ưu hóa

  • Bảo mật cơ sở dữ liệu: Xác thực phân quyền cấp ứng dụng; ngăn ngừa các nguy cơ chèn mã độc thông qua việc làm sạch chuỗi đầu vào (Data Sanitization) trước khi thực thi truy vấn.
  • Quản lý phiên (Session Security): Tách biệt phiên làm việc giữa tài khoản người dùng (user_account) và bảng điều khiển quản trị (admin_account), tự động xóa phiên (session_destroy()) khi đăng xuất để chống lộ phiên làm việc (Session Hijacking).
  • Tối ưu hóa hiệu năng: Đánh chỉ mục (Index) trên các khóa ngoại user_id, category_id, order_id nhằm duy trì độ phức tạp thuật toán tìm kiếm dữ liệu ở mức $\mathcal{O}(\log N)$.

Methodology

Dự án triển khai theo mô hình Thác nước kết hợp lặp (Iterative Waterfall Model) kéo dài qua 5 giai đoạn:

[Tuần 1-2: Khảo sát & Đặc tả Use-Case]
[Tuần 3-4: Thiết kế CSDL & Mô hình hóa UML]
[Tuần 5-8: Lập trình Backend PHP & Tích hợp UI]
[Tuần 9-10: Kiểm thử Hệ thống & Sửa lỗi]
[Tuần 11-12: Triển khai Localhost & Đóng gói Báo cáo]
Rủi ro kỹ thuật Mức độ Biện pháp giảm thiểu
Mất đồng bộ dữ liệu giỏ hàng Trung bình Sử dụng mảng đa chiều trong Session lưu trữ trực tiếp product_idquantity.
Sai lệch giá trị tổng đơn hàng Cao Tính toán lại đơn giá (Unit_price * quantity) trực tiếp từ DB trước khi ghi nhận vào order_product.
Trùng lặp tên đăng nhập (Username) Thấp Kiểm tra sự tồn tại của tài khoản bằng truy vấn tiền kiểm trước khi thực hiện lệnh INSERT.

Implementation và kết quả

Development process

Cấu trúc thư mục dự án được tổ chức khoa học, tách bạch giữa giao diện người dùng và bảng điều khiển quản trị:

clothing_store/

Xử lý logic Giỏ hàng bằng Session (cart.php)

Giỏ hàng được hiện thực hóa bằng cấu trúc dữ liệu mảng liên kết (Associative Array) lưu trữ trong biến toàn cục $_SESSION['cart']:

<?php
session_start();
require_once 'config.php';

// Xử lý thêm sản phẩm vào giỏ hàng
if (isset($_POST['add_to_cart'])) {
    $product_id = intval($_POST['product_id']);
    $quantity = isset($_POST['quantity']) ? intval($_POST['quantity']) : 1;

    // Kiểm tra tính hợp lệ của sản phẩm từ CSDL
    $query = "SELECT id, name, price, img_product FROM product WHERE id = $product_id LIMIT 1";
    $result = mysqli_query($conn, $query);

    if ($row = mysqli_fetch_assoc($result)) {
        if (!isset($_SESSION['cart'])) {
            $_SESSION['cart'] = array();
        }

        // Cập nhật số lượng nếu sản phẩm đã tồn tại trong giỏ
        if (isset($_SESSION['cart'][$product_id])) {
            $_SESSION['cart'][$product_id]['quantity'] += $quantity;
        } else {
            $_SESSION['cart'][$product_id] = array(
                'name'     => $row['name'],
                'price'    => $row['price'],
                'image'    => $row['img_product'],
                'quantity' => $quantity
            );
        }
        header("Location: cart.php");
        exit();
    }
}

// Xóa sản phẩm khỏi giỏ hàng
if (isset($_GET['action']) && $_GET['action'] == 'delete') {
    $remove_id = intval($_GET['id']);
    if (isset($_SESSION['cart'][$remove_id])) {
        unset($_SESSION['cart'][$remove_id]);
    }
    header("Location: cart.php");
    exit();
}
?>

Xử lý Đặt hàng và Lưu trữ dữ liệu (checkout.php)

Quy trình ghi nhận đơn hàng thực thi thao tác ghi dữ liệu tuần tự vào bảng Master (order_product) và bảng Detail (order_details):

<?php
session_start();
require_once 'config.php';

if (!isset($_SESSION['user_id']) || empty($_SESSION['cart'])) {
    header("Location: index.php");
    exit();
}

$user_id = $_SESSION['user_id'];
$name = mysqli_real_escape_string($conn, $_POST['name']);
$address = mysqli_real_escape_string($conn, $_POST['address']);
$phone = mysqli_real_escape_string($conn, $_POST['phone_number']);

$total_money = 0;
foreach ($_SESSION['cart'] as $item) {
    $total_money += $item['price'] * $item['quantity'];
}

// Ghi nhận đơn hàng vào order_product
$insert_order = "INSERT INTO order_product (user_id, name, address, phone_number, status, total_mony, create_at) 
                 VALUES ($user_id, '$name', '$address', '$phone', 'Pending', $total_money, NOW())";

if (mysqli_query($conn, $insert_order)) {
    $order_id = mysqli_insert_id($conn);

    // Ghi nhận chi tiết từng mặt hàng vào order_details
    foreach ($_SESSION['cart'] as $prod_id => $item) {
        $p_name = mysqli_real_escape_string($conn, $item['name']);
        $p_qty = intval($item['quantity']);
        $p_price = doubleval($item['price']);

        $insert_detail = "INSERT INTO order_details (order_id, id_product, name_product, quantity, Unit_price) 
                          VALUES ($order_id, $prod_id, '$p_name', $p_qty, $p_price)";
        mysqli_query($conn, $insert_detail);
    }

    // Xóa giỏ hàng sau khi hoàn tất đặt hàng
    unset($_SESSION['cart']);
    echo "<script>alert('Đặt hàng thành công!'); window.location.href='index.php';</script>";
}
?>

Testing và validation

Quá trình kiểm thử được thực hiện qua các kịch bản chức năng (Black-box Testing) và kiểm tra hiệu năng trên môi trường máy chủ cục bộ:

+-------------------------------------------------------------------------+
|                  KẾT QUẢ KIỂM THỬ CHỨC NĂNG HỆ THỐNG                    |
+-------------------------------------------------------------------------+
|  TC-01: Đăng ký người dùng mới (Validation dữ liệu)        --> [ PASS ] |
|  TC-02: Đăng nhập và Khởi tạo biến phiên $_SESSION        --> [ PASS ] |
|  TC-03: Thao tác Giỏ hàng (Thêm/Sửa/Xóa/Tính tổng tiền)    --> [ PASS ] |
|  TC-04: Lưu trữ đơn hàng Master-Detail toàn vẹn CSDL       --> [ PASS ] |
|  TC-05: Phân quyền truy cập Module Quản trị (Admin Auth)   --> [ PASS ] |
|  TC-06: CRUD Danh mục & Sản phẩm từ giao diện Admin        --> [ PASS ] |
+-------------------------------------------------------------------------+

Đo lường hiệu năng bằng công cụ kiểm thử tải nội bộ (Local Benchmark Simulation):

  • Thời gian phản hồi trang (TTFB - Time to First Byte): Trung bình $45\text{ms}$ trên môi trường XAMPP cục bộ.
  • Thời gian tải trang hoàn chỉnh: Dưới $350\text{ms}$ đối với trang danh mục hiển thị $20$ sản phẩm.
  • Thời gian thực thi truy vấn SQL (Query Execution Time): Trung bình $1.2\text{ms} - 3.5\text{ms}$ cho các lệnh truy vấn JOIN giữa bảng productcategory.
  • Tỷ lệ xử lý thành công: Đạt $100%$ tính toàn vẹn dữ liệu cho $50$ đơn đặt hàng mô phỏng liên tiếp.

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

Hệ thống đã hiện thực hóa đầy đủ các yêu cầu cốt lõi đề ra trong đặc tả ban đầu:

Hạng mục chức năng Trạng thái cam kết Kết quả thực tế Đánh giá hiệu quả
Quản lý danh mục & sản phẩm Hoàn thành 100% Hoàn thành đầy đủ Cho phép phân loại, thêm mới, sửa giá, tải ảnh
Quản lý phiên giỏ hàng Hoàn thành 100% Hoàn thành đầy đủ Duy trì phiên ổn định, cập nhật số lượng tức thì
Xác thực & phân quyền Hoàn thành 100% Hoàn thành đầy đủ Tách biệt hoàn toàn luồng User và Administrator
Quản lý và xử lý đơn hàng Hoàn thành 100% Hoàn thành đầy đủ Lưu trữ chính xác dữ liệu Master-Detail
Giao diện người dùng Web Đơn giản, trực quan Đạt yêu cầu Bố cục khoa học, dễ thao tác mua sắm

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

  • Kiến trúc dữ liệu tối giản và hiệu quả: Hệ thống tách bạch mối quan hệ $1-N$ giữa bảng order_product (chứa thông tin khách hàng, trạng thái, tổng tiền) và bảng order_details (chứa định danh và đơn giá sản phẩm tại thời điểm mua). Thiết kế này giúp bảo toàn dữ liệu lịch sử ngay cả khi giá niêm yết trong bảng product thay đổi.
  • Cơ chế giỏ hàng độc lập máy khách: Sử dụng Session Server-Side giúp giảm tải dung lượng lưu trữ trên Database, giảm thiểu các truy vấn ghi (Write I/O) không cần thiết khi người dùng liên tục thêm bớt sản phẩm trước khi quyết định thanh toán.
  • Hiệu quả tài nguyên vượt trội:
Mức độ tiêu thụ RAM khi chạy ứng dụng trên máy chủ Web:
    ==> Giảm hơn 85% tài nguyên phần cứng máy chủ.

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

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

Hệ thống phù hợp triển khai cho các cửa hàng thời trang vừa và nhỏ, xưởng may gia công hoặc các hộ kinh doanh cá thể có nhu cầu:

  1. Thiết lập kênh bán hàng trực tuyến độc lập không mất phí hoa hồng sàn thương mại điện tử.
  2. Trực quan hóa danh mục sản phẩm may mặc (áo thun, quần jean, đầm váy) kèm thông tin giá bán và mô tả.
  3. Tiếp nhận và xử lý đơn đặt hàng tập trung qua một bảng điều khiển duy nhất.

Yêu cầu hệ thống và Triển khai

+-----------------------------------------------------------------------+
|                    YÊU CẦU HẠ TẦNG TRIỂN KHAI                         |
+-----------------------------------------------------------------------+
|  Phần cứng tối thiểu:                                                 |
|    - CPU: 1 Core 1.0 GHz trở lên                                      |
|    - Dung lượng RAM: Tối thiểu 512 MB (Khuyến nghị 1 GB)              |
|    - Ổ cứng lưu trữ: Tối thiểu 200 MB dung lượng trống                |
|  Phần mềm máy chủ:                                                    |
|    - Hệ điều hành: Linux (Ubuntu Server/CentOS) hoặc Windows Server   |
|    - Web Server: Apache 2.4+ hoặc Nginx                               |
|    - Ngôn ngữ: PHP 5.1 đến PHP 7.4/8.x (Kích hoạt mysqli extension)   |
|    - Cơ sở dữ liệu: MySQL Server 5.6+ / MariaDB 10.x                  |
+-----------------------------------------------------------------------+

Hướng dẫn cài đặt 4 bước:

  1. Bước 1: Thiết lập môi trường: Cài đặt gói phần mềm XAMPP/LAMP Stack tương ứng trên máy chủ.
  2. Bước 2: Cấu hình mã nguồn: Sao chép toàn bộ thư mục dự án vào thư mục gốc htdocs (đối với XAMPP) hoặc /var/www/html/ (đối với Linux Apache).
  3. Bước 3: Nhập dữ liệu CSDL: Truy cập công cụ phpMyAdmin, tạo cơ sở dữ liệu mới mang tên db_clothing và tiến hành nạp (Import) tệp tin database.sql.
  4. Bước 4: Thiết lập kết nối: Cập nhật thông số kết nối trong tệp config.php:
    $conn = mysqli_connect("localhost", "root", "", "db_clothing");
    if (!$conn) { die("Kết nối CSDL thất bại: " . mysqli_connect_error()); }
    mysqli_set_charset($conn, "utf8");
    

Phân tích Chi phí và Hiệu quả Đầu tư (ROI)

Hạng mục chi phí Tự triển khai Website Đề tài Thuê nền tảng SaaS trọn gói
Phí khởi tạo ban đầu 0 VNĐ (Tự làm chủ mã nguồn) 5.000.000 - 15.000.000 VNĐ
Phí duy trì hàng tháng 0 VNĐ 300.000 - 1.000.000 VNĐ/tháng
Chi phí thuê Hosting/Tên miền ~800.000 VNĐ/năm Đã bao gồm trong phí tháng
Chiết khấu trên đơn hàng 0% 1% - 3% tùy gói dịch vụ
Thời gian hoàn vốn (ROI) 1 - 2 tháng 8 - 12 tháng

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

Hạn chế kỹ thuật

  • Giao diện người dùng chưa tích hợp hoàn chỉnh hệ thống CSS Grid/Flexbox Responsive, dẫn đến trải nghiệm chưa tối ưu trên màn hình điện thoại thông minh (Mobile Viewport).
  • Chưa tích hợp cổng thanh toán trực tuyến tự động; hệ thống phụ thuộc hoàn toàn vào phương thức thanh toán tiền mặt khi nhận hàng (COD).
  • Hệ thống mật khẩu cần nâng cấp lên các thuật toán mã hóa một chiều hiện đại như bcrypt (password_hash()) để tăng cường an toàn dữ liệu.
  • Chưa phát triển tính năng đánh giá, bình luận sản phẩm và theo dõi lịch sử đơn hàng trực tiếp từ giao diện thành viên.

Hướng phát triển

  • Nâng cấp giao diện Mobile-First: Tích hợp thư viện Bootstrap 5 / Tailwind CSS để giao diện tự động thích ứng trên mọi kích thước màn hình.
  • Tích hợp cổng thanh toán trực tuyến: Kết nối API thanh toán của VNPAY, ZaloPay và MoMo thông qua chuẩn chữ ký số bảo mật SHA256.
  • Chuyển đổi kiến trúc RESTful API: Tách biệt hoàn toàn Backend thành hệ thống API nhằm phục vụ xây dựng ứng dụng di động (Mobile App) trên nền tảng Flutter hoặc React Native.
  • Tối ưu hóa bảo mật nâng cao: Chuyển đổi toàn bộ truy vấn sang cơ chế Prepared Statements (PDO / MySQLi Prepared) để ngăn chặn hoàn toàn nguy cơ SQL Injection.

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

+---------------------------------------------------------------------------------+
|                         GIÁ TRỊ MANG LẠI CHO CÁC NHÓM ĐỐI TƯỢNG                 |
+---------------------------------------------------------------------------------+
|  [SINH VIÊN & NGƯỜI TỰ HỌC]                                                     |
|  - Cung cấp mã nguồn tham khảo chuẩn mực về mô hình Web 3 lớp PHP thuần.       |
|  - Hiểu rõ cơ chế quản lý Session Giỏ hàng và luồng xử lý dữ liệu quan hệ.      |
|                                                                                 |
|  [LẬP TRÌNH VIÊN WEB (JUNIOR DEVELOPERS)]                                      |
|  - Cung cấp tài liệu thiết kế cơ sở dữ liệu chuẩn hóa cho luồng E-commerce.     |
|  - Làm nền tảng phát triển mở rộng lên các mô hình MVC hoặc Frameworks.         |
|                                                                                 |
|  [HỘ KINH DOANH & CỬA HÀNG THỜI TRANG]                                          |
|  - Nền tảng bán hàng số hóa với chi phí đầu tư hạ tầng gần như bằng 0.          |
|  - Làm chủ hoàn toàn dữ liệu khách hàng và danh mục hàng hóa.                   |
|                                                                                 |
|  [CƠ SỞ ĐÀO TẠO & GIẢNG VIÊN]                                                  |
|  - Đồ án mẫu trực quan phục vụ công tác giảng dạy môn Lập trình Web/CSDL.      |
+---------------------------------------------------------------------------------+

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

1. Cần chuẩn bị những gì để đưa hệ thống lên mạng Internet công cộng?

Chỉ cần chuẩn bị một tên miền (Domain Name) và một gói lưu trữ Web Hosting hỗ trợ PHP từ 5.6 trở lên cùng cơ sở dữ liệu MySQL. Người quản trị tải toàn bộ mã nguồn lên thư mục public_html qua giao thức FTP, nhập file CSDL qua phpMyAdmin và cập nhật thông số trong file config.php.

2. Hệ thống có thể xử lý đồng thời bao nhiêu lượt truy cập?

Với cấu hình máy chủ VPS tiêu chuẩn (1 vCPU, 1GB RAM), hệ thống PHP thuần tối ưu có thể xử lý mượt mà từ 50 đến 100 người dùng hoạt động đồng thời (Concurrent Users) và khoảng 10.000 lượt xem trang (Pageviews) mỗi ngày mà không bị nghẽn tài nguyên.

3. Làm thế nào để tích hợp thêm phương thức thanh toán trực tuyến?

Lập trình viên có thể tích hợp thư viện cổng thanh toán (ví dụ: VNPAY SDK) vào tệp checkout.php. Khi khách hàng nhấn "Đặt hàng", hệ thống sẽ chuyển hướng người dùng sang trang thanh toán của ngân hàng, nhận kết quả trả về qua URL IPN (Instant Payment Notification) và cập nhật cột status trong bảng order_product thành Paid.

4. Quá trình bảo trì và sao lưu dữ liệu được thực hiện như thế nào?

Dữ liệu có thể được sao lưu định kỳ bằng cách xuất (Export) file .sql từ phpMyAdmin hoặc thiết lập tác vụ tự động (Cron Job) trên máy chủ với câu lệnh mysqldump. Mã nguồn ứng dụng nhỏ gọn giúp việc sao lưu và khôi phục diễn ra trong vài giây.

5. Chi phí duy trì hệ thống hàng năm ước tính là bao nhiêu?

Chi phí vận hành hàng năm chỉ bao gồm phí duy trì Tên miền (khoảng 250.000 - 350.000 VNĐ/năm) và phí Web Hosting gói cơ bản (khoảng 600.000 - 1.200.000 VNĐ/năm). Hệ thống không phát sinh thêm bất kỳ khoản phí cấp phép phần mềm hay phí hoa hồng doanh thu nào.


Kết luận

Đề tài "Xây dựng Website bán quần áo" của sinh viên Lê Hữu Phước đã xây dựng thành công một giải pháp thương mại điện tử thực tiễn, đáp ứng trọn vẹn nhu cầu số hóa quy trình kinh doanh của các cửa hàng may mặc vừa và nhỏ. Bằng việc làm chủ công nghệ cốt lõi PHP & MySQL, hệ thống mang lại hiệu năng ổn định, mức tiêu thụ tài nguyên tối thiểu cùng khả năng kiểm soát dữ liệu toàn diện.

Kết quả của đồ án cung cấp tài liệu kỹ thuật có giá trị tham khảo cao cho sinh viên ngành Công nghệ thông tin, đồng thời mở ra nền tảng vững chắc để tiếp tục tích hợp các công nghệ hiện đại như thanh toán trực tuyến, thiết kế Responsive thích ứng và kiến trúc microservices trong các giai đoạn phát triển tiếp theo.