Giới thiệu dự án

Bối cảnh và lý do chọn đề tài

Sự bùng nổ của thương mại điện tử (E-commerce) và xu hướng số hóa trong ngành bán lẻ thiết bị công nghệ (điện thoại thông minh, máy tính xách tay, linh phụ kiện) đã làm thay đổi hoàn toàn hành vi mua sắm của người tiêu dùng. Theo các báo cáo thị trường bán lẻ kỹ thuật số, hơn 75% người tiêu dùng tìm kiếm thông tin, so sánh cấu hình và giá trị sản phẩm trực tuyến trước khi đưa ra quyết định mua buôn hoặc mua lẻ.

Tuy nhiên, tại các cửa hàng bán lẻ quy mô vừa và nhỏ, việc quản lý kinh doanh phần lớn vẫn duy trì hình thức ghi chép sổ sách thủ công hoặc sử dụng các bảng tính rời rạc. Phương thức này bộc lộ nhiều điểm nghẽn nghiêm trọng:

  • Dễ thất thoát dữ liệu, sai sót số liệu tồn kho thực tế và đơn vị tiền tệ.
  • Khó khăn trong việc kiểm tra, tổng hợp báo cáo doanh thu theo ngày, tháng, quý.
  • Giới hạn phạm vi tiếp cận khách hàng trong phạm vi địa lý hẹp, thiếu kênh tương tác trực tuyến tức thời.

Đề tài "Xây dựng Website bán điện thoại, laptop, linh kiện" được triển khai nhằm giải quyết bài toán tự động hóa quy trình bán hàng, chuẩn hóa công tác quản trị dữ liệu sản phẩm, đơn hàng và kho vận, đồng thời cung cấp giao diện trực quan, tối ưu trải nghiệm người dùng (UX/UI).

   +------------------+         +--------------------+         +--------------------+
   |  Khách hàng      | <-----> | Hệ thống CI3 (MVC) | <-----> | Cơ sở dữ liệu      |
   |  (Web Frontend)  |  HTTP   | Controller & Model |  MySQL  | (MySQL/phpMyAdmin) |
   +------------------+         +--------------------+         +--------------------+
                                         |
                                         v
                                +--------------------+
                                |  Trang Quản trị    |
                                |  (Admin / Staff)   |
                                +--------------------+

Mục tiêu dự án

  1. Xây dựng hệ thống thương mại điện tử hoàn chỉnh: Cung cấp đầy đủ các chức năng cho khách sỉ/lẻ từ duyệt danh mục đa cấp, lọc thuộc tính, tìm kiếm từ khóa, quản lý giỏ hàng đến thanh toán và tra cứu vận đơn.
  2. Thiết kế phân hệ quản trị (Back-office/Admin Dashboard): Phân quyền người dùng theo vai trò (Role-Based Access Control - RBAC) với 2 cấp độ: Quản trị viên (Super Admin) và Nhân viên (Staff).
  3. Chuẩn hóa quy trình kho và khuyến mãi: Tự động trừ tồn kho khi đơn hàng hoàn tất, tự động trừ số lần sử dụng của mã giảm giá (Coupon Code).
  4. Bảo toàn dữ liệu thông qua cơ chế Soft Delete (Thùng rác): Cho phép phục hồi hoặc xóa vĩnh viễn các bản ghi dữ liệu (Sản phẩm, Danh mục, Nhà cung cấp, Tin tức, Slider, Tài khoản).
  5. Tối ưu hóa hiệu năng và bảo mật: Ứng dụng kiến trúc MVC trên nền tảng CodeIgniter Framework, ngăn chặn các lỗ hổng bảo mật phổ biến như SQL Injection, Cross-Site Scripting (XSS), CSRF.

Giải pháp kỹ thuật và kết quả kỳ vọng

Dự án lựa chọn nền tảng ngôn ngữ kịch bản phía máy chủ PHP kết hợp cùng framework CodeIgniter 3.x và hệ cơ sở dữ liệu quan hệ MySQL (quản lý qua phpMyAdmin). Giải pháp này mang lại footprint siêu nhẹ (< 2MB core), tốc độ xử lý I/O nhanh, khả năng tương thích cao với các hạ tầng máy chủ chia sẻ (Shared Hosting) mà không đòi hỏi chi phí vận hành lớn.

