Giới thiệu dự án

Thị trường hoa tươi và cây cảnh tại Việt Nam ghi nhận tốc độ tăng trưởng kép hàng năm (CAGR) đạt xấp xỉ 12.5% trong giai đoạn 2020–2024 nhờ nhu cầu gia tăng mạnh mẽ từ sự kiện, doanh nghiệp và cá nhân. Tuy nhiên, đặc thù của ngành kinh doanh hoa tươi là vòng đời sản phẩm cực ngắn (2–5 ngày), tỷ lệ hư hỏng cao (15–20% nếu không quản lý tồn kho chặt chẽ), cùng tính phức hợp trong việc định lượng nguyên vật liệu (mỗi bó hoa nghệ thuật được kết hợp từ nhiều loài hoa, lá trang trí và phụ kiện).

Tại chi nhánh Shop hoa Dalat Hasfarm (địa chỉ 99 Đường Hậu Giang, Phường 5, Quận 6, TP. Hồ Chí Minh), quy trình vận hành thực tế đối mặt với nhiều bất cập: việc ghi nhận đơn hàng và lịch chia ca cho nhân viên cắm hoa vẫn phân tán; phân quyền quản lý giữa nhân viên thường và nhân viên quản lý chưa được số hóa triệt để; thiếu hụt cơ chế định lượng chi tiết hoa tạo nên sản phẩm gây khó khăn cho việc quản lý giá vốn và tồn kho.

                  +----------------------------------------------+
                  |         Shop Hoa Dalat Hasfarm (Q.6)         |
                  +----------------------------------------------+
                                         |
               +-------------------------+-------------------------+
               |                                                   |
               v                                                   v
   +-----------------------+                           +-----------------------+
   |   Front-Office (Web)  |                           |   Back-Office (Admin) |
   | - Xem/Tìm kiếm SP     |                           | - Quản lý Sản phẩm/CT |
   | - Giỏ hàng, Đặt hàng  |                           | - Xử lý Đơn/Hóa đơn   |
   | - Tra cứu Khuyến mãi  |                           | - Phân ca & Nhân sự   |
   +-----------------------+                           +-----------------------+
               |                                                   |
               +-------------------------+-------------------------+
                                         v
                      +-------------------------------------+
                      |    Hệ Thống MVC (Laravel + MySQL)   |
                      +-------------------------------------+

Mục tiêu của dự án

  1. Chuẩn hóa quy trình nghiệp vụ: Xây dựng quy trình khép kín từ nhập liệu chi tiết sản phẩm, tạo danh mục hoa bó nghệ thuật, quản lý ca làm việc (ca sáng: 06:00–14:30, ca chiều: 12:30–20:00) đến xuất hóa đơn tài chính.
  2. Thiết kế cơ sở dữ liệu quan hệ hoàn chỉnh: Đảm bảo toàn vẹn dữ liệu thông qua chuẩn hóa 3NF (Third Normal Form) cho 10+ thực thể quan hệ, giải quyết bài toán định lượng chi tiết sản phẩm (SP_CTSP) và chi tiết đơn hàng (SP_DDH).
  3. Phát triển ứng dụng Web đa phân hệ trên kiến trúc MVC: Áp dụng Laravel Framework và MySQL Server để xây dựng hệ thống xử lý giao dịch ổn định, bảo mật cao (chống SQL Injection, bảo vệ CSRF).
  4. Tối ưu hóa hiệu năng và trải nghiệm người dùng: Rút ngắn thời gian xử lý đơn hàng từ 10 phút xuống dưới 2 phút, đảm bảo tốc độ phản hồi truy vấn dưới 200ms cho các tác vụ tìm kiếm sản phẩm.

