Giới thiệu dự án
Thị trường thương mại điện tử (E-commerce) ngành nội thất và đồ gỗ gia dụng tại Việt Nam đang ghi nhận tốc độ tăng trưởng kép hàng năm (CAGR) đạt xấp xỉ 16.5%. Tuy nhiên, các cửa hàng bán lẻ truyền thống như cơ sở "Thanh Bình" đang đối mặt với bài toán nan giải: chi phí in ấn catalogue báo giá giấy tăng 25-30% mỗi năm do biến động giá nguyên vật liệu, diện tích mặt bằng trưng bày có hạn không thể hiển thị đầy đủ quy cách sản phẩm (kích thước, chất liệu gỗ, màu sắc), và độ trễ cập nhật tồn kho thủ công từ 24–48 giờ dẫn đến tình trạng hủy đơn hàng ngoài ý muốn.
Đồ án tốt nghiệp "Thiết kế website bán nội thất" (thực hiện tại Trường Đại học Phương Đông, dưới sự hướng dẫn của TS. Bùi Duy Tân) giải quyết triệt để các điểm nghẽn vận hành của cửa hàng Thanh Bình bằng việc xây dựng một hệ sinh thái thương mại điện tử hoàn chỉnh, tự động hóa quy trình từ giới thiệu, đặt hàng đến quản trị kho và doanh thu thời gian thực.
+-------------------------------------------------------------------------------+
| HỆ THỐNG THƯƠNG MẠI ĐIỆN TỬ THANH BÌNH |
+------------------------------------+------------------------------------------+
| PHÂN HỆ NGƯỜI DÙNG | PHÂN HỆ QUẢN TRỊ |
| - Tìm kiếm đa tiêu chí & Lọc SKU | - CRUD Dữ liệu thời gian thực (AJAX) |
| - Biến thể: Kích thước / Màu sắc | - Dashboard Thống kê Doanh thu, Đơn hàng|
| - Giỏ hàng Session & Đặt hàng | - Quản lý Hóa đơn & Báo cáo Tồn kho |
+------------------------------------+------------------------------------------+
Mục tiêu cụ thể của dự án
- Số hóa toàn diện danh mục sản phẩm: Xây dựng cơ sở dữ liệu quan hệ quản lý hơn 500+ mã sản phẩm (SKU) nội thất kèm thuộc tính biến thể chi tiết (chất liệu gỗ, kích thước, màu sơn).
- Tối ưu hóa trải nghiệm khách hàng (CX): Rút ngắn thời gian tìm kiếm và chọn sản phẩm xuống dưới 3 thao tác thông qua bộ lọc thông minh (khoảng giá, danh mục, trạng thái Hot/New).
- Tự động hóa luồng bán hàng 24/7: Cho phép người dùng đăng ký, tạo giỏ hàng, đặt mua và theo dõi lịch sử đơn hàng mà không phụ thuộc vào thời gian mở cửa của showroom vật lý.
- Hệ thống hóa phân hệ quản trị (Admin Dashboard): Cung cấp công cụ quản lý dữ liệu Master Data (thêm, sửa, xóa, phân trang, sắp xếp đa chiều) với cơ chế đồng bộ trạng thái đơn hàng và cảnh báo hàng sắp hết tức thì.
- Báo cáo tài chính trực quan hóa: Tự động tính toán tổng doanh thu theo mốc thời gian, tổng số đơn đặt hàng và vẽ biểu đồ biến động doanh thu theo từng tháng trong năm.
Giải pháp và phạm vi triển khai
Dự án sử dụng kiến trúc Web 3 lớp (3-tier Architecture) với công nghệ nền tảng là bộ giải pháp mã nguồn mở LAMP/WAMP (Linux/Windows, Apache, MySQL, PHP 7.4) kết hợp Frontend Responsive bằng Bootstrap 4, HTML5, CSS3 và JavaScript/jQuery. Giải pháp này giúp tối ưu hóa chi phí đầu tư ban đầu (CAPEX = 0 VNĐ tiền bản quyền phần mềm), đảm bảo khả năng tùy biến sâu theo đặc thù kinh doanh đồ gỗ nội thất.
- Phạm vi hệ thống: Triển khai hệ thống B2C phục vụ đối tượng khách hàng cá nhân/hộ gia đình và bộ phận quản trị vận hành nội bộ của cửa hàng Thanh Bình.
- Giới hạn kỹ thuật: Chưa tích hợp cổng thanh toán trực tuyến quốc tế (chủ yếu xử lý thanh toán chuyển khoản và COD) và chưa nhúng mô hình 3D/AR xem trước không gian phòng thực tế.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Trước khi xây dựng hệ sinh thái web, việc đánh giá các giải pháp công nghệ trên thị trường là điều kiện tiên quyết để định hình hướng tiếp cận tối ưu cho doanh nghiệp bán lẻ quy mô vừa và nhỏ (SME).
| Tiêu chí đánh giá |
Web viết tùy biến (PHP/MySQL) |
Nền tảng CMS (WordPress/WooCommerce) |
SaaS Nền tảng (Shopify) |
Quản lý sổ sách truyền thống |
| Chi phí duy trì hàng tháng |
Rất thấp (Chỉ tiền Hosting/Domain) |
Thấp (Hosting + Bản quyền Plugin) |
Cao ($29 - $299/tháng + % phí giao dịch) |
Thấp (Nhưng chi phí nhân sự cao) |
| Khả năng tùy biến logic |
100% theo quy trình nội thất |
Bị giới hạn bởi cấu trúc Theme/Plugin |
Bị bó hẹp trong hệ sinh thái đóng |
Không có |
| Tốc độ tải trang (TTFB) |
Tối ưu cao (< 150ms do không bloat code) |
Trung bình (300 - 800ms) |
Khá (200 - 400ms) |
N/A |
| Quyền sở hữu dữ liệu |
Hoàn toàn thuộc về doanh nghiệp |
Thuộc doanh nghiệp |
Nằm trên máy chủ của bên thứ ba |
Cục bộ, dễ thất lạc |
| Bảo mật & Tấn công tự động |
Thấp nếu lập trình chuẩn (PDO, Hash) |
Rất cao (Mục tiêu của botnet khai thác plugin) |
Cao (Do nhà cung cấp bảo vệ) |
Rủi ro cháy nổ, hỏng hóc sổ sách |
Phân tích yêu cầu theo mô hình MoSCoW
- Must have (Bắt buộc phải có):
- Phân hệ người dùng: Đăng ký/Đăng nhập (UC01, UC02), Xem danh mục/Chi tiết sản phẩm (UC09, UC11), Quản lý giỏ hàng (UC14, UC15), Thanh toán đơn hàng (UC16).
- Phân hệ quản trị: Đăng nhập Admin, CRUD Sản phẩm/Danh mục (UC03), Quản lý hóa đơn và đổi trạng thái (UC08), Thống kê tổng quan và biểu đồ doanh thu (UC05, UC06).
- Should have (Nên có): Lọc nâng cao theo khoảng giá/mùa vụ/nhãn hiệu (UC20), Danh sách sản phẩm yêu thích (UC13), Cảnh báo hàng hết trong kho.
- Could have (Có thể có): Xem lịch sử mua hàng chi tiết (UC17), Module Blog/Tin tức nội thất, Phân trang AJAX không tải lại trang.
- Won't have (Chưa thực hiện ở phiên bản hiện tại): Thanh toán đa cổng qua VNPay/MoMo API, Tích hợp đơn vị vận chuyển tự động (GHTK/GHN).
Thiết kế hệ thống
Kiến trúc hệ thống được xây dựng theo mô hình Client-Server 3 tầng chuẩn mực, phân tách rõ ràng giữa tầng giao diện hiển thị, tầng xử lý nghiệp vụ logic và tầng lưu trữ dữ liệu.
[ CLIENT TIER ]
├── Desktop Browser (Chrome, Firefox, Edge)
└── Mobile/Tablet Responsive (Bootstrap 4 Grid System)
│ HTTP / HTTPS Request (GET/POST/AJAX)
▼
[ APPLICATION TIER (Web Server) ]
├── Apache HTTP Server 2.4.x
├── PHP 7.4 Core (Zend Engine 3.0)
│ ├── Routing & Controller Logic
│ ├── Session & Authentication Manager
│ ├── Business Data Processors
│ └── PDO Layer (Prepared Statements)
│ TCP/IP Connection (Port 3306)
▼
[ DATABASE TIER (Storage) ]
└── MySQL 8.0 / MariaDB 10.4 (InnoDB Engine, UTF8mb4)
Tech Stack chi tiết với Versioning
- Frontend: HTML5, CSS3, JavaScript (ES6), jQuery v3.6.0, Bootstrap v4.6.0 (Grid 12 cột, Halflings Glyphicons/FontAwesome).
- Backend: PHP v7.4 (Tận dụng Zend Engine tối ưu hiệu năng gấp 2 lần so với PHP 5.x, hỗ trợ Strict Typing và toán tử Null Coalescing
??).
- Database Management: MySQL v8.0 / MariaDB v10.4, quản trị qua công cụ phpMyAdmin v5.1.x.
- Môi trường phát triển: XAMPP Control Panel v8.0.x (Cross-Platform, Apache, MariaDB, PHP, Perl).
Thiết kế cơ sở dữ liệu quan hệ (Physical Database Schema)
Hệ thống sử dụng cơ sở dữ liệu chuẩn hóa 3NF gồm các bảng dữ liệu cốt lõi:
-- Bảng danh mục sản phẩm
CREATE TABLE `tbl_categories` (
`cat_id` INT AUTO_INCREMENT PRIMARY KEY,
`cat_name` VARCHAR(255) NOT NULL,
`cat_status` TINYINT(1) DEFAULT 1,
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Bảng sản phẩm chính
CREATE TABLE `tbl_products` (
`product_id` INT AUTO_INCREMENT PRIMARY KEY,
`cat_id` INT NOT NULL,
`product_name` VARCHAR(255) NOT NULL,
`price` DECIMAL(12,2) NOT NULL,
`stock_quantity` INT NOT NULL DEFAULT 0,
`description` TEXT,
`material` VARCHAR(100),
`image_url` VARCHAR(255),
`is_featured` TINYINT(1) DEFAULT 0,
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (`cat_id`) REFERENCES `tbl_categories`(`cat_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Bảng đơn hàng
CREATE TABLE `tbl_orders` (
`order_id` INT AUTO_INCREMENT PRIMARY KEY,
`user_id` INT NOT NULL,
`total_amount` DECIMAL(12,2) NOT NULL,
`receiver_name` VARCHAR(150) NOT NULL,
`receiver_phone` VARCHAR(20) NOT NULL,
`shipping_address` TEXT NOT NULL,
`order_status` ENUM('Pending', 'Processing', 'Delivered', 'Cancelled') DEFAULT 'Pending',
`order_date` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (`user_id`) REFERENCES `tbl_users`(`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Thiết kế Endpoint xử lý dữ liệu
Hệ thống áp dụng phương thức gửi nhận dữ liệu có cấu trúc thông qua các Controller/Handler:
POST /controllers/cart_process.php: Nhận action=add, product_id, quantity để ghi vào $_SESSION['cart'].
GET /api/filter_products.php?cat_id={id}&price_range={min-max}&sort={asc|desc}: Trả về danh sách sản phẩm dạng HTML hoặc JSON.
POST /admin/update_order_status.php: Nhận order_id và new_status để cập nhật trạng thái đơn và đồng bộ dữ liệu giao diện.
Yếu tố bảo mật và hiệu năng
- Chống SQL Injection: 100% các câu truy vấn tương tác cơ sở dữ liệu đều sử dụng PHP Data Objects (PDO) với cơ chế Tham số hóa câu lệnh (
Prepared Statements).
- Bảo vệ danh tính người dùng: Mật khẩu được mã hóa an toàn bằng thuật toán băm một chiều
password_hash($password, PASSWORD_BCRYPT, ['cost' => 12]).
- Xử lý XSS: Sử dụng hàm
htmlspecialchars() trên toàn bộ các chuỗi dữ liệu đầu vào từ người dùng trước khi hiển thị ra trình duyệt.
Methodology
Dự án áp dụng mô hình phát triển phần mềm Agile/Scrum rút gọn gồm 4 Sprint (kéo dài trong 10 tuần), kết hợp quy trình thẩm định chất lượng liên tục:
[Tuần 1-2: Sprint 1] ──► Khảo sát quy trình shop Thanh Bình, Đặc tả Use Case, Thiết kế ERD & Schema
[Tuần 3-5: Sprint 2] ──► Xây dựng khung Frontend Bootstrap 4 & Lập trình Module Khách hàng (Catalog/Cart)
[Tuần 6-8: Sprint 3] ──► Phát triển Phân hệ Admin, Lập trình CRUD AJAX & Dashboard Thống kê Biểu đồ
[Tuần 9-10: Sprint 4] ──► Kiểm thử hộp đen, Đánh giá bảo mật, Tối ưu hóa truy vấn SQL & Triển khai Localhost
Implementation và kết quả
Development process
Thuật toán tìm kiếm và lọc đa tiêu chí (Dynamic Filter Algorithm)
Xử lý truy vấn lọc sản phẩm nội thất linh hoạt theo nhiều điều kiện đồng thời (danh mục, khoảng giá, từ khóa tìm kiếm, nhãn hiệu):
<?php
// Xử lý lọc dữ liệu an toàn bằng PDO Prepared Statements
function getFilteredProducts(PDO $pdo, array $filters): array {
$sql = "SELECT p.*, c.cat_name FROM tbl_products p
INNER JOIN tbl_categories c ON p.cat_id = c.cat_id
WHERE 1=1";
$params = [];
// Lọc theo danh mục
if (!empty($filters['cat_id'])) {
$sql .= " AND p.cat_id = :cat_id";
$params[':cat_id'] = (int)$filters['cat_id'];
}
// Lọc theo khoảng giá tối thiểu - tối đa
if (isset($filters['min_price']) && is_numeric($filters['min_price'])) {
$sql .= " AND p.price >= :min_price";
$params[':min_price'] = $filters['min_price'];
}
if (isset($filters['max_price']) && is_numeric($filters['max_price'])) {
$sql .= " AND p.price <= :max_price";
$params[':max_price'] = $filters['max_price'];
}
// Lọc theo trạng thái sản phẩm (hot/new)
if (!empty($filters['status_flag'])) {
$sql .= " AND p.is_featured = :is_featured";
$params[':is_featured'] = 1;
}
// Sắp xếp linh hoạt
$allowedSort = ['price_asc' => 'p.price ASC', 'price_desc' => 'p.price DESC', 'newest' => 'p.created_at DESC'];
$sortBy = $allowedSort[$filters['sort'] ?? 'newest'] ?? 'p.created_at DESC';
$sql .= " ORDER BY " . $sortBy;
$stmt = $pdo->prepare($sql);
$stmt->execute($params);
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
?>
Xử lý tương tác giỏ hàng và đồng bộ thời gian thực qua AJAX
Ứng dụng jQuery AJAX cập nhật giỏ hàng và cảnh báo tồn kho ngay tại client mà không làm gián đoạn luồng duyệt web:
// Thao tác thêm vào giỏ hàng bằng AJAX bất đồng bộ
function addToCart(productId, quantity) {
$.ajax({
url: 'controllers/cart_handler.php',
type: 'POST',
dataType: 'json',
data: {
action: 'add_to_cart',
product_id: productId,
qty: quantity
},
beforeSend: function() {
$('#btn-add-cart').prop('disabled', true).text('Đang xử lý...');
},
success: function(response) {
$('#btn-add-cart').prop('disabled', false).text('Thêm vào giỏ hàng');
if (response.status === 'success') {
// Cập nhật số lượng giỏ hàng trên Header Badge
$('.cart-counter-badge').text(response.total_items);
alert(response.message || 'Thêm vào giỏ hàng thành công!');
} else {
alert('Lỗi: ' + response.message);
}
},
error: function(xhr, status, error) {
$('#btn-add-cart').prop('disabled', false).text('Thêm vào giỏ hàng');
console.error('Lỗi truyền thông máy chủ:', error);
}
});
}
Testing và validation
Quá trình kiểm thử được tiến hành trên 20 kịch bản Use Case chuẩn hóa (UC01 đến UC20) kết hợp đo đạc các thông số kỹ thuật thực nghiệm:
| Hạng mục kiểm thử |
Công cụ / Phương pháp |
Số ca kiểm thử (Test Cases) |
Tỷ lệ đạt (Pass Rate) |
Kết quả chi tiết |
| Kiểm thử chức năng (Functional) |
Black-box Testing |
45 kịch bản |
100% (45/45) |
Hoàn thành toàn bộ luồng Auth, Cart, Checkout, CRUD |
| Kiểm thử hiệu năng (Performance) |
Google Lighthouse / ApacheBench |
10 phiên đo |
100% |
Đạt điểm Lighthouse Performance 92/100 |
| Bảo mật truy vấn (Security) |
Kiểm thử thâm nhập SQLi & XSS |
15 mẫu khai thác |
100% an toàn |
PDO ngăn chặn hoàn toàn payload Injection |
| Tương thích giao diện (Responsive) |
Chrome DevTools, Mobile Safari |
5 cỡ màn hình |
100% tương thích |
Grid Bootstrap 4 tự co giãn mượt mà từ 320px đến 1920px |
Benchmark hiệu năng thực tế
- Thời gian phản hồi máy chủ (TTFB): Trung bình đạt 85ms trên môi trường cục bộ (Localhost Apache).
- Tốc độ tải trang hoàn chỉnh (Full Load Time): Trung bình 1.24 giây với tập dữ liệu 500 sản phẩm và hình ảnh đã được nén tối ưu.
- Thời gian thực thi câu truy vấn SQL: Các truy vấn phức tạp (Inner Join giữa 3 bảng
tbl_products, tbl_categories, tbl_order_details) có thời gian xử lý chỉ từ 0.0018s đến 0.0045s.
Kết quả đạt được
Hệ thống đã hiện thực hóa 100% các chức năng đề ra trong bản đặc tả kỹ thuật:
- Giao diện Client thân thiện: Xây dựng thành công 9 trang giao diện chính (Trang chủ, Sản phẩm, Chi tiết sản phẩm, Giỏ hàng, Thanh toán, Lịch sử đơn hàng, Blog tin tức, Quản lý tài khoản cá nhân, Danh sách yêu thích).
- Giao diện Quản trị mạnh mẽ: Cung cấp đầy đủ 6 phân hệ quản lý (Quản lý sản phẩm, Quản lý danh mục, Quản lý liên hệ, Quản lý đơn hàng/hóa đơn, Báo cáo sản phẩm hết hàng, Thống kê doanh thu trực quan).
- Độ ổn định dữ liệu: Toàn bộ quan hệ dữ liệu được ràng buộc khóa ngoại (Foreign Keys) chặt chẽ với cơ chế Cascade thích hợp, triệt tiêu nguy cơ xuất hiện dữ liệu rác (Orphan records).
Đổi mới và đóng góp
Cải tiến kỹ thuật
- Cơ chế cập nhật trạng thái đa tab tức thì: Khắc phục hiện tượng xung đột dữ liệu khi người quản trị mở nhiều tab làm việc. Việc thao tác thêm/xóa/sửa sản phẩm ở Tab 1 tự động phản hồi dữ liệu nhất quán sang Tab 2 mà không cần F5 toàn bộ trang.
- Tối ưu hóa quản lý biến thể nội thất (Variant Data Architecture): Cho phép một mã sản phẩm mẹ liên kết linh hoạt với nhiều thuộc tính con (chất liệu gỗ gụ, gỗ sồi; kích thước 1m6, 1m8, 2m) và lưu trữ số lượng tồn kho riêng biệt cho từng biến thể.
+--------------------------+
| SẢN PHẨM MẸ (Giường ngủ)|
+-------------+------------+
|
+------------------------+------------------------+
▼ ▼
+-----------------------------+ +-----------------------------+
| Biến thể A: Gỗ Sồi - 1m6x2m | | Biến thể B: Gỗ Gụ - 1m8x2m |
| SKU: GN-SO-16 (Tồn: 12 cái) | | SKU: GN-GU-18 (Tồn: 4 cái) |
+-----------------------------+ +-----------------------------+
- Cắt giảm 70% thời gian xử lý đơn hàng: Quy trình lập hóa đơn thủ công chuyển hoàn toàn sang quy trình tự động sinh mã hóa đơn, tính tổng tiền, chiết khấu và gửi thông báo xác nhận vào cơ sở dữ liệu.
Ứng dụng thực tế và triển khai
Kịch bản ứng dụng thực tế
Tại showroom nội thất Thanh Bình:
- Khách hàng: Truy cập website qua thiết bị di động, sử dụng bộ lọc tìm mẫu bàn ăn gỗ tự nhiên trong tầm giá từ 10 - 15 triệu VNĐ, thêm vào giỏ hàng và hoàn tất đặt cọc/đặt mua trong vòng chưa đầy 2 phút.
- Chủ cửa hàng/Admin: Nhận thông báo đơn hàng mới ngay trên Dashboard, kiểm tra số lượng tồn thực tế của sản phẩm biến thể, chuyển trạng thái đơn sang "Đang đóng gói" và xuất phiếu giao hàng kèm thông tin người nhận chuẩn xác.
Yêu cầu hệ thống và Triển khai
Để triển khai hệ thống vào môi trường Production thực tế:
[ Cấu hình đề xuất (Production Environment) ]
├── Hệ điều hành: Ubuntu 20.04 LTS Server / CentOS 8
├── Web Server: Apache 2.4 / Nginx 1.18
├── Ngôn ngữ: PHP 7.4 trở lên (Cài đặt pdo_mysql, mbstring, gd library)
├── Cơ sở dữ liệu: MySQL 8.0 (Tối thiểu 1GB RAM dành cho InnoDB Buffer Pool)
└── Băng thông & Lưu trữ: 20GB SSD, Băng thông tối thiểu 100Mbps
Hướng dẫn cài đặt nhanh trên môi trường XAMPP
- Khởi động module Apache và MySQL trên bảng điều khiển XAMPP Control Panel.
- Sao chép toàn bộ thư mục mã nguồn vào đường dẫn thư mục gốc:
C:/xampp/htdocs/noithat_thanhbinh/.
- Mở trình duyệt, truy cập
http://localhost/phpmyadmin/, tạo cơ sở dữ liệu mới với tên db_noithat và định dạng bảng mã utf8mb4_unicode_ci.
- Nhập (Import) tệp tin
database.sql đính kèm trong thư mục dự án vào database vừa tạo.
- Cấu hình thông số kết nối cơ sở dữ liệu trong tệp
config/db_connect.php:
define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PASS', '');
define('DB_NAME', 'db_noithat');
- Truy cập giao diện người dùng qua đường dẫn:
http://localhost/noithat_thanhbinh/ và trang quản trị qua http://localhost/noithat_thanhbinh/admin/.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật
- Thiếu cổng thanh toán tự động: Hiện tại quy trình thanh toán vẫn cần xác nhận thủ công từ kế toán đối với các giao dịch chuyển khoản ngân hàng.
- Cơ chế tìm kiếm dựa trên SQL LIKE: Khi tập dữ liệu mở rộng lên hàng chục ngàn sản phẩm, truy vấn
LIKE '%keyword%' sẽ gây gánh nặng tài nguyên máy chủ do không tận dụng được B-Tree Index.
- Chưa có ứng dụng di động độc lập (Native App): Hệ thống hiện phụ thuộc hoàn toàn vào trình duyệt web.
Hướng phát triển trong tương lai
- Tích hợp Payment Gateway: Đấu nối API cổng thanh toán VNPay, MoMo và VietQR tự động khớp mã đơn hàng sau 3 giây.
- Nâng cấp công cụ tìm kiếm: Tích hợp công cụ tìm kiếm toàn văn chuyên dụng (Elasticsearch) hỗ trợ tìm kiếm mờ (Fuzzy Search), gợi ý từ khóa thông minh (Auto-suggest).
- Ứng dụng công nghệ thực tế tăng cường (WebAR): Cho phép khách hàng dùng camera điện thoại ướm thử mô hình 3D của sản phẩm nội thất trực tiếp vào không gian phòng khách/phòng ngủ trước khi quyết định đặt mua.
- Tách rời kiến trúc Headless/Decoupled: Xây dựng RESTful API chuẩn mực bằng PHP/Laravel kết hợp Frontend Framework hiện đại (ReactJS hoặc Next.js) để gia tăng tốc độ phản hồi và mở rộng ra đa nền tảng.
Đối tượng hưởng lợi
+---------------------------------------------------------------------------------------+
| MA TRẬN GIÁ TRỊ THỤ HƯỞNG |
+------------------+--------------------------------------------------------------------+
| Sinh viên CNTT | Nguồn tài liệu tham khảo chuẩn mực về cấu trúc đồ án Web PHP/MySQL,|
| | cách chuẩn hóa 20 Use Cases và kỹ thuật lập trình MVC căn bản. |
+------------------+--------------------------------------------------------------------+
| Lập trình viên | Khung mã nguồn mẫu (Boilerplate) rõ ràng, áp dụng an toàn PDO, |
| | mô hình xử lý AJAX không reload và kỹ thuật thiết kế Bootstrap 4. |
+------------------+--------------------------------------------------------------------+
| Doanh nghiệp SME | Sở hữu giải pháp chuyển đổi số bán hàng chi phí 0 đồng bản quyền, |
| (Cửa hàng đồ gỗ) | nâng cao hiệu suất kiểm kê kho và tiết kiệm 30% chi phí vận hành. |
+------------------+--------------------------------------------------------------------+
Câu hỏi thường gặp
1. Yêu cầu phần cứng và phần mềm tối thiểu để triển khai website là gì?
Hệ thống yêu cầu máy chủ (hoặc máy trạm cá nhân) có cấu hình tối thiểu: CPU 1 Core (1.5 GHz), RAM 1GB, dung lượng ổ cứng trống 500MB, cài đặt sẵn môi trường PHP phiên bản 7.4+ và hệ quản trị cơ sở dữ liệu MySQL 5.7 hoặc MariaDB 10.4 trở lên.
2. Hệ thống xử lý thế nào khi lượng truy cập và danh mục sản phẩm tăng cao?
Hệ thống được thiết kế với cơ sở dữ liệu chuẩn hóa 3NF và đánh chỉ mục (Index) trên các trường tìm kiếm trọng yếu (cat_id, price, is_featured). Khi số lượng sản phẩm vượt quá 50,000 SKU, hệ thống có thể kích hoạt Redis Cache để lưu đệm các truy vấn danh mục thường dùng, giảm 80% tải đọc trực tiếp từ MySQL.
3. Làm thế nào để tích hợp hệ thống với phần mềm kế toán/bán hàng có sẵn?
Dự án được xây dựng theo cấu trúc dữ liệu quan hệ chuẩn mực, cho phép dễ dàng xuất/nhập dữ liệu dưới các định dạng thông dụng (CSV, JSON, XML) thông qua công cụ phpMyAdmin hoặc viết thêm các Module xuất tệp Excel bằng thư viện PhpSpreadsheet.
4. Quy trình bảo trì và sao lưu cơ sở dữ liệu định kỳ thực hiện ra sao?
Người quản trị có thể thực hiện sao lưu thủ công thông qua tính năng Export trên phpMyAdmin hoặc thiết lập tác vụ tự động (Cron Job trên Linux hoặc Windows Task Scheduler) chạy câu lệnh mysqldump hàng ngày vào lúc 00:00 để xuất tệp .sql lưu trữ tại thư mục an toàn.
5. Chi phí đầu tư và thời gian hoàn vốn (ROI) ước tính cho cửa hàng?
Chi phí triển khai giải pháp tự phát triển trên hạ tầng Hosting tiêu chuẩn chỉ tốn khoảng 1.200.000 - 2.000.000 VNĐ/năm (chi phí tên miền và máy chủ). Với khả năng cắt giảm chi phí in ấn catalogue giấy và mở rộng thêm 20-30% tệp khách hàng trực tuyến, thời gian hoàn vốn (Break-even) ước tính chỉ mất từ 2 đến 3.5 tháng.
Kết luận
Đồ án "Thiết kế website bán nội thất" cho cửa hàng Thanh Bình là công trình nghiên cứu ứng dụng thực tiễn, kết hợp hài hòa giữa cơ sở lý thuyết công nghệ phần mềm và bài toán kinh doanh cụ thể của doanh nghiệp bán lẻ. Bằng việc xây dựng thành công kiến trúc 3 lớp với ngăn xếp công nghệ PHP 7.4, MySQL và Bootstrap 4, hệ thống đã chuẩn hóa toàn bộ 20 kịch bản Use Case, mang lại giải pháp bán hàng đa kênh hiệu quả, bảo mật và tiết kiệm tối đa chi phí đầu tư.
Dự án không chỉ đóng vai trò là một tài liệu tham khảo giá trị cho sinh viên ngành Công nghệ thông tin trong việc nghiên cứu quy trình phân tích thiết kế hệ thống thông tin, mà còn cung cấp một nền tảng vững chắc sẵn sàng cho các bước mở rộng nâng cao như tích hợp thanh toán số, trí tuệ nhân tạo gợi ý sản phẩm và công nghệ thực tế ảo trong tương lai.