Giới thiệu dự án

Trong kỷ nguyên chuyển đổi số và tự động hóa chuỗi cung ứng (Supply Chain Management - SCM), việc kiểm soát luồng hàng hóa và nguyên vật liệu là điều kiện tiên quyết giúp doanh nghiệp sản xuất tối ưu chi phí và gia tăng năng lực cạnh tranh. Theo các khảo sát thực tế trong ngành công nghiệp chế biến thực phẩm và nông sản đóng gói, phương thức quản lý tồn kho thủ công (dựa trên sổ sách và bảng tính Excel rời rạc) gây ra tỷ lệ sai lệch dữ liệu tồn kho trung bình từ 12% đến 18%, làm tăng chi phí lưu kho 15% - 22% và kéo dài thời gian xử lý đơn hàng lên gấp 2,5 lần.

Đề tài khóa luận "Xây dựng hệ thống quản lý kho sản xuất tích hợp lập báo cáo thống kê và biểu đồ sử dụng ApexCharts tại Công ty TNHH Vườn Hạt" được thực hiện bởi nhóm tác giả Nguyễn Thị Thu Ngân và Nguyễn Đức Thiện (Khoa Công nghệ Thông tin, Trường Đại học Công nghiệp TP.HCM - IUH, dưới sự hướng dẫn của ThS. Lê Thùy Trang) nhằm giải quyết trực tiếp bài toán chuyển đổi số hoạt động logistics và kho bãi tại doanh nghiệp sản xuất thực phẩm hạt dinh dưỡng và trái cây sấy.

+-----------------------------------------------------------------------------------+
|                              CÔNG TY TNHH VƯỜN HẠT                                |
| (Mô hình: Sản xuất & chế biến Hạt Dinh Dưỡng, Trái Cây Sấy, Quà Tết Cao Cấp)      |
+------------------------------------------+----------------------------------------+
                                           |
                    +----------------------+----------------------+
                    |                                             |
                    v                                             v
+---------------------------------------+     +---------------------------------------+
|          HIỆN TRẠNG THỦ CÔNG          |     |           GIẢI PHÁP WMS MỚI           |
| • Quản lý rời rạc qua Excel           |     | • Fullstack Web-based WMS             |
| • Sai lệch tồn kho nguyên liệu 15%    |     | • Tự động hóa kiểm kê & cảnh báo date |
| • Thiếu đồng bộ Sản xuất - Bán hàng   |     | • Báo cáo trực quan với ApexCharts    |
| • Không có biểu đồ trực quan hóa      |     | • Bảo mật xác thực qua JWT Blacklist  |
+---------------------------------------+     +---------------------------------------+

Vấn đề thực tế tại doanh nghiệp (Problem Statement)

Tại Công ty TNHH Vườn Hạt – đơn vị chuyên sản xuất các mặt hàng hạt dinh dưỡng (macca, óc chó, hạnh nhân, bí xanh...) và trái cây sấy dẻo đóng gói theo nhiều quy cách (hũ nhựa, hũ thủy tinh, túi zip, combo hộp quà Tết), quy trình quản lý bộc lộ nhiều điểm nghẽn nghiêm trọng:

  1. Thiếu tính đồng bộ liên phòng ban: Bộ phận thủ kho, xưởng sản xuất, đóng gói và kinh doanh hoạt động tách biệt. Số lượng nguyên liệu thô thực tế không khớp với dữ liệu bán hàng.
  2. Không kiểm soát được vòng đời và định danh: Thiếu chuẩn hóa mã SKU (Stock Keeping Unit), gây nhầm lẫn giữa nguyên vật liệu thô (raw materials) và thành phẩm đóng gói (finished goods).
  3. Thất thoát do quản lý hạn sử dụng thủ công: Không có cảnh báo tự động về thời hạn sử dụng (Expiry Date) và ngưỡng lưu kho tối thiểu/tối đa (Min/Max Stock Levels).
  4. Hạn chế trong ra quyết định quản trị: Dữ liệu tồn kho và doanh thu không được tổng hợp theo thời gian thực; báo cáo tĩnh dạng bảng gây khó khăn trong việc đánh giá tốc độ quay vòng tồn kho.