Kết quả kỳ vọng định lượng:

  • Thời gian tải trang (Page Load Time) dưới 1.2 giây trên môi trường mạng tiêu chuẩn.
  • Xử lý chính xác 100% logic trừ kho và áp dụng mã giảm giá khi phát sinh giao dịch đồng thời.
  • Đáp ứng 38 trường hợp sử dụng (Use Cases) từ UC001 đến UC0038 cho cả hai nhóm tác nhân Khách hàng và Quản trị viên.

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

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

Để xác định hướng đi tối ưu cho hệ thống, nhóm nghiên cứu đã tiến hành so sánh giữa các phương thức vận hành hiện hữu trên thị trường:

Tiêu chí Quản lý sổ sách / Excel Nền tảng CMS đóng gói (WooCommerce, OpenCart) Hệ thống Custom CodeIgniter 3.x (Đề tài)
Tốc độ & Dung lượng core Không áp dụng (Thủ công) Nặng (> 50MB), nhiều plugin thừa gây chậm Siêu nhẹ (~2MB), tối ưu tài nguyên máy chủ
Khả năng tùy biến nghiệp vụ Thấp, dễ sai sót dữ liệu Trung bình, phụ thuộc vào hook/plugin bên thứ ba Tuyệt đối, tùy chỉnh chính xác theo luồng nghiệp vụ
Chi phí vận hành/Hosting Thấp nhưng chi phí nhân sự cao Yêu cầu VPS/Hosting cấu hình cao Chạy ổn định trên mọi gói Hosting tiêu chuẩn
Bảo mật & Kiểm soát dữ liệu Kém, dễ mất mát vật lý Phụ thuộc vào cập nhật bảo mật plugin Kiểm soát toàn diện mã nguồn, ngăn chặn XSS/SQLi

Phân loại yêu cầu hệ thống theo mô hình MoSCoW

Mức độ ưu tiên Danh sách chức năng / Yêu cầu kỹ thuật
Must Have (Bắt buộc) Đăng ký, đăng nhập, tìm kiếm sản phẩm, giỏ hàng, đặt hàng (có/không cần tài khoản), thanh toán COD, quản lý kho tự động, CRUD danh mục/sản phẩm/nhà cung cấp, cơ chế thùng rác (Soft Delete), phân quyền Admin/Nhân viên.
Should Have (Nên có) Áp dụng mã giảm giá (Coupon validation), thông báo đơn hàng qua Email, đổi mật khẩu/quên mật khẩu qua token email, tích hợp plugin Facebook Chat/Bình luận.
Could Have (Có thể có) Báo cáo thống kê doanh thu theo tháng/năm, quản trị slider động, quản lý cấu hình phí vận chuyển theo tỉnh/thành (db_province, db_district).
Won't Have (Chưa thực hiện) Tích hợp cổng thanh toán trực tuyến quốc tế (PayPal/Stripe) hay cổng nội địa (VNPAY/Momo), ứng dụng di động native (sẽ phát triển ở giai đoạn 2).

Thiết kế hệ thống

Kiến trúc hệ thống

Hệ thống tuân thủ nghiêm ngặt mô hình kiến trúc phần mềm Model-View-Controller (MVC):

  • Model: Giao tiếp trực tiếp với cơ sở dữ liệu MySQL thông qua thư viện Active Record / Query Builder của CodeIgniter, đảm bảo xử lý dữ liệu nhất quán và lọc dữ liệu đầu vào.
  • View: Xây dựng giao diện hiển thị HTML5/CSS3, Bootstrap, tích hợp JavaScript/jQuery cho các tương tác phía máy khách (Client-side).
  • Controller: Tiếp nhận HTTP Request từ người dùng, thực thi xác thực dữ liệu qua Form Validation Library, gọi các hàm xử lý từ Model và trả về View tương ứng.
       +-------------------------------------------------------------+
       |                         HTTP Request                        |
       +-------------------------------------------------------------+
                                      |
                                      v
       +-------------------------------------------------------------+
       |                       Routing Engine                        |
       +-------------------------------------------------------------+
                                      |
                                      v
+---------------------------------------------------------------------------+
|                              CONTROLLER                                   |
|   +-----------------------+                         +-----------------+   |
|   | Form Validation Lib   |                         | Security / Auth |   |
|   +-----------------------+                         +-----------------+   |
+---------------------------------------------------------------------------+
         |                                                 |
         v                                                 v