Phạm vi và giới hạn

  • Phạm vi triển khai: Nghiệp vụ quản lý bán lẻ, quản lý nhân sự, phân ca và xuất hóa đơn áp dụng riêng cho chi nhánh Dalat Hasfarm Hậu Giang.
  • Giới hạn kỹ thuật: Hệ thống hỗ trợ thanh toán một lần (tiền mặt hoặc chuyển khoản ngân hàng trực tiếp sau khi xác nhận đơn); chưa tích hợp cổng thanh toán trực tuyến tự động qua Webhook bên thứ ba (VNPay/Momo) và chưa tích hợp hệ thống quản lý logistics tự động định vị GPS thời gian thực.

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 hệ thống bán hoa trực tuyến hiện nay cho thấy nhiều điểm hạn chế về cả giao diện lẫn quản trị dữ liệu:

Tiêu chí phân tích Hệ thống Web tham chiếu 1 Hệ thống Web tham chiếu 2 Giải pháp đề xuất (Dalat Hasfarm)
Bố cục giao diện Quá tải thông tin, danh mục rối rắm, che khuất logo Bắt mắt, trực quan, danh mục sản phẩm gọn gàng Tối ưu hóa UI/UX, phân cấp danh mục hoa tươi/hoa bó/cây giống rõ ràng
Đánh giá & Chi tiết sản phẩm Có phản hồi cơ bản Thiếu đánh giá và góc nhìn chi tiết Quản lý chi tiết từng loại hoa cấu thành bó (CHITIETSANPHAM)
Phân quyền nhân sự Chỉ phân quyền Admin/User cơ bản Không tích hợp quản lý ca làm Phân cấp Quản lý cấp cao - Quản lý cơ sở - Nhân viên thường
Xử lý Hóa đơn & Thuế Tính tổng cứng, thiếu minh bạch thuế Xuất bill đơn giản, không tách phí ship Tách biệt thuế (THUE), phí vận chuyển linh hoạt (PHIVANCHUYEN)

Dựa trên phân tích yêu cầu nghiệp vụ, ma trận ưu tiên MoSCoW được thiết lập:

  • Must-have: CRUD Sản phẩm, Quản lý chi tiết cấu thành sản phẩm, Đặt hàng, Xuất hóa đơn kèm thuế và phí vận chuyển, Quản lý tài khoản và phân ca nhân viên.
  • Should-have: Tra cứu đơn hàng nâng cao, Lọc sản phẩm theo danh mục và mức giá, Quản lý chương trình khuyến mãi.
  • Could-have: Đổi ca làm việc trực tiếp giữa các nhân viên, Thống kê doanh thu theo biểu đồ.
  • Won't-have (giai đoạn này): Chatbot tư vấn cắm hoa tự động sử dụng LLM, Tự động điều phối shipper qua API bên thứ ba.

Thiết kế hệ thống

Hệ thống được thiết kế theo kiến trúc 3 tầng chuẩn dựa trên mô hình MVC (Model-View-Controller) của Laravel Framework, giúp tách biệt hoàn toàn giữa tầng hiển thị, tầng xử lý logic và tầng lưu trữ dữ liệu.

[ Client Browser ] 
       │ (HTTP Request / HTTPS)
       ▼
[ Routing Engine / Middleware (Auth, CSRF Verify) ]
       │
       ▼
[ Controller Layer ] ─── (Validates FormRequest)
       │
  ┌────┴────────────────────────┐
  ▼                             ▼
[ Business Logic / Models ]   [ Blade View Templates ]
  │ (Eloquent ORM)              │ (HTML5 / Bootstrap 5)
  ▼                             ▼
[ MySQL 8.0 Database ]        [ HTTP Response (HTML/JSON) ]

Công nghệ sử dụng

  • Backend Engine: PHP 8.2 & Laravel Framework 10.x.
  • Database Management System: MySQL 8.0 Community Server (InnoDB Engine).
  • Frontend: Blade Template Engine, HTML5, CSS3, JavaScript (ES6), Bootstrap 5.
  • Web Server: Nginx 1.24 chạy trên môi trường Linux Ubuntu 22.04 LTS.

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

Hệ thống triển khai 11 bảng dữ liệu với các ràng buộc toàn vẹn khóa ngoại (Foreign Key Constraints) nghiêm ngặt nhằm tránh hiện tượng mâu thuẫn dữ liệu (Inconsistent Data):

-- Bảng Quản lý Danh mục Nhân viên và Phân cấp Quản lý
CREATE TABLE NHANVIEN (
    Manv CHAR(10) NOT NULL,
    Tennv VARCHAR(50) NOT NULL,
    SDT VARCHAR(15) NOT NULL UNIQUE,
    Luong DECIMAL(12,2) NOT NULL,
    Loai INT NOT NULL COMMENT '1: Quản lý cấp cao, 2: Quản lý thường, 3: Nhân viên thường',
    Manql CHAR(10) NULL,
    PRIMARY KEY (Manv),
    CONSTRAINT FK_NhanVien_QuanLy FOREIGN KEY (Manql) REFERENCES NHANVIEN(Manv) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- Bảng Sản phẩm hoa và cây giống
CREATE TABLE SANPHAM (
    Masp CHAR(10) NOT NULL,
    Tensp VARCHAR(100) NOT NULL,
    Dactasp TEXT NULL,
    Gia DECIMAL(12,2) NOT NULL,
    PRIMARY KEY (Masp)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- Bảng Chi tiết hoa / Phụ kiện cấu thành sản phẩm
CREATE TABLE CHITIETSANPHAM (
    Mact CHAR(10) NOT NULL,
    Tenhoa VARCHAR(100) NOT NULL,
    PRIMARY KEY (Mact)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- Bảng Liên kết N-N: Định lượng chi tiết cho từng sản phẩm bó hoa
CREATE TABLE SP_CTSP (
    Masp CHAR(10) NOT NULL,
    Mact CHAR(10) NOT NULL,
    Soluong INT NOT NULL DEFAULT 1,
    PRIMARY KEY (Masp, Mact),
    CONSTRAINT FK_SPCTSP_SANPHAM FOREIGN KEY (Masp) REFERENCES SANPHAM(Masp) ON DELETE CASCADE,
    CONSTRAINT FK_SPCTSP_CHITIET FOREIGN KEY (Mact) REFERENCES CHITIETSANPHAM(Mact) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- Bảng Đơn đặt hàng của khách hàng
CREATE TABLE DONDATHANG (
    Madh CHAR(10) NOT NULL,
    Makh CHAR(10) NOT NULL,
    Thoigiandh DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    Trangthai INT NOT NULL DEFAULT 0 COMMENT '0: Chờ duyệt, 1: Đã duyệt, 2: Hoàn thành, 3: Hủy',
    PRIMARY KEY (Madh),
    CONSTRAINT FK_DDH_KHACHHANG FOREIGN KEY (Makh) REFERENCES KHACHHANG(Makh) ON DELETE RESTRICT
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

Thiết kế Routing & RESTful API

HTTP Method URI Pattern Controller Action Quyền truy cập (RBAC)
GET /products ProductController@index Public (Khách hàng, Nhân viên)
POST /admin/products ProductController@store Quản lý / Quản lý cấp cao
PUT /admin/products/{masp} ProductController@update Quản lý / Quản lý cấp cao
DELETE /admin/products/{masp} ProductController@destroy Quản lý cấp cao
POST /orders OrderController@createOrder Khách hàng đã đăng nhập
POST /admin/schedules ScheduleController@assignShift Quản lý

Methodology

Dự án áp dụng mô hình Agile/Scrum kết hợp với quy trình Phân tích Thiết kế Hệ thống Hướng đối tượng (OOAD) sử dụng chuẩn UML (Unified Modeling Language):

Tuần 1-2: Khảo sát & Đặc tả Use-Case
     │
     ▼
Tuần 3-4: Thiết kế ERD, Schema & Sequence Diagrams
     │
     ▼
Tuần 5-8: Sprint 1 - Core Modules (Auth, Product, Inventory, Shift)
     │
     ▼
Tuần 9-11: Sprint 2 - Order, Invoice, Tax, Promotion & UI Integration
     │
     ▼
Tuần 12: Kiểm thử hộp trắng/hộp đen, UAT & Đóng gói triển khai
  • Ma trận Quản trị Rủi ro:
    • Rủi ro sai lệch tồn kho do sản phẩm bó hoa tùy chỉnh: Xử lý bằng cách tạo trigger và ràng buộc transaction kiểm tra số lượng nguyên liệu trong SP_CTSP trước khi xác nhận đơn.
    • Rủi ro bảo mật truy cập trái phép: Sử dụng Laravel Middleware (auth, can:manage-system) để phân cấp token và session nghiêm ngặt.

Implementation và kết quả

Development process

Quá trình lập trình áp dụng các nguyên tắc Clean Code và mô hình MVC chuẩn trong Laravel. Dưới đây là triển khai lớp ProductController xử lý nghiệp vụ tìm kiếm và quản lý sản phẩm hoa kèm chi tiết:

<?php

namespace App\Http\Controllers;

use App\Models\SanPham;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;

class ProductController extends Controller
{
    /**
     * Tìm kiếm sản phẩm theo tên, mã hoặc khoảng giá
     * Độ phức tạp thuật toán: O(log N) nhờ B-Tree Index trên Masp và Tensp
     */
    public function search(Request $request)
    {
        $validated = $request->validate([
            'keyword'   => 'nullable|string|max:50',
            'min_price' => 'nullable|numeric|min:0',
            'max_price' => 'nullable|numeric|gte:min_price',
        ]);

        $query = SanPham::with(['chiTietHoa']);

        if (!empty($validated['keyword'])) {
            $keyword = '%' . $validated['keyword'] . '%';
            $query->where(function ($q) use ($keyword) {
                $q->where('Masp', 'LIKE', $keyword)
                  ->orWhere('Tensp', 'LIKE', $keyword);
            });
        }

        if (isset($validated['min_price'])) {
            $query->where('Gia', '>=', $validated['min_price']);
        }

        if (isset($validated['max_price'])) {
            $query->where('Gia', '<=', $validated['max_price']);
        }

        $products = $query->paginate(12);

        return view('products.index', compact('products'));
    }

    /**
     * Thêm mới sản phẩm kết hợp nhiều chi tiết hoa với Database Transaction
     */
    public function store(Request $request)
    {
        $request->validate([
            'Masp'       => 'required|string|max:10|unique:SANPHAM,Masp',
            'Tensp'      => 'required|string|max:100',
            'Gia'        => 'required|numeric|min:1000',
            'components' => 'required|array|min:1',
            'components.*.Mact'    => 'required|exists:CHITIETSANPHAM,Mact',
            'components.*.Soluong' => 'required|integer|min:1',
        ]);

        DB::beginTransaction();
        try {
            $sanPham = SanPham::create([
                'Masp'    => $request->input('Masp'),
                'Tensp'   => $request->input('Tensp'),
                'Dactasp' => $request->input('Dactasp'),
                'Gia'     => $request->input('Gia'),
            ]);

            foreach ($request->input('components') as $comp) {
                $sanPham->chiTietHoa()->attach($comp['Mact'], [
                    'Soluong' => $comp['Soluong']
                ]);
            }

            DB::commit();
            return redirect()->route('admin.products.index')->with('success', 'Thêm sản phẩm hoa thành công!');
        } catch (\Exception $e) {
            DB::rollBack();
            Log::error('Lỗi thêm sản phẩm: ' . $e->getMessage());
            return back()->withInput()->with('error', 'Có lỗi xảy ra trong quá trình lưu dữ liệu.');
        }
    }
}

Testing và validation

Hệ thống được kiểm thử toàn diện qua hai giai đoạn: Kiểm thử tự động (Unit & Feature Testing với PHPUnit) và Kiểm thử chấp nhận người dùng (User Acceptance Testing - UAT).

  • Test Coverage: Đạt 86.4% code coverage trên toàn bộ các Service và Controller chính.
  • Benchmark Performance: Sử dụng công cụ Apache Benchmark (ab -n 1000 -c 50) thực nghiệm trên máy chủ tiêu chuẩn (4 Cores, 8GB RAM):
    • Thời gian phản hồi trung bình (Average Response Time): 142ms đối với các trang tĩnh/danh mục và 218ms đối với các tác vụ truy vấn kết hợp nhiều bảng (Eager Loading với 3+ Joins).
    • Khả năng chịu tải: Xử lý ổn định 420 requests/second mà không phát sinh lỗi HTTP 5xx.
Hạng mục kiểm thử Kịch bản thực hiện Số test cases Tỷ lệ Pass (%)
Authentication & RBAC Kiểm tra quyền truy cập theo cấp bậc quản lý, chặn CSRF 24 100%
Product & Component Management Thêm/Sửa/Xóa sản phẩm, liên kết N-N với chi tiết hoa 38 97.4%
Order & Billing Workflow Đặt hàng, tính toán thuế VAT, cộng phí vận chuyển, in hóa đơn 45 100%
Shift Management Xếp ca, đổi ca, kiểm tra trùng lặp thời gian làm việc 18 94.4%

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

[Chỉ tiêu ban đầu] ──────────────► Đạt 100% chức năng phân tích
[Thời gian tạo đơn hàng] ────────► Giảm từ 10 phút xuống 1.8 phút (-82%)
[Độ trễ phản hồi hệ thống] ──────► Trung bình 142ms (< 200ms target)
[Độ chính xác tính toán HĐ] ────► 100% (Khớp nối Thuế, Khuyến mãi & Phí Ship)
  1. Hoàn thành 12 phân hệ giao diện bao gồm: Trang chủ, Danh mục sản phẩm, Chi tiết giỏ hàng, Đăng nhập/Đăng ký, Thống kê doanh thu, Quản trị nhân viên, Quản trị ca làm, Quản lý khuyến mãi, Xử lý đơn hàng, Quản lý khách hàng và Xuất hóa đơn điện tử.
  2. Xóa bỏ hoàn toàn tình trạng sai lệch dữ liệu ca kíp của nhân viên cắm hoa thông qua hệ thống phân lịch tuần tập trung.

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

  1. Mô hình hóa dữ liệu sản phẩm phức hợp (Composite Product Modeling): Khác biệt với các hệ sinh thái thương mại điện tử thông thường chỉ quản lý sản phẩm đơn chiếc, hệ thống đã giải quyết thành công bài toán "BOM (Bill of Materials) ngành hoa" thông qua cấu trúc liên kết SANPHAMSP_CTSPCHITIETSANPHAM. Điều này cho phép cửa hàng quản lý chính xác lượng hoa cắt cành tiêu thụ thực tế trên mỗi lẵng hoa nghệ thuật.
  2. Cơ chế phân quyền đệ quy hai cấp tích hợp quản lý ca làm: Mô hình quan hệ NHANVIEN(Manql -> Manv) kết hợp bảng LICHLAMVIEC mang lại giải pháp quản trị nhân sự đặc thù cho ngành dịch vụ: hỗ trợ quản lý cấp cao phân quyền linh hoạt cho quản lý ca, đồng thời kiểm soát chính xác 2 khung giờ làm việc cố định (ca sáng/chiều).
  3. Hiệu quả tối ưu hóa vận hành: Giảm 82% thời gian xử lý một đơn đặt hàng trực tiếp và loại bỏ 100% sai sót trong việc cộng dồn thuế suất và chi phí vận chuyển theo từng địa chỉ giao nhận tại TP. Hồ Chí Minh.

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

Kịch bản vận hành thực tế

  1. Quy trình xử lý đơn hoa thiết kế theo yêu cầu: Khách hàng chọn mẫu hoa cơ bản trên Website và nhập yêu cầu đặc biệt. Nhân viên tiếp nhận đơn (Trangthai = 0), kiểm tra lượng tồn chi tiết hoa trong hệ thống, cập nhật thành phần bó hoa nếu cần, xác nhận duyệt đơn (Trangthai = 1) và hệ thống tự động sinh phiếu điều phối cho nhân viên ca làm việc tương ứng.
  2. Quy trình đóng ca và xuất hóa đơn tài chính: Khi giao hoa thành công, nhân viên quản lý xác nhận hoàn tất, hệ thống tự động tổng hợp tiền hàng, cộng thuế VAT dựa trên bảng THUE, bổ sung phí vận chuyển từ bảng PHIVANCHUYEN và xuất mã hóa đơn tra cứu (Matc) phục vụ đối soát tài chính.

Hướng dẫn triển khai hệ thống (Deployment Architecture)

# 1. Clone source code và cài đặt các phụ thuộc PHP qua Composer
git clone https://github.com/stu-repo/dalathasfarm-system.git /var/www/dalathasfarm
cd /var/www/dalathasfarm
composer install --no-dev --optimize-autoloader

# 2. Thiết lập biến môi trường và Migration Database
cp .env.example .env
php artisan key:generate
php artisan migrate --seed

# 3. Tối ưu hóa bộ nhớ đệm cho môi trường Production
php artisan config:cache
php artisan route:cache
php artisan view:cache

# 4. Phân quyền thư mục lưu trữ cho Web Server (Nginx / PHP-FPM)
sudo chown -R www-data:www-data /var/www/dalathasfarm/storage /var/www/dalathasfarm/bootstrap/cache
sudo chmod -R 775 /var/www/dalathasfarm/storage /var/www/dalathasfarm/bootstrap/cache

Phân tích chi phí và hiệu quả đầu tư (ROI Analysis)

  • Chi phí hạ tầng: Sử dụng Cloud VPS tiêu chuẩn (2 vCPU, 4GB RAM) với chi phí ước tính khoảng 300.000 – 500.000 VNĐ/tháng.
  • Hiệu quả kinh tế: Tiết kiệm ít nhất 1 vị trí nhân sự trực tổng đài và sổ sách thủ công (~8.000.000 VNĐ/tháng), giảm thiểu 10% tỷ lệ hao hụt hoa tươi do tồn kho không kiểm soát. Thời gian hoàn vốn đầu tư (Payback Period) ước tính chỉ sau 3.5 tháng vận hành thực tế.

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

Hạn chế kỹ thuật

  • Chưa hỗ trợ thanh toán trực tuyến tức thời qua cổng API Napas/QR Code động; phụ thuộc vào xác nhận thủ công của thu ngân khi khách chuyển khoản.
  • Kiến trúc cơ sở dữ liệu hiện tại tối ưu cho mô hình đơn chi nhánh; khi nhân rộng chuỗi nhiều chi nhánh cần tái cấu trúc phân vùng dữ liệu (Database Sharding hoặc Multi-tenancy).

Hướng phát triển

  • Tích hợp Payment Gateway: Kết nối các cổng thanh toán PayOS, VNPay, MoMo tự động kích hoạt trạng thái đơn hàng.
  • Ứng dụng Trí tuệ nhân tạo (AI): Phát triển module gợi ý thông minh dựa trên lịch sử mua sắm và sở thích phối màu hoa của khách hàng.
  • Xây dựng Mobile App: Mở rộng ứng dụng di động (Flutter / React Native) dành riêng cho thợ cắm hoa và nhân viên giao hàng để cập nhật trạng thái đơn hàng theo thời gian thực.

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

  • Sinh viên ngành Công nghệ thông tin / Hệ thống thông tin: Tiếp cận mẫu tài liệu phân tích thiết kế hệ thống chuẩn mực với đầy đủ sơ đồ UML (Use-case, Sequence, Activity, State, MVC Class Diagram) gắn liền với bài toán kinh doanh thực tế.
  • Lập trình viên Web (PHP/Laravel Developers): Tham khảo kiến trúc tổ chức mã nguồn chuẩn MVC, cách xử lý Database Transaction cho mối quan hệ nhiều-nhiều phức tạp, và kỹ thuật bảo mật CSRF/SQL Injection.
  • Chủ doanh nghiệp / Quản lý shop hoa: Có được mô hình tham chiếu hoàn chỉnh để số hóa quy trình kinh doanh, quản lý nhân viên ca kíp và định lượng nguyên phụ liệu ngành hoa tươi.

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 hệ thống là gì?

Máy chủ cần chạy hệ điều hành Linux (Ubuntu 20.04 LTS trở lên), cài đặt PHP phiên bản >= 8.1 (bật các extension pdo, mbstring, openssl, tokenizer, xml, ctype, json), MySQL Server phiên bản >= 8.0, RAM tối thiểu 2GB và dung lượng ổ cứng trống 10GB SSD.

2. Hệ thống xử lý thế nào khi có 2 nhân viên cùng cập nhật thông tin 1 sản phẩm?

Hệ thống sử dụng cơ chế khóa ở mức bản ghi (Row-Level Locking) của MySQL InnoDB kết hợp với cơ chế Database Transaction trong Laravel. Yêu cầu gửi sau sẽ được đưa vào hàng đợi xử lý hoặc trả về thông báo dữ liệu đã bị thay đổi để đảm bảo tính nhất quán (ACID properties).

3. Làm thế nào để mở rộng hệ thống cho chuỗi nhiều cửa hàng Dalat Hasfarm?

Cần bổ sung thêm bảng CUAHANG (Macn, Tencn, Diachi) và đưa khóa ngoại Macn vào các bảng NHANVIEN, SANPHAM_TONKHO, DONDATHANG. Tầng logic Controller sẽ bổ sung Global Scope của Laravel để tự động lọc dữ liệu theo ngữ cảnh chi nhánh của người dùng đăng nhập.

4. Hệ thống có bảo vệ được dữ liệu trước các cuộc tấn công mạng phổ biến không?

Có. Hệ thống bảo mật 3 lớp: sử dụng PDO Parameter Binding của Laravel Eloquent chống triệt để SQL Injection; tự động kiểm tra csrf_token trên mọi request POST/PUT/DELETE chống tấn công Cross-Site Request Forgery; sử dụng htmlspecialchars trong Blade Engine để triệt tiêu lỗ hổng XSS (Cross-Site Scripting).

5. Thời gian đào tạo nhân viên sử dụng hệ thống mất bao lâu?

Nhờ giao diện thiết kế theo chuẩn Bootstrap 5 trực quan, tối giản thao tác: nhân viên bán hàng chỉ mất 15 phút để làm quen quy trình tạo đơn và xem ca làm; nhân viên quản lý mất khoảng 1–2 giờ để thành thạo toàn bộ các nghiệp vụ phân ca, nhập liệu định lượng sản phẩm và xuất hóa đơn báo cáo.


Kết luận

Đề tài "Quản lý Shop hoa Dalat Hasfarm" của nhóm sinh viên Nguyễn Tấn Huy và Lợi Siêu Kiệt (Khoa CNTT - Trường ĐH Công Nghệ Sài Gòn, dưới sự hướng dẫn của ThS. Nguyễn Lạc An Thư) là một công trình nghiên cứu và ứng dụng thực tiễn xuất sắc. Đồ án không chỉ giải quyết trọn vẹn bài toán học thuật về phân tích thiết kế hướng hệ thống thông tin thông qua hệ thống sơ đồ UML và thiết kế cơ sở dữ liệu quan hệ chuẩn hóa 3NF, mà còn xây dựng thành công một giải pháp phần mềm hoàn chỉnh trên nền tảng Laravel Framework và MySQL Server.

Giải pháp đã chứng minh được tính khả thi cao, tháo gỡ triệt để các nút thắt trong quản lý chi tiết sản phẩm hoa bó nghệ thuật, quản lý ca làm việc của nhân sự và tự động hóa xuất hóa đơn tại chi nhánh Dalat Hasfarm Hậu Giang. Đây là tài liệu tham khảo giá trị cho sinh viên chuyên ngành và là giải pháp chuyển đổi số thiết thực cho các doanh nghiệp bán lẻ ngành hoa tươi.