Mục tiêu dự án

  1. Chuẩn hóa quy trình nghiệp vụ: Xây dựng quy trình khép kín quản lý nhập - xuất - chuyển vị trí - kiểm kê nguyên vật liệu và thành phẩm theo nguyên tắc FIFO (First In, First Out).
  2. Kiến trúc hệ thống quản trị WMS hiện đại: Phát triển ứng dụng Web-based WMS hỗ trợ phân quyền kiểm soát truy cập dựa trên vai trò (Role-Based Access Control - RBAC).
  3. Tích hợp Dashboard trực quan hóa: Xây dựng mô-đun báo cáo thống kê chuyên sâu, tích hợp thư viện biểu đồ ApexCharts cho phép phân tích luồng hàng hóa theo thời gian thực.
  4. Triển khai và kiểm thử thực địa: Đánh giá tính khả thi và hiệu năng thực tế tại xưởng sản xuất của Công ty TNHH Vườn Hạt.

Phạm vi và giới hạn đề tài

  • Phạm vi nghiệp vụ: Quản lý toàn diện danh mục nguyên vật liệu, thành phẩm, combo đóng gói, bảng giá theo giai đoạn, nhà cung cấp, khách hàng, khu vực lưu trữ (storage areas) và giao dịch kho (nhập/xuất/kiểm kê).
  • Giới hạn: Hệ thống tập trung triển khai trên nền tảng Web Application nội bộ xưởng sản xuất; chưa tích hợp trực tiếp phần cứng IoT cảm biến nhiệt độ kho lạnh hay thiết bị quét RFID băng chuyền tự động.

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

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

Tiêu chí so sánh Phương pháp thủ công (Excel) Hệ thống ERP đóng gói (SAP/Odoo) Hệ thống WMS may đo (Đề tài)
Độ chính xác dữ liệu Thấp (Sai số 12% - 18%) Rất cao (> 99%) Rất cao (> 99.2%)
Chi phí triển khai Rất thấp Rất cao ($15,000 - $50,000+) Tối ưu hóa cho SMEs
Tính linh hoạt nghiệp vụ Cao nhưng dễ phát sinh lỗi Thấp (Phụ thuộc cấu trúc có sẵn) Cao (Tùy biến theo BOM hạt/combo)
Trực quan hóa dữ liệu Hạn chế (Biểu đồ tĩnh cơ bản) Tích hợp sẵn (Phức tạp, khó cấu hình) Rất cao (ApexCharts tương tác động)
Thời gian làm quen UI/UX Nhanh nhưng thao tác chậm Chậm (Đòi hỏi đào tạo dài hạn) Nhanh (Giao diện tối giản, trực quan)

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

  • Must have: Xác thực JWT có blacklist; CRUD danh mục sản phẩm/nguyên liệu/combo; Quản lý phiếu nhập/xuất kho; Quản lý khu vực lưu trữ (storage_areas); Kiểm kê tồn kho định kỳ; Báo cáo biểu đồ cột/đường với ApexCharts.
  • Should have: Cảnh báo ngưỡng tồn kho an toàn; Cảnh báo hạn sử dụng sản phẩm; Theo dõi lịch sử thay đổi tồn kho (inventory_history); Quản lý khách hàng phân nhóm (tiềm năng, thân thiết).
  • Could have: Tạo đơn nháp (draft orders); Xuất dữ liệu đa định dạng (PDF/Excel); Đính kèm hình ảnh biên bản giao nhận thực tế.
  • Won't have (giai đoạn này): Tích hợp cổng thanh toán trực tuyến; Ứng dụng di động Native (Android/iOS); Thuật toán AI dự báo chuỗi cung ứng chuyên sâu.

Thiết kế hệ thống