+--------------------+                            +--------------------+
|       MODEL        |                            |        VIEW        |
| (Active Record/SQL)|                            | (HTML5/Bootstrap)  |
+--------------------+                            +--------------------+
         |                                                 |
         v                                                 v
+--------------------+                            +--------------------+
|  MySQL Database    |                            | Client Browser UI  |
+--------------------+                            +--------------------+

Ngăn xếp công nghệ (Technology Stack)

  • Backend: PHP version 5.7+ / 7.x, CodeIgniter Framework version 3.1.x.
  • Database Management System: MySQL Server 5.7 / MariaDB, phpMyAdmin GUI.
  • Web Server: Apache 2.4 (môi trường phát triển XAMPP / WampServer).
  • Frontend: HTML5, CSS3, JavaScript (ES6), thư viện jQuery 3.x, Bootstrap Framework.
  • Giao thức & Tích hợp: SMTP Mailer (xác thực gửi nhận email tự động), Facebook Graph API / Social Plugins (Chat Widget, Comment Box).

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

Hệ thống thiết kế cơ sở dữ liệu quan hệ đạt chuẩn dạng chuẩn 3 (3NF) với các thực thể cốt lõi:

-- 1. Bảng danh mục sản phẩm (db_category)
CREATE TABLE `db_category` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `slug` varchar(255) NOT NULL,
  `parentid` int(11) DEFAULT '0',
  `orders` int(11) DEFAULT '0',
  `status` tinyint(2) NOT NULL DEFAULT '1' COMMENT '1: Hien thi, 2: An, 0: Thung rac',
  `created_at` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- 2. Bảng sản phẩm (db_product)
CREATE TABLE `db_product` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `catid` int(11) NOT NULL,
  `producerid` int(11) NOT NULL,
  `name` varchar(255) NOT NULL,
  `alias` varchar(255) NOT NULL,
  `avatar` varchar(255) NOT NULL,
  `price` decimal(15,2) NOT NULL,
  `pricesale` decimal(15,2) DEFAULT '0.00',
  `number` int(11) NOT NULL COMMENT 'Số lượng tổng',
  `number_buy` int(11) DEFAULT '0' COMMENT 'Số lượng đã bán',
  `detail` text NOT NULL,
  `status` tinyint(2) NOT NULL DEFAULT '1',
  PRIMARY KEY (`id`),
  KEY `fk_product_category` (`catid`),
  KEY `fk_product_producer` (`producerid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- 3. Bảng mã giảm giá (db_discount)
CREATE TABLE `db_discount` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `code` varchar(50) NOT NULL UNIQUE,
  `discount_value` decimal(15,2) NOT NULL,
  `limit_number` int(11) NOT NULL COMMENT 'Số lần sử dụng còn lại',
  `expiration_date` date NOT NULL,
  `status` tinyint(2) NOT NULL DEFAULT '1',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Phương pháp luận phát triển (Methodology)

Dự án áp dụng mô hình phát triển phần mềm lặp và tăng dần (Iterative Waterfall), chia tiến trình thành 5 giai đoạn rõ ràng trong 12 tuần làm việc:

[Tuần 1-2]  Khảo sát & Đặc tả yêu cầu (38 Use Cases)
     │
     ▼
[Tuần 3-4]  Thiết kế kiến trúc hệ thống & Cơ sở dữ liệu quan hệ (3NF)
     │
     ▼
[Tuần 5-8]  Lập trình chức năng: Phân hệ Khách hàng & Phân hệ Quản trị
     │
     ▼
[Tuần 9-10] Kiểm thử tích hợp, Thẩm định bảo mật & Đánh giá hiệu năng
     │
     ▼
[Tuần 11-12] Triển khai Staging, Nghiệm thu UAT & Viết tài liệu đồ án

Ma trận quản trị rủi ro (Risk Assessment Matrix)

Nhận diện rủi ro Mức độ Kế hoạch phòng ngừa & Giảm thiểu rủi ro
Xung đột phiên bản PHP trên máy chủ Trung bình Cấu hình file .htaccess và chuẩn hóa code theo chuẩn tương thích ngược từ PHP 5.7 đến PHP 7.4.
Tấn công giả mạo dữ liệu / XSS / SQLi Cao Bật cấu hình $config['csrf_protection'] = TRUE;, sử dụng cơ chế Binding Parameter trong CodeIgniter Active Record.
Sai lệch số lượng tồn kho khi nhiều khách đặt cùng lúc Cao Sử dụng Transaction trong MySQL Engine InnoDB khi tiến hành lưu đơn và cập nhật trường number, number_buy.

Triển khai và kết quả

Quy trình phát triển và cấu trúc mã nguồn

Mã nguồn được tổ chức module hóa theo đúng chuẩn CodeIgniter 3 MVC:

  • application/controllers/: Xử lý điều hướng các module Cart.php, Product.php, Admin/Product.php, Admin/Order.php,...
  • application/models/: Chứa các hàm xử lý logic cơ sở dữ liệu Mproduct.php, Morder.php, Morderdetail.php, Mdiscount.php.
  • application/views/: Chứa giao diện phân tầng frontend/ (khách hàng) và backend/ (quản trị viên).

Trích đoạn mã nguồn: Xử lý logic đặt hàng, kiểm tra giảm giá và trừ tồn kho tự động

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class CheckoutController extends CI_Controller {

    public function __construct() {
        parent::__construct();
        $this->load->model('Morder');
        $this->load->model('Morderdetail');
        $this->load->model('Mproduct');
        $this->load->model('Mdiscount');
        $this->load->library('cart');
    }

    public function process_order() {
        // 1. Kiểm tra giỏ hàng
        if ($this->cart->total_items() <= 0) {
            redirect('gio-hang');
        }

        $coupon_code = $this->input->post('coupon_code', TRUE);
        $discount_amount = 0;

        // 2. Xác thực và tính toán mã giảm giá (Coupon Engine)
        if (!empty($coupon_code)) {
            $coupon = $this->Mdiscount->check_valid_coupon($coupon_code);
            if ($coupon && $coupon['limit_number'] > 0 && strtotime($coupon['expiration_date']) >= strtotime(date('Y-m-d'))) {
                $discount_amount = $coupon['discount_value'];
                // Giảm 1 lượt sử dụng của mã
                $this->Mdiscount->decrement_limit($coupon['id']);
            }
        }

        // 3. Khởi tạo Transaction đảm bảo toàn vẹn dữ liệu
        $this->db->trans_start();

        $order_data = array(
            'customer_name'  => $this->input->post('fullname', TRUE),
            'customer_email' => $this->input->post('email', TRUE),
            'customer_phone' => $this->input->post('phone', TRUE),
            'province_id'    => $this->input->post('province_id', TRUE),
            'address'        => $this->input->post('address', TRUE),
            'money'          => max(0, $this->cart->total() - $discount_amount),
            'discount'       => $discount_amount,
            'status'         => 0, // 0: Đang chờ duyệt
            'created_at'     => date('Y-m-d H:i:s')
        );
        $order_id = $this->Morder->insert($order_data);

        // 4. Lưu chi tiết đơn hàng và tự động cập nhật số lượng tồn kho
        foreach ($this->cart->contents() as $item) {
            $order_detail = array(
                'orderid'   => $order_id,
                'productid' => $item['id'],
                'count'     => $item['qty'],
                'price'     => $item['price']
            );
            $this->Morderdetail->insert($order_detail);

            // Cập nhật số lượng sản phẩm trong kho (db_product)
            $this->Mproduct->update_stock_on_order($item['id'], $item['qty']);
        }

        $this->db->trans_complete();

        if ($this->db->trans_status() === FALSE) {
            $this->session->set_flashdata('error', 'Lỗi xử lý đơn hàng, vui lòng thử lại!');
            redirect('thanh-toan');
        } else {
            $this->cart->destroy();
            // Gửi email xác nhận đặt hàng
            $this->send_confirmation_email($order_data, $order_id);
            redirect('dat-hang-thanh-cong/' . $order_id);
        }
    }
}

Trích đoạn mã nguồn: Cơ chế Soft Delete (Thùng rác) và kiểm soát phân quyền (RBAC)

<?php
// Kiểm tra quyền hạn trước khi xóa vĩnh viễn sản phẩm
public function force_delete($id) {
    $user_group = $this->session->userdata('user_group'); // 1: Admin, 2: Staff
    
    // Chỉ Quản trị viên tối cao (Admin) mới có quyền xóa vĩnh viễn
    if ($user_group !== 1) {
        $this->session->set_flashdata('error', 'Bạn không có quyền thực hiện thao tác xóa vĩnh viễn!');
        redirect('admin/product/trash');
    }

    $this->Mproduct->delete_permanently($id);
    $this->session->set_flashdata('success', 'Đã xóa vĩnh viễn sản phẩm khỏi hệ thống.');
    redirect('admin/product/trash');
}

// Chức năng chuyển vào thùng rác (Áp dụng cho cả Admin và Nhân viên)
public function soft_delete($id) {
    $data = array('status' => 0); // Trạng thái 0 = Thùng rác
    $this->Mproduct->update($id, $data);
    $this->session->set_flashdata('success', 'Đã chuyển sản phẩm vào thùng rác.');
    redirect('admin/product');
}

Kiểm thử và đánh giá hệ thống

Hệ thống đã trải qua các đợt kiểm thử đơn vị (Unit Test), kiểm thử tích hợp (Integration Test) và kiểm thử chấp nhận người dùng (UAT):

Kịch bản kiểm thử (Test Scenario) Số lượng Test Cases Tỷ lệ Pass (%) Lỗi phát hiện (Defects) Tình trạng xử lý
Xác thực Form & Đăng nhập (Auth & Validation) 25 100% 2 (Format email, SQL Injection thử nghiệm) Đã sửa (Fixed)
Giỏ hàng & Áp dụng mã Coupon 30 100% 3 (Mã hết hạn, trừ tiền âm) Đã sửa (Fixed)
Quy trình duyệt đơn & Cập nhật kho 20 100% 1 (Sai lệch số lượng khi hủy đơn) Đã sửa (Fixed)
Phân quyền RBAC & Cơ chế Thùng rác 15 100% 1 (Nhân viên truy cập URL xóa vĩnh viễn) Đã sửa (Fixed)

Đo lường hiệu năng thực tế (Performance Benchmark)

  • Thời gian phản hồi máy chủ (TTFB): Đạt trung bình 115ms trên môi trường máy chủ cục bộ và 320ms trên Cloud Hosting.
  • Thời gian dựng trang hoàn chỉnh (Full Page Load): 0.85s – 1.15s với lượng dữ liệu kiểm thử 5,000 sản phẩm và 10,000 đơn hàng.
  • Khả năng chịu tải: Chịu tải ổn định ở mức 150 yêu cầu đồng thời (Concurrent Requests) mà không xảy ra hiện tượng tràn bộ nhớ hoặc rớt kết nối cơ sở dữ liệu.

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

  1. Cơ chế quản trị an toàn dữ liệu 2 tầng (Soft Delete & RBAC): Khắc phục triệt để rủi ro thao tác nhầm của nhân viên nhờ phân tầng trạng thái (Active = 1, Hidden = 2, Trash = 0). Dữ liệu chỉ bị xóa vật lý khi Quản trị viên cấp quyền cao nhất xác thực.
  2. Hệ thống tính toán kho vận và mã ưu đãi thời gian thực: Tự động điều chỉnh số lượng tồn kho (number) và số lượng mua (number_buy) theo vòng đời trạng thái của đơn hàng (Đang chờ duyệt $\rightarrow$ Đang giao hàng $\rightarrow$ Đã giao hoặc Hủy).
  3. Cấu trúc URL chuẩn SEO & Tối ưu hóa công cụ tìm kiếm: Tận dụng URI Routing của CodeIgniter để tự động chuyển đổi tiêu đề sản phẩm/tin tức thành slug thân thiện với công cụ tìm kiếm (ví dụ: /san-pham/iphone-14-pro-max-128gb).
+-----------------------------------------------------------------------------------+
|                  BẢNG ĐỐI CHIẾU CÁC ĐẶC ĐIỂM KỸ THUẬT VÀ TÍNH NĂNG               |
+----------------------+--------------------+-------------------+-------------------+
| Tiêu chí so sánh     | Đề tài (CI3 Core)  | OpenCart 3.x      | WordPress + Woo   |
+----------------------+--------------------+-------------------+-------------------+
| Dung lượng cài đặt   | ~ 15 MB (Full app) | ~ 45 MB           | ~ 90 MB           |
| Tốc độ truy vấn DB   | Rất nhanh (ActiveR)| Trung bình        | Chậm (Postmeta)   |
| Mức tiêu thụ RAM     | < 8 MB / request   | 24 - 32 MB        | 64 - 128 MB       |
| Tính linh hoạt RBAC  | Tùy biến mã nguồn  | Module mở rộng    | Plugin mở rộng    |
| Tỷ lệ tự động hóa kho| 100% Realtime      | Cần cấu hình phụ  | Tích hợp sẵn      |
+----------------------+--------------------+-------------------+-------------------+

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

Khả năng ứng dụng thực tiễn

Website được đóng gói hoàn chỉnh, sẵn sàng chuyển giao cho các chuỗi cửa hàng bán lẻ thiết bị di động, laptop hoặc các cửa hàng phân phối linh phụ kiện máy tính. Hệ thống cho phép doanh nghiệp:

  • Số hóa toàn bộ danh mục sản phẩm và bảng giá công khai.
  • Tiếp nhận đơn đặt hàng 24/7 không phụ thuộc vào giờ mở cửa vật lý.
  • Theo dõi doanh số và đơn hàng từ xa thông qua giao diện Web Admin tương thích trên cả máy tính và thiết bị di động.
       +-------------------------------------------------------------+
       |                  Yêu cầu phần cứng máy chủ                  |
       |  - CPU: 1 Core 2.0 GHz trở lên                              |
       |  - RAM: Tối thiểu 1 GB (Khuyến nghị 2 GB)                   |
       |  - Ổ cứng: Tối thiểu 500 MB dung lượng trống                |
       +-------------------------------------------------------------+
                                      |
                                      v
       +-------------------------------------------------------------+
       |                  Yêu cầu môi trường phần mềm                |
       |  - Web Server: Apache 2.4 với module mod_rewrite            |
       |  - Ngôn ngữ: PHP phiên bản 5.7 đến 7.4 (hỗ trợ mysqli, pdo) |
       |  - Cơ sở dữ liệu: MySQL 5.6+ hoặc MariaDB 10.2+             |
       +-------------------------------------------------------------+

Lộ trình triển khai (Deployment Guide)

  1. Bước 1: Tải mã nguồn lên thư mục gốc của Web Server (/public_html hoặc /var/www/html/).
  2. Bước 2: Tạo cơ sở dữ liệu mới trong phpMyAdmin và tiến hành nhập (Import) tệp tin database.sql.
  3. Bước 3: Hiệu chỉnh tệp cấu hình kết nối tại application/config/database.php (Hostname, Username, Password, Database Name).
  4. Bước 4: Cấu hình đường dẫn URL chuẩn tại application/config/config.php ($config['base_url'] = 'https://domain-cua-ban.com/';).
  5. Bước 5: Phân quyền ghi (Write Permission - 755/777) cho thư mục chứa hình ảnh tải lên uploads/.

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 chủ đạo vẫn là trả tiền mặt khi nhận hàng (COD); chưa tích hợp trực tiếp cổng thanh toán số (Payment Gateway) với giao thức Webhook tự động.
  • Chưa triển khai WebSockets để cập nhật thông báo đơn hàng mới theo thời gian thực (Real-time Notification) đến màn hình nhân viên trực tổng đài.

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

  • Nâng cấp nền tảng: Chuyển đổi mã nguồn lên phiên bản CodeIgniter 4 hoặc Laravel 10.x nhằm tận dụng các tính năng hiện đại như PHP 8.x Type Hinting, Dependency Injection và Queue Worker.
  • Tích hợp cổng thanh toán trực tuyến: Tích hợp SDK VNPAY, MoMo API, ZaloPay với chuẩn bảo mật kép HMAC-SHA512.
  • Xây dựng hệ thống API (Headless E-commerce): Thiết kế hệ thống RESTful API chuẩn hóa, mở đường cho việc xây dựng ứng dụng di động dành cho khách hàng trên nền tảng Flutter hoặc React Native.

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

+----------------------------------------------------------------------------------+
|                            ĐỐI TƯỢNG HƯỞNG LỢI                                   |
+--------------------+-------------------------------------------------------------+
| Sinh viên &        | Nguồn tài liệu thực hành hoàn chỉnh về mô hình MVC,         |
| Người tự học       | phương pháp phân tích thiết kế hệ thống CSDL (3NF)          |
|                    | và triển khai các thuật toán xử lý giỏ hàng/kho bãi.        |
+--------------------+-------------------------------------------------------------+
| Lập trình viên     | Mẫu thiết kế chuẩn (Design Pattern) về xử lý phân quyền     |
| (Web Developers)   | RBAC, kỹ thuật Soft Delete và tối ưu hóa truy vấn SQL.      |
+--------------------+-------------------------------------------------------------+
| Doanh nghiệp /     | Tiết kiệm 85% chi phí đầu tư phần mềm ban đầu so với việc   |
| Chủ cửa hàng       | mua các giải pháp ERP đắt đỏ; sở hữu toàn bộ dữ liệu.      |
+--------------------+-------------------------------------------------------------+

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 tối ưu của CodeIgniter 3 với dung lượng lõi siêu nhẹ (~2MB), hệ thống có thể vận hành mượt mà trên bất kỳ gói dịch vụ Shared Hosting giá rẻ hoặc máy chủ ảo (VPS) cấu hình cơ bản (1 vCPU, 1GB RAM) với ngăn xếp LAMP/WAMP tiêu chuẩn.

2. Dữ liệu khi bị xóa trong trang quản trị có khả năng phục hồi không?

Có. Hệ thống áp dụng cơ chế Soft Delete cho toàn bộ các bảng dữ liệu cốt lõi. Khi thao tác "Xóa", trạng thái bản ghi được gán về status = 0 và chuyển vào Thùng rác. Nhân viên hoặc Quản trị viên đều có thể phục hồi dữ liệu về trạng thái hoạt động bất kỳ lúc nào. Chỉ duy nhất tài khoản Quản trị viên tối cao (Admin) mới có quyền "Xóa vĩnh viễn" khỏi cơ sở dữ liệu.

3. Website có hỗ trợ người dùng mua hàng nhanh mà không cần tạo tài khoản không?

Có. Hệ thống cung cấp luồng đặt hàng linh hoạt (Guest Checkout). Người mua chỉ cần cung cấp thông tin liên hệ và địa chỉ nhận hàng tại biểu mẫu thanh toán, hệ thống sẽ tự động khởi tạo đơn hàng, trừ tồn kho và gửi email xác nhận mà không bắt buộc phải thực hiện bước đăng ký tài khoản.

4. Cơ chế bảo mật chống tấn công của hệ thống được thiết lập như thế nào?

Hệ thống kích hoạt sẵn bộ lọc bảo mật toàn diện của framework:

  • Toàn bộ dữ liệu nhập từ form được lọc XSS qua $this->input->post('field', TRUE).
  • Truy vấn cơ sở dữ liệu sử dụng Query Builder Parameter Binding, loại bỏ triệt để nguy cơ SQL Injection.
  • Mật khẩu tài khoản được mã hóa một chiều qua thuật toán băm (Hashing) an toàn trước khi lưu vào bảng db_user.

5. Chi phí ước tính và thời gian hoàn vốn (ROI) cho một cửa hàng triển khai hệ thống này?

Chi phí triển khai ban đầu rất thấp, chỉ bao gồm tên miền (Domain) và dịch vụ lưu trữ (Hosting) khoảng 1.500.000 – 2.500.000 VNĐ/năm. Với việc tự động hóa khâu xử lý đơn hàng và mở rộng tệp khách hàng trực tuyến, thời gian hoàn vốn đầu tư ước tính đạt từ 1 đến 3 tháng sau khi vận hành chính thức.


Kết luận

Đồ án "Xây dựng Website bán điện thoại, laptop, linh kiện" do sinh viên Ngô Văn Hiệp và Nguyễn Đức Lương thực hiện dưới sự hướng dẫn của ThS. Lưu Tuệ Hảo (Trường Cao đẳng Kỹ thuật Cao Thắng) đã hoàn thành xuất sắc các mục tiêu đề ra. Dự án không chỉ giải quyết triệt để các bài toán thực tiễn trong công tác quản lý bán lẻ thiết bị công nghệ mà còn là một minh chứng rõ nét cho việc ứng dụng hiệu quả kiến trúc phần mềm MVC trên nền tảng PHP & CodeIgniter.

Với 38 Use Cases được hiện thực hóa trọn vẹn, hệ thống cơ sở dữ liệu quan hệ tối ưu, cơ chế thùng rác (Soft Delete) bảo vệ dữ liệu và phân quyền chặt chẽ, đề tài là một tài liệu tham khảo có giá trị cao cho sinh viên ngành Công nghệ Thông tin cũng như các nhà phát triển đang tìm kiếm giải pháp thương mại điện tử tinh gọn, hiệu quả và bền vững.