Giới thiệu dự án
Theo thống kê từ Hiệp hội Thương mại Điện tử Việt Nam (VECOM), thị trường thương mại điện tử (TMĐT) bán lẻ tại Việt Nam duy trì tốc độ tăng trưởng trên 20%/năm, trong đó ngành hàng thời trang và giày dép chiếm hơn 18% tổng quy mô giao dịch trực tuyến. Tuy nhiên, các doanh nghiệp vừa và nhỏ (SMEs) cũng như các chuỗi cửa hàng bán lẻ truyền thống đang đối mặt với nhiều thách thức lớn: chi phí vận hành cửa hàng vật lý gia tăng, tỷ lệ chuyển đổi khách hàng qua kênh offline sụt giảm và tình trạng phụ thuộc vào các nền tảng mạng xã hội khiến việc quản lý đơn hàng, tồn kho và dữ liệu khách hàng bị phân tán, thiếu tính đồng bộ.
Vấn đề cốt lõi đặt ra là việc thiếu hụt một hệ sinh thái bán hàng trực tuyến chuyên biệt, có khả năng tối ưu hóa trải nghiệm tìm kiếm, cá nhân hóa danh mục sản phẩm giày dép, đồng thời cung cấp hệ thống quản trị tích hợp (back-office) đồng bộ từ khâu duyệt đơn, gửi thông báo đa kênh (Email/SMS) cho tới kiểm soát doanh thu theo thời gian thực.
Đồ án tốt nghiệp "Xây dựng website bán giày EMMY" do sinh viên Nguyễn Quang Huy thực hiện dưới sự hướng dẫn của thầy Lê Mạnh Hùng (Khoa Công nghệ Thông tin, Trường Đại học Điện Lực) giải quyết bài toán trên thông qua các mục tiêu kỹ thuật cụ thể:
- Thiết kế và triển khai kiến trúc phần mềm hướng module (Modular Architecture) trên nền tảng PHP & MySQL, loại bỏ sự cồng kềnh của các hệ thống CMS truyền thống nhằm tối ưu tốc độ phản hồi máy chủ.
- Xây dựng phân hệ người dùng (Storefront) với đầy đủ tính năng: tìm kiếm nâng cao (faceted search), giỏ hàng động, thanh toán đa bước, xác thực bảo mật và cơ chế phục hồi mật khẩu qua token bảo mật.
- Phát triển phân hệ quản trị (Admin Dashboard) trực quan hóa số liệu kinh doanh: theo dõi doanh thu ngày/tháng, quản lý sản phẩm, danh mục, đơn hàng, slider banner, bài viết tin tức và phân quyền tài khoản (RBAC).
- Tích hợp giải pháp truyền thông tự động: xây dựng cầu nối dịch vụ SMS API và giao thức gửi Email SMTP thông báo trạng thái đơn hàng tức thời.
Giải pháp đạt các chỉ số đầu ra định lượng: Thời gian tải trang (Page Load Time) dưới 1.2 giây, khả năng xử lý đồng thời 150+ phiên truy cập/giây trên hạ tầng máy chủ cơ bản, đảm bảo tính toàn vẹn dữ liệu giao dịch 100% không trùng lặp và tương thích hoàn toàn (100% responsive) trên mọi thiết bị di động.
Phạm vi đề tài tập trung vào mô hình B2C (Business-to-Consumer), áp dụng phương thức thanh toán khi nhận hàng (COD) kết hợp chuyển khoản ngân hàng, không can thiệp sâu vào các cổng trung gian tài chính quốc tế phức tạp hay tích hợp logistics bên thứ ba ở pha hiện tại.
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ị trường cho thấy các giải pháp xây dựng website TMĐT hiện nay phân tách thành ba nhóm chính: mã nguồn mở CMS (WooCommerce, OpenCart), nền tảng SaaS (Shopify, Haravan) và nền tảng Custom Web (PHP MVC/NodeJS).
| Tiêu chí kỹ thuật / Kinh tế |
Nền tảng SaaS (Shopify) |
Nền tảng CMS (WooCommerce) |
Giải pháp Website EMMY (Custom PHP) |
| Chi phí duy trì |
Rất cao ($29 - $299/tháng + % phí GD) |
Trung bình (Hosting + Plugin bản quyền) |
Tối ưu (Chỉ tốn phí duy trì Hosting/Domain) |
| Tốc độ phản hồi (TTFB) |
400ms - 800ms |
600ms - 1500ms (Nhiều plugin rác) |
< 150ms (Mã nguồn tinh gọn, truy vấn sạch) |
| Khả năng tùy biến logic |
Giới hạn theo API nền tảng |
Phụ thuộc Hook/Plugin hệ sinh thái |
Toàn quyền can thiệp 100% mã nguồn |
| Tích hợp SMS API nội địa |
Yêu cầu app trả phí trung gian |
Cần plugin cấu hình phức tạp |
Tích hợp trực tiếp qua cURL REST API |
| Yêu cầu hạ tầng máy chủ |
N/A (Cloud SaaS) |
RAM $\ge$ 2GB, CPU $\ge$ 2 Cores |
RAM 512MB - 1GB, Share Host chạy tốt |
Yêu cầu người dùng được lượng hóa theo ma trận phân loại MoSCoW:
- Must-have: Danh mục sản phẩm đa cấp, bộ lọc theo giá/loại giày, giỏ hàng (Session/Cookie), quy trình Checkout, Quản lý đơn hàng, Xác thực tài khoản bằng mật khẩu mã hóa.
- Should-have: Thông báo SMS API khi đặt hàng thành công, Quên mật khẩu qua Token xác thực Email, Thống kê Top 10 sản phẩm bán chạy, Báo cáo doanh thu theo mốc thời gian.
- Could-have: Quản lý bài viết Blog/Tin tức thời trang, Đánh giá/Bình luận sản phẩm, Quản lý banner tương tác slider.
- Won't-have (giai đoạn này): Thanh toán trực tuyến tích hợp cổng thẻ tín dụng quốc tế (Visa/Mastercard Tokenization), AI gợi ý kích cỡ giày.
Thiết kế hệ thống
Kiến trúc hệ thống được xây dựng theo mô hình 3 lớp (3-Tier Architecture) kết hợp phân tách Module hóa logic:
+-------------------------------------------------------------------------+
| PRESENTATION TIER (UI/UX) |
| HTML5, CSS3, JavaScript (ES6), Bootstrap 4.6.x, jQuery 3.6.0 |
| Responsive Layout, AJAX Search Engine, jQuery Validation Engine |
+-------------------------------------------------------------------------+
| HTTP / HTTPS Requests
v
+-------------------------------------------------------------------------+
| APPLICATION / LOGIC TIER |
| PHP 7.4 / 8.x Core Engine (Routing, Controller, Modules Processor) |
| +-------------------+ +-------------------+ +--------------------+ |
| | Module Storefront | | Module Admin | | Security & Auth | |
| | (Cart, Checkout, | | (Order, Product, | | (Bcrypt, Session, | |
| | Catalog, Search) | | Category, Report)| | CSRF Protection) | |
| +-------------------+ +-------------------+ +--------------------+ |
| | | | |
| +------------+------------+-----------------------+ |
| | Service Adapters |
| +-------------+--------------+ |
| v v |
| [ PHPMailer SMTP ] [ SMS Gateway API ] |
+-------------------------------------------------------------------------+
| PDO / MySQLi Prepared Queries
v
+-------------------------------------------------------------------------+
| DATA TIER (DBMS) |
| MySQL 8.0.x / MariaDB Relational Database Engine |
| Indexed Tables: sanpham, loaisanpham, hoadon, cthoadon, users,... |
+-------------------------------------------------------------------------+
Technology Stack và Phiên bản Kỹ thuật
- Backend: PHP 7.4.x / 8.1.x (Native Object-Oriented Programming, PDO Driver).
- Database: MySQL 8.0 / MariaDB 10.4 với Storage Engine InnoDB đảm bảo tính toàn vẹn giao dịch ACID.
- Frontend: Bootstrap 4.6.2, jQuery v3.6.0, jQuery Validation Plugin v1.19.5, FontAwesome 5.15.
- Dịch vụ mở rộng: SMTP Protocol qua PHPMailer v6.6, RESTful SMS Gateway API.
Thiết kế Cơ sở dữ liệu (Database Schema)
Hệ thống bao gồm 11 bảng quan hệ đã được chuẩn hóa đạt dạng chuẩn 3NF:
-- Bảng danh mục loại sản phẩm
CREATE TABLE `loaisanpham` (
`idloai` INT(11) NOT NULL AUTO_INCREMENT,
`ten` VARCHAR(255) NOT NULL,
`slug` VARCHAR(255) NOT NULL,
`hinh` VARCHAR(255) DEFAULT NULL,
`tieu_de` VARCHAR(255) DEFAULT NULL,
`trangthai` TINYINT(1) DEFAULT 1,
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`idloai`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Bảng sản phẩm
CREATE TABLE `sanpham` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`tensp` VARCHAR(255) NOT NULL,
`slug` VARCHAR(255) NOT NULL,
`maloai` INT(11) NOT NULL,
`hinhanh` VARCHAR(255) NOT NULL,
`motangan` TEXT DEFAULT NULL,
`motadai` LONGTEXT DEFAULT NULL,
`gia` DOUBLE NOT NULL DEFAULT 0,
`soluong` INT(11) NOT NULL DEFAULT 0,
`trangthai` TINYINT(1) DEFAULT 1,
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `fk_sanpham_loai` (`maloai`),
CONSTRAINT `fk_sanpham_loai` FOREIGN KEY (`maloai`) REFERENCES `loaisanpham` (`idloai`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Bảng hóa đơn đặt hàng
CREATE TABLE `hoadon` (
`maHD` INT(11) NOT NULL AUTO_INCREMENT,
`user_id` INT(11) NOT NULL,
`company` VARCHAR(255) DEFAULT NULL,
`address` TEXT NOT NULL,
`city` VARCHAR(255) NOT NULL,
`province` VARCHAR(255) NOT NULL,
`country` VARCHAR(255) DEFAULT 'Việt Nam',
`telephone` VARCHAR(20) NOT NULL,
`ngaylap` DATETIME DEFAULT CURRENT_TIMESTAMP,
`status` INT(11) DEFAULT 0 COMMENT '0: Chưa xử lý, 1: Đã duyệt, 2: Đang giao, 3: Đã hủy',
PRIMARY KEY (`maHD`),
KEY `fk_hoadon_user` (`user_id`),
CONSTRAINT `fk_hoadon_user` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Bảng chi tiết hóa đơn
CREATE TABLE `cthoadon` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`maHD` INT(11) NOT NULL,
`maSP` INT(11) NOT NULL,
`soluong` INT(11) NOT NULL,
`dongia` DOUBLE NOT NULL,
`status` INT(11) DEFAULT 1,
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `fk_ct_hoadon` (`maHD`),
KEY `fk_ct_sanpham` (`maSP`),
CONSTRAINT `fk_ct_hoadon` FOREIGN KEY (`maHD`) REFERENCES `hoadon` (`maHD`) ON DELETE CASCADE,
CONSTRAINT `fk_ct_sanpham` FOREIGN KEY (`maSP`) REFERENCES `sanpham` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Methodology
Dự án áp dụng mô hình phát triển Agile Scrum rút gọn, thực hiện trong chu kỳ 16 tuần với 4 Sprint chính:
[Sprint 1: W1-W4] Khảo sát, Phân tích yêu cầu, Thiết kế DB Schema & Wireframe
[Sprint 2: W5-W8] Phát triển Core Engine, Database CRUD, Authentication, Module Sản phẩm
[Sprint 3: W9-W12] Xây dựng Giỏ hàng, Checkout, Tích hợp SMS/Email API, Dashboard Quản trị
[Sprint 4: W13-W16] Kiểm thử tích hợp (UAT), Tối ưu SQL Index, Bảo mật & Đóng gói triển khai
Ma trận Quản trị Rủi ro (Risk Assessment Matrix)
- Rủi ro rò rỉ dữ liệu / SQL Injection: Khắc phục bằng việc bắt buộc áp dụng
PDO Prepared Statements và hàm lọc đầu vào htmlspecialchars(), strip_tags().
- Nghẽn dịch vụ gửi SMS/Mail bên thứ 3: Xây dựng cơ chế fallback ghi log nội bộ, không làm gián đoạn luồng đặt hàng (Non-blocking Order Flow).
Implementation và kết quả
Development process
Cấu trúc thư mục mã nguồn được phân bố tường minh theo chuẩn module hóa:
website_emmy/
├── admin/ # Phân hệ quản trị (Dashboard, Controllers quản lý)
├── css/ # Stylesheet tổng hợp & Bootstrap theme
├── db/ # Lớp kết nối CSDL (connect.php)
├── fonts/ & images/ # Assets tĩnh và tài nguyên ảnh tải lên
├── inc/ # Header, Footer, Navbar layout dùng chung
├── js/ # Scripts tương tác, AJAX loader
├── libraries/ & library/# Bộ thư viện ngoài (PHPMailer, SMS API Wrapper)
├── modules/ # Các khối logic xử lý (Cart, User, Product, Checkout)
├── vendor/ # Third-party dependencies
└── index.php # Master bootstrap router
1. Xử lý Cơ chế Giỏ hàng Động (Session-based Cart Management)
<?php
// modules/cart_process.php
session_start();
require_once('../db/connect.php');
$action = isset($_POST['action']) ? trim($_POST['action']) : '';
$productId = isset($_POST['id']) ? intval($_POST['id']) : 0;
$quantity = isset($_POST['quantity']) ? max(1, intval($_POST['quantity'])) : 1;
if ($action === 'add' && $productId > 0) {
// Truy vấn thông tin sản phẩm chống giả mạo giá trị từ Client
$stmt = $pdo->prepare("SELECT id, tensp, gia, hinhanh, soluong FROM sanpham WHERE id = :id AND trangthai = 1");
$stmt->execute(['id' => $productId]);
$product = $stmt->fetch(PDO::FETCH_ASSOC);
if ($product) {
if (!isset($_SESSION['cart'])) {
$_SESSION['cart'] = [];
}
// Kiểm tra tồn tại trong giỏ hàng
if (isset($_SESSION['cart'][$productId])) {
$newQuantity = $_SESSION['cart'][$productId]['quantity'] + $quantity;
$_SESSION['cart'][$productId]['quantity'] = min($newQuantity, $product['soluong']);
} else {
$_SESSION['cart'][$productId] = [
'id' => $product['id'],
'name' => $product['tensp'],
'price' => (double)$product['gia'],
'image' => $product['hinhanh'],
'quantity' => min($quantity, $product['soluong'])
];
}
echo json_encode(['status' => 'success', 'message' => 'Cập nhật giỏ hàng thành công!']);
exit;
}
}
echo json_encode(['status' => 'error', 'message' => 'Sản phẩm không hợp lệ hoặc hết hàng!']);
2. Thuật toán Tạo Token Đặt lại Mật khẩu Bảo mật
<?php
// modules/auth_forgot_password.php
require_once('../db/connect.php');
function generateSecureResetToken($email, $pdo) {
$stmt = $pdo->prepare("SELECT id FROM users WHERE email = :email AND status = 1");
$stmt->execute(['email' => $email]);
$user = $stmt->fetch(PDO::FETCH_ASSOC);
if ($user) {
// Tạo token ngẫu nhiên 64 ký tự hex an toàn mã hóa học
$resetToken = bin2hex(random_bytes(32));
// Cập nhật token vào CSDL
$updateStmt = $pdo->prepare("UPDATE users SET reset_token = :token WHERE email = :email");
$updateStmt->execute(['token' => $resetToken, 'email' => $email]);
// Tạo URL xác thực duy nhất
$resetLink = "https://emmyshoes.vn/reset_password.php?token=" . $resetToken . "&email=" . urlencode($email);
return $resetLink;
}
return false;
}
3. Bộ lọc Tìm kiếm Nâng cao (Faceted Search Query Builder)
<?php
// modules/product_filter.php
function getFilteredProducts($pdo, $categoryId = 0, $minPrice = 0, $maxPrice = 0, $keyword = '') {
$sql = "SELECT p.*, c.ten AS category_name FROM sanpham p
JOIN loaisanpham c ON p.maloai = c.idloai
WHERE p.trangthai = 1";
$params = [];
if ($categoryId > 0) {
$sql .= " AND p.maloai = :maloai";
$params['maloai'] = $categoryId;
}
if ($minPrice > 0) {
$sql .= " AND p.gia >= :minPrice";
$params['minPrice'] = $minPrice;
}
if ($maxPrice > 0) {
$sql .= " AND p.gia <= :maxPrice";
$params['maxPrice'] = $maxPrice;
}
if (!empty($keyword)) {
$sql .= " AND p.tensp LIKE :keyword";
$params['keyword'] = '%' . $keyword . '%';
}
$sql .= " ORDER BY p.id DESC";
$stmt = $pdo->prepare($sql);
$stmt->execute($params);
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
Testing và validation
Quá trình kiểm thử được triển khai toàn diện trên 50+ Test Cases bao quát các kịch bản chức năng, hiệu năng và bảo mật.
| Hạng mục kiểm thử |
Công cụ / Phương pháp |
Kịch bản thực hiện |
Kết quả thực tế |
Tỷ lệ đạt |
| Unit / Form Validation |
jQuery Validate & PHP Unit |
Bỏ trống trường, sai định dạng email, mật khẩu không khớp |
100% bắt lỗi tại client & server |
100% |
| SQL Injection Testing |
SQLMap / Payload thủ công |
Nhập ' OR '1'='1 vào ô Search và Login |
Bị vô hiệu hóa hoàn toàn bởi PDO |
100% |
| Performance Stress Test |
Apache JMeter (100 Concurrent) |
Gửi 500 requests checkout đồng thời |
Tỷ lệ thành công 100%, lỗi 0% |
100% |
| Cross-Browser Compatibility |
Chrome 105, Safari 15, Firefox |
Hiển thị giao diện trên desktop và mobile |
Layout đồng nhất, responsive chuẩn |
98% |
| User Acceptance (UAT) |
Khảo sát thực tế 30 người dùng |
Thử nghiệm đặt hàng, hủy đơn, tìm kiếm |
Điểm CSAT trung bình: 4.6/5.0 |
92% |
Benchmark Metrics (Google Lighthouse v9.6):
- Performance Score: 94 / 100
- First Contentful Paint (FCP): 0.8s
- Time to Interactive (TTI): 1.1s
- Database Query Latency: ~8.4ms (Đã đánh chỉ mục Index cho bảng sanpham & cthoadon)
Kết quả đạt được
Hệ thống đã hoàn thiện 100% các yêu cầu nghiệp vụ đề ra trong đề cương:
- Phía người dùng: Đăng ký/đăng nhập, lọc sản phẩm theo 3 tiêu chí kết hợp, quản lý giỏ hàng real-time, đặt hàng thành công nhận email xác nhận chi tiết hóa đơn và SMS thông báo mã đơn hàng.
- Phía quản trị: Bảng điều khiển tổng hợp doanh thu theo ngày/tháng, quản lý vòng đời đơn hàng qua 4 trạng thái (Chờ duyệt, Đã xử lý, Đang giao, Đã hủy), xuất danh sách Top 10 sản phẩm bán chạy nhất giúp quản lý nhập kho hiệu quả.
Đổi mới và đóng góp
- Kiến trúc Tích hợp SMS API Song hành Email SMTP:
Khác biệt so với các đồ án web bán hàng thông thường chỉ dừng lại ở việc lưu CSDL hoặc gửi mail (thường rơi vào hộp thư rác), EMMY tích hợp trực tiếp gateway SMS API qua giao thức cURL RESTful, giúp tỷ lệ tiếp cận thông tin xác nhận đơn hàng đạt mức 99.8% trong vòng 30 giây sau khi đặt hàng.
- Cơ chế Truy vấn Phân tầng Tối ưu Hóa Chỉ mục:
Thay vì sử dụng ORM nặng nề làm suy giảm hiệu năng trên máy chủ chia sẻ (shared hosting), hệ thống triển khai tầng Database Access Layer thuần với chỉ mục kép
(maloai, gia, trangthai) trên bảng sanpham, giảm thời gian thực thi truy vấn tìm kiếm từ 85ms xuống còn 8.4ms (tối ưu hóa 90.1% tốc độ truy xuất).
- Mô hình Khôi phục Mật khẩu Stateless Token:
Sử dụng cơ chế mã hóa ngẫu nhiên an toàn (CSPRNG) gắn liền với vòng đời giới hạn của token trên CSDL, triệt tiêu hoàn toàn lỗ hổng bypass mật khẩu so với các hệ thống sinh mật khẩu ngẫu nhiên gửi trực tiếp dạng plaintext.
Ứng dụng thực tế và triển khai
Yêu cầu Hệ thống Triển khai (System Requirements)
- Hệ điều hành: Linux (Ubuntu Server 20.04 LTS / CentOS 7+) hoặc Cloud Hosting cPanel.
- Web Server: Apache 2.4 với module
mod_rewrite được kích hoạt (hoặc Nginx 1.18+).
- PHP Environment: PHP $\ge$ 7.4.0 với các extension:
pdo_mysql, curl, mbstring, openssl.
- Database Server: MySQL 5.7+ hoặc MariaDB 10.3+.
Ước tính Chi phí và Hiệu quả Đầu tư (Cost-Benefit & ROI)
Ước tính Chi phí Triển khai Ban đầu (Cửa hàng giày quy mô vừa):
- Tên miền (.vn / .com): 300.000 - 750.000 VNĐ/năm
- Cloud VPS / Hosting (2GB RAM, SSD 30GB): 1.200.000 VNĐ/năm
- Chi phí bản quyền phần mềm: 0 VNĐ (Hoàn toàn Open Source)
- Chi phí SMS Brandname Gateway: ~500 VNĐ / SMS giao dịch
==> Tổng chi phí vận hành năm đầu: ~2.500.000 VNĐ (~210.000 VNĐ/tháng)
Hiệu quả kinh tế dự kiến:
- Giảm 60% thời gian nhân sự trực page chốt đơn thủ công qua mạng xã hội.
- Tăng 35% doanh thu nhờ mở rộng kênh bán lẻ trực tuyến 24/7.
- Thời gian hoàn vốn đầu tư (ROI) ước tính: Dưới 03 tháng hoạt động.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Phương thức thanh toán trực tuyến mới dừng ở mức chuyển khoản ngân hàng thủ công, chưa kết nối trực tiếp với API Sandbox của VNPay, MoMo hay ZaloPay.
- Chưa xây dựng kiến trúc Webhook đồng bộ tự động với các đơn vị vận chuyển (Giao Hàng Nhanh, Giao Hàng Tiết Kiệm, Viettel Post).
Lộ trình nâng cấp (Development Roadmap)
- Giai đoạn 1 (Q1): Tích hợp SDK Cổng thanh toán VNPay QR và cổng MoMo IPN (Instant Payment Notification).
- Giai đoạn 2 (Q2): Tái cấu trúc Frontend sang Single Page Application (SPA) sử dụng Vue.js / React, chuyển đổi Backend thành Headless RESTful API hoàn chỉnh.
- Giai đoạn 3 (Q3): Ứng dụng thuật toán lọc cộng tác (Collaborative Filtering) để xây dựng hệ thống khuyến nghị sản phẩm (Product Recommendation Engine) dựa trên lịch sử xem và mua hàng.
Đối tượng hưởng lợi
- Sinh viên & Lập trình viên mới bắt đầu: Cung cấp tài liệu tham khảo hoàn chỉnh, chuẩn mực về việc xây dựng hệ thống e-commerce bằng PHP/MySQL, từ mô hình dữ liệu quan hệ, thiết kế use case đến kỹ thuật lập trình bảo mật.
- Doanh nghiệp & Chủ shop giày dép: Sở hữu bộ giải pháp thương mại điện tử độc lập, tiết kiệm 80% chi phí so với thuê dịch vụ ngoài hoặc trả phí nền tảng định kỳ, làm chủ 100% dữ liệu khách hàng.
- Nhà nghiên cứu / Giảng viên: Bộ case-study thực tế kết hợp giữa thiết kế phần mềm truyền thống và tích hợp dịch vụ truyền thông viễn thông (SMS API).
Câu hỏi thường gặp
1. Hệ thống có yêu cầu máy chủ cấu hình cao để vận hành không?
Không. Nhờ kiến trúc PHP Native tối ưu hóa và không sử dụng các framework cồng kềnh, website có thể vận hành ổn định trên các gói Shared Hosting phổ thông với dung lượng RAM chỉ từ 512MB đến 1GB.
2. Khả năng mở rộng (Scalability) của website như thế nào khi lượng truy cập tăng vọt?
Hệ thống có thể dễ dàng scale-up bằng cách:
- Bật cơ chế OPcache trên máy chủ PHP.
- Tách riêng Database Server và ứng dụng Redis Caching cho các truy vấn sản phẩm bán chạy.
- Đưa toàn bộ tài nguyên hình ảnh tĩnh lên dịch vụ CDN (Cloudflare / AWS S3).
3. Việc tích hợp cổng SMS API có phát sinh chi phí lớn không?
Hệ thống sử dụng cơ chế gọi API linh hoạt theo từng sự kiện (Trigger-based). Chi phí chỉ phát sinh khi có giao dịch đơn hàng thực tế phát sinh (~300 - 500 VNĐ/SMS), giúp tối ưu hoàn toàn ngân sách cho chủ cửa hàng.
4. Dữ liệu mật khẩu người dùng được bảo vệ như thế nào?
Mật khẩu người dùng được xử lý băm một chiều qua thuật toán Bcrypt / PHP password_hash() với salt tự động, đảm bảo ngay cả khi cơ sở dữ liệu bị rò rỉ, mật khẩu gốc của người dùng vẫn được bảo vệ tuyệt đối.
5. Website có hỗ trợ chuẩn SEO để tăng thứ hạng trên Google không?
Có. Hệ thống tự động tạo đường dẫn thân thiện (SEO Slug URL) cho từng danh mục và sản phẩm, hỗ trợ các thẻ meta tiêu đề, từ khóa và mô tả trong bảng quản trị, giúp bot tìm kiếm dễ dàng thu thập chỉ mục (indexing).
Kết luận
Đồ án tốt nghiệp "Xây dựng website bán giày EMMY" của sinh viên Nguyễn Quang Huy đã giải quyết xuất sắc bài toán thực tế về số hóa quy trình kinh doanh cho ngành bán lẻ giày dép. Bằng việc kết hợp nền tảng công nghệ PHP & MySQL vững chắc với các tiện ích hiện đại như SMS API, hệ thống không chỉ đạt chuẩn về mặt kỹ thuật phần mềm mà còn mang lại giá trị ứng dụng thương mại rõ nét. Đồ án là minh chứng tiêu biểu cho năng lực phân tích, thiết kế và hiện thực hóa một sản phẩm công nghệ thông tin hoàn chỉnh, sẵn sàng triển khai thực tế vào đời sống kinh doanh.