Công nghệ sử dụng (Technology Stack)

  • Frontend Framework: Next.js 14.x (React 18), hỗ trợ SSR (Server-Side Rendering) và Client-side Components linh hoạt, TypeScript.
  • UI & Data Visualization: Tailwind CSS, Thư viện trực quan hóa dữ liệu ApexCharts v3.45+ (tích hợp qua react-apexcharts).
  • Backend Runtime & Environment: Node.js API Routes / Next.js Server Actions, kết hợp môi trường phát triển Laragon (PHP 8.2, Apache/Nginx).
  • Database Management System: MySQL 8.0 với mô hình quan hệ toàn vẹn dữ liệu (Relational Constraints & Foreign Keys).
  • Xác thực và phân quyền: JSON Web Token (JWT RFC 7519) kết hợp cơ chế kiểm tra token vô hiệu hóa tại bảng blacklist_tokens.

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

Hệ thống thiết kế chuẩn hóa bậc 3 (3NF) với các thực thể cốt lõi:

-- Bảng quản lý khu vực lưu trữ kho
CREATE TABLE storage_areas (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    code VARCHAR(50) UNIQUE NOT NULL,
    type ENUM('RAW_MATERIAL', 'FINISHED_GOOD', 'COLD_STORAGE') NOT NULL,
    capacity DECIMAL(10,2) NOT NULL,
    status TINYINT DEFAULT 1,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- Bảng quản lý phiếu nhập kho nguyên vật liệu
CREATE TABLE material_import_receipts (
    id INT AUTO_INCREMENT PRIMARY KEY,
    receipt_code VARCHAR(50) UNIQUE NOT NULL,
    provider_id INT NOT NULL,
    storage_area_id INT NOT NULL,
    total_amount DECIMAL(15,2) NOT NULL,
    document_image VARCHAR(255) NULL,
    created_by INT NOT NULL,
    status ENUM('PENDING', 'APPROVED', 'REJECTED') DEFAULT 'PENDING',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (storage_area_id) REFERENCES storage_areas(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- Bảng danh sách đen thu hồi JSON Web Token
CREATE TABLE blacklist_tokens (
    id INT AUTO_INCREMENT PRIMARY KEY,
    token VARCHAR(500) NOT NULL,
    expired_at TIMESTAMP NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    INDEX idx_token (token(255))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

Thiết kế API Endpoints chuẩn RESTful

  • POST /api/v1/auth/login: Xác thực tài khoản, trả về Access Token JWT.
  • POST /api/v1/auth/logout: Đưa token hiện tại vào blacklist_tokens.
  • GET /api/v1/materials/inventory: Lấy danh sách tồn kho nguyên vật liệu theo thời gian thực.
  • POST /api/v1/materials/import: Tạo phiếu nhập kho và tăng trừ số lượng tồn kho tự động.
  • GET /api/v1/reports/inventory-turnover: Trích xuất chỉ số quay vòng và phân bổ kho cho ApexCharts.

Implementation và kết quả

Development Process

Quá trình hiện thực hóa giải pháp được chia thành 4 pha phát triển chính trong 12 tuần:

  • Pha 1 (Tuần 1 - 3): Khảo sát thực tế tại xưởng Vườn Hạt, phỏng vấn các bên liên quan, thu thập yêu cầu và mô hình hóa 38 Use Cases (từ UC001 đến UC038).
  • Pha 2 (Tuần 4 - 6): Thiết kế sơ đồ quan hệ thực thể (ERD), xây dựng 32 bảng cơ sở dữ liệu trên MySQL, cấu hình bảo mật JWT và API Endpoints cơ sở.
  • Pha 3 (Tuần 7 - 10): Xây dựng UI bằng Next.js, viết các component xử lý nghiệp vụ nhập/xuất kho, tích hợp ApexCharts vào các view Dashboard.
  • Pha 4 (Tuần 11 - 12): Kiểm thử hộp đen (Black-box testing), đánh giá bảo mật và đóng gói tài liệu.

Cấu hình Trực quan hóa dữ liệu tồn kho với ApexCharts (Code Evidence)

Dưới đây là đoạn mã triển khai biểu đồ kết hợp (Mixed Bar & Line Chart) theo dõi lượng nhập - xuất và mức tồn kho an toàn theo từng danh mục sản phẩm:

// components/dashboard/InventoryApexChart.tsx
import React from 'react';
import dynamic from 'next/dynamic';
import { ApexOptions } from 'apexcharts';

const Chart = dynamic(() => import('react-apexcharts'), { ssr: false });

interface InventoryChartProps {
  categories: string[];
  importData: number[];
  exportData: number[];
  stockLevels: number[];
}

export const InventoryApexChart: React.FC<InventoryChartProps> = ({
  categories,
  importData,
  exportData,
  stockLevels,
}) => {
  const chartOptions: ApexOptions = {
    chart: {
      type: 'line',
      height: 350,
      toolbar: { show: true },
      zoom: { enabled: false },
    },
    stroke: {
      width: [0, 0, 3],
      curve: 'smooth',
    },
    plotOptions: {
      bar: {
        columnWidth: '50%',
        borderRadius: 4,
      },
    },
    colors: ['#10B981', '#EF4444', '#3B82F6'],
    labels: categories,
    xaxis: {
      type: 'category',
      title: { text: 'Danh mục hàng hóa (Hạt / Trái cây sấy)' },
    },
    yaxis: [
      {
        title: { text: 'Khối lượng Nhập / Xuất (Kg)' },
      },
      {
        opposite: true,
        title: { text: 'Tồn kho thực tế (Kg)' },
      },
    ],
    tooltip: {
      shared: true,
      intersect: false,
    },
    legend: {
      position: 'top',
    },
  };

  const chartSeries = [
    { name: 'Nhập kho', type: 'column', data: importData },
    { name: 'Xuất kho', type: 'column', data: exportData },
    { name: 'Mức tồn an toàn', type: 'line', data: stockLevels },
  ];

  return (
    <div className="p-4 bg-white rounded-lg shadow-md">
      <h3 className="text-lg font-semibold mb-4 text-gray-800">
        Biến Động Tồn Kho & Luồng Hàng Hóa Theo Thời Gian Thực
      </h3>
      <Chart options={chartOptions} series={chartSeries} type="line" height={350} />
    </div>
  );
};

Thuật toán xác định trạng thái cảnh báo tồn kho (Min-Max Logic)

// lib/inventoryLogic.ts
export interface InventoryAlertStatus {
  sku: string;
  currentStock: number;
  minThreshold: number;
  maxThreshold: number;
  alertType: 'CRITICAL_LOW' | 'OPTIMAL' | 'OVERSTOCK_RISK';
}

export function evaluateStockThreshold(
  sku: string,
  currentStock: number,
  minThreshold: number,
  maxThreshold: number
): InventoryAlertStatus {
  if (currentStock <= minThreshold) {
    return {
      sku,
      currentStock,
      minThreshold,
      maxThreshold,
      alertType: 'CRITICAL_LOW',
    };
  } else if (currentStock >= maxThreshold) {
    return {
      sku,
      currentStock,
      minThreshold,
      maxThreshold,
      alertType: 'OVERSTOCK_RISK',
    };
  }
  return {
    sku,
    currentStock,
    minThreshold,
    maxThreshold,
    alertType: 'OPTIMAL',
  };
}

Testing và validation

Hệ thống trải qua 22 kịch bản kiểm thử chức năng hoàn chỉnh, kiểm thử giao diện và kiểm thử chịu tải:

  • Kiểm thử chức năng: 100% các Test Case cơ bản (Đăng nhập, Quản lý đơn hàng, Thêm/Sửa/Xóa nguyên vật liệu, Lập phiếu nhập/xuất kho, Kiểm kê) đều đạt kết quả PASSED.
  • Thời gian đáp ứng API: Thời gian phản hồi trung bình (Latency) của các truy vấn đọc dữ liệu báo cáo qua ApexCharts đạt 85ms - 130ms trên tập dữ liệu 50.000 bản ghi giao dịch.
  • Độ chịu tải cơ sở dữ liệu: MySQL xử lý đồng thời 100 kết nối truy vấn đọc/ghi song song mà không xảy ra tình trạng Deadlock hay nghẽn I/O.
+-----------------------------------------------------------------------------------+
|                        KẾT QUẢ KIỂM THỬ HỆ THỐNG WMS                              |
+--------------------------+---------------------+-------------------+--------------+
| Hạng mục kiểm thử        | Số lượng Test Cases | Tỷ lệ thành công  | Trạng thái   |
+--------------------------+---------------------+-------------------+--------------+
| 1. Xác thực & Phân quyền | 7 kịch bản          | 100%              | PASSED       |
| 2. Quản lý Danh mục/SKU  | 8 kịch bản          | 100%              | PASSED       |
| 3. Nghiệp vụ Nhập/Xuất   | 12 kịch bản         | 100%              | PASSED       |
| 4. Kiểm kê & Cảnh báo    | 5 kịch bản          | 100%              | PASSED       |
| 5. Dashboard ApexCharts  | 6 kịch bản          | 100%              | PASSED       |
+--------------------------+---------------------+-------------------+--------------+

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

  1. Hoàn thiện đầy đủ 38 Use Cases: Đáp ứng trọn vẹn yêu cầu vận hành của 3 nhóm tác nhân (Quản trị viên, Thủ kho, Nhân viên bán hàng).
  2. Loại bỏ hoàn toàn quy trình giấy tờ thủ công: Chuyển đổi 100% dữ liệu phiếu nhập/xuất/kiểm kê sang môi trường số hóa, lưu trữ toàn vẹn lịch sử tại material_inventory_historyproduct_inventory_history.
  3. Cắt giảm 90% thời gian tổng hợp báo cáo: Người quản lý có thể xem tình trạng kho chỉ sau 1 cú nhấp chuột thay vì mất 4-6 tiếng đối chiếu Excel định kỳ mỗi tuần.

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

  • Mô hình định danh sản phẩm đa thuộc tính (Hybrid SKU Structure): Đề xuất cấu trúc mã hóa SKU chuyên biệt cho ngành nông sản sấy ([Loại SP]-[Thuộc tính/Kích cỡ]-[Trọng lượng]-[Định danh]), hỗ trợ phân rã và gộp Combo giỏ quà Tết linh hoạt mà vẫn kiểm soát chính xác lượng tiêu hao nguyên liệu đơn lẻ.
  • Trực quan hóa đa chiều với ApexCharts: Không chỉ hiển thị số liệu tĩnh, biểu đồ cho phép tương tác (Interactive zoom, pan, tooltip, series filtering), giúp phát hiện nhanh các mặt hàng chậm luân chuyển (Dead Stock) hoặc mặt hàng sắp chạm ngưỡng an toàn.
  • Kiến trúc bảo mật kết hợp JWT Stateless và State-aware Blacklist: Khắc phục triệt để nhược điểm không thể thu hồi token của JWT tiêu chuẩn bằng cách duy trì bảng blacklist_tokens với cơ chế dọn dẹp định kỳ (Auto-cleanup cron job), tối ưu dung lượng bộ nhớ.
  • Định lượng hiệu quả vận hành:
    • Giảm thiểu sai sót kiểm kê kho từ 15% xuống dưới 0.8%.
    • Rút ngắn thời gian xử lý đơn hàng đóng gói từ 35 phút xuống còn 12 phút (giảm ~65%).
    • Tối ưu hóa dung lượng lưu trữ kho bãi thực tế thêm 25% nhờ phân bổ khoa học qua mô-đun storage_areas.

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

Kịch bản vận hành thực tế tại Công ty TNHH Vườn Hạt

  1. Nhập nguyên liệu thô: Thủ kho tiếp nhận 500kg hạt điều thô từ nhà cung cấp -> Chụp ảnh chứng từ -> Nhập hệ thống -> Hệ thống tự động gán vào khu vực KHO_LANH_01 và ghi nhận lịch sử vào material_import_receipts.
  2. Quy trình sản xuất - đóng gói: Bộ phận xưởng yêu cầu xuất 100kg hạt điều để sấy và đóng hộp 500g -> Hệ thống trừ tồn kho nguyên liệu theo FIFO -> Tự động tính toán thành phẩm thu được (200 hũ 500g) và cập nhật mã SKU thành phẩm vào product_storage_history.
  3. Quản lý combo quà Tết: Đơn hàng yêu cầu 50 hộp quà "Xuân Như Ý" (chứa 1 hũ hạt điều + 1 hũ macca + 1 hũ xoài sấy) -> Hệ thống tự động kiểm tra số lượng tồn của 3 thành phần đơn lẻ, cảnh báo nếu thiếu hụt trước khi xác nhận đơn.

Yêu cầu cấu hình hệ thống triển khai (System Requirements)

  • Phần cứng máy chủ (Server Minimum Specs):
    • CPU: Quad-Core 2.4 GHz trở lên (Intel Xeon hoặc AMD EPYC).
    • RAM: Tối thiểu 8 GB (Khuyến nghị 16 GB để tối ưu hóa caching).
    • Ổ cứng: SSD 120 GB (Hỗ trợ cấu hình RAID 1 sao lưu an toàn).
  • Môi trường phần mềm (Software Environment):
    • OS: Ubuntu Server 22.04 LTS hoặc Windows Server (phát triển với Laragon 6.0).
    • Web Server: Nginx 1.24+ (Reverse Proxy cho Next.js application).
    • Runtime & DBMS: Node.js v18.x / v20.x LTS, MySQL 8.0 Community Server.

Phân tích Chi phí - Lợi ích (Cost-Benefit & ROI)

  • Chi phí đầu tư ban đầu: Triển khai mã nguồn mở, không phát sinh chi phí bản quyền định kỳ hàng năm như các giải pháp ERP thương mại lớn.
  • Thời gian hoàn vốn (ROI Timeline): Dự kiến doanh nghiệp thu hồi vốn đầu tư chuyển đổi số sau 6 - 8 tháng nhờ giảm thiểu hao hụt nguyên vật liệu, tránh lãng phí sản phẩm cận hạn sử dụng và tối ưu hóa nhân công kiểm đếm.

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

Hạn chế kỹ thuật

  1. Hệ thống hiện hoạt động trên nền tảng Web; trong môi trường kho sâu sóng Wi-Fi yếu, thủ kho cần sử dụng thiết bị kết nối mạng ổn định do chưa hỗ trợ chế độ Offline-First (Service Worker Cache).
  2. Chưa tích hợp camera AI để tự động đọc mã vạch / QR Code hàng loạt trên kiện hàng pallet.

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

  • Mô-đun AI Dự báo chuỗi cung ứng (Demand Forecasting): Tích hợp mô hình học máy (như LSTM, Prophet) để phân tích dữ liệu lịch sử bán hàng và dự báo nhu cầu nhập nguyên liệu theo mùa vụ (đặc biệt vào các dịp cao điểm Tết Nguyên Đán).
  • Ứng dụng Mobile App Đa nền tảng: Phát triển ứng dụng Flutter hoặc React Native cho phép thủ kho kiểm kê trực tiếp bằng camera điện thoại và máy quét mã vạch chuyên dụng cầm tay (PDA).
  • Tích hợp hệ sinh thái Omnichannel: Đồng bộ tồn kho tự động với các sàn thương mại điện tử phổ biến (Shopee, Lazada, TikTok Shop) và hệ thống hóa đơn điện tử chuẩn Tổng cục Thuế.

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

  • Sinh viên ngành Hệ thống Thông tin & Công nghệ Phần mềm: Làm tài liệu tham khảo chất lượng cao về phương pháp luận phân tích thiết kế hệ thống thông tin (UML, Use Case Specification, ERD Database) gắn liền với bài toán doanh nghiệp thực tế.
  • Lập trình viên Fullstack: Tiếp cận mô hình kiến trúc ứng dụng web kết hợp giữa Next.js, API RESTful và thư viện trực quan hóa dữ liệu ApexCharts chuyên nghiệp.
  • Doanh nghiệp vừa và nhỏ (SMEs): Nắm bắt giải pháp khả thi để tự động hóa kho hàng với chi phí đầu tư hợp lý, tối ưu hóa dòng tiền và năng suất chuỗi cung ứng.

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

1. Yêu cầu phần cứng và môi trường để triển khai hệ thống là gì?

Hệ thống có thể chạy thử nghiệm trên máy chủ nội bộ hoặc Cloud VPS cấu hình từ 2 vCPU, 4GB RAM, cài đặt Node.js v18+ và MySQL 8.0. Trong môi trường phát triển cục bộ, hệ thống tương thích tốt với công cụ Laragon trên hệ điều hành Windows hoặc Docker Compose trên Linux.

2. Hệ thống có khả năng mở rộng (Scalability) khi số lượng hàng hóa tăng đột biến không?

Cơ sở dữ liệu MySQL được thiết kế chỉ mục (Indexing) tối ưu tại các trường khóa chính, mã hóa đơn và ngày tạo. Cấu trúc Next.js cho phép phân tách độc lập Frontend và Backend, hỗ trợ mở rộng theo chiều ngang (Horizontal Scaling) hoặc chuyển đổi sang kiến trúc Microservices khi lượng giao dịch vượt trên 500.000 bản ghi/năm.

3. Cơ chế bảo mật qua JWT Blacklist hoạt động như thế nào?

Khi người dùng đăng nhập thành công, hệ thống cấp một JWT Token có thời hạn (ví dụ: 8 giờ). Khi người dùng thực hiện thao tác "Đăng xuất", mã token này sẽ được lưu vào bảng blacklist_tokens. Mọi yêu cầu tiếp theo mang token nằm trong danh sách đen sẽ bị chặn ngay tại Authentication Middleware với mã lỗi 401 Unauthorized.

4. Hệ thống có hỗ trợ kiểm soát sản phẩm theo phương pháp FIFO không?

Có. Hệ thống tự động ghi nhận ngày nhập kho của từng lô nguyên vật liệu/thành phẩm. Khi lập phiếu xuất kho, giao diện sẽ ưu tiên hiển thị và đề xuất xuất các lô hàng có ngày nhập sớm nhất hoặc các lô có hạn sử dụng (Expiry Date) gần nhất.

5. Chi phí bảo trì và vận hành hệ thống hàng tháng ước tính là bao nhiêu?

Do hệ thống xây dựng hoàn toàn trên nền tảng công nghệ mã nguồn mở (Next.js, React, MySQL, ApexCharts), doanh nghiệp không phải trả phí cấp phép phần mềm hàng tháng. Chi phí duy nhất bao gồm phí thuê hạ tầng máy chủ Cloud VPS/Hosting khoảng 300.000 – 700.000 VNĐ/tháng và chi phí bảo trì mạng nội bộ định kỳ.


Kết luận

Đề tài "Xây dựng hệ thống quản lý kho sản xuất tích hợp lập báo cáo thống kê và biểu đồ sử dụng ApexCharts tại Công ty TNHH Vườn Hạt" đã giải quyết thành công bài toán chuyển đổi số từ mô hình thủ công sang hệ thống thông tin quản lý tự động, chính xác và trực quan. Việc kết hợp hài hòa giữa nền tảng công nghệ web Next.js, kiến trúc cơ sở dữ liệu quan hệ MySQL chặt chẽ và công cụ trực quan hóa chuyên sâu ApexCharts đã tạo ra một giải pháp quản trị toàn diện, đáp ứng hoàn hảo yêu cầu khắt khe của ngành sản xuất và chế biến nông sản thực phẩm.

Công trình không chỉ khẳng định giá trị ứng dụng thực tiễn cao trong việc nâng cao năng lực vận hành cho doanh nghiệp SMEs mà còn là tài liệu tham khảo học thuật giá trị cho sinh viên và kỹ sư phần mềm trong lĩnh vực phân tích và thiết kế hệ thống thông tin hiện đại.