Giới thiệu dự án

Trong bối cảnh cuộc Cách mạng Công nghiệp 4.0 đang thúc đẩy mạnh mẽ quá trình chuyển đổi số trong mọi lĩnh vực sản xuất, ngành cơ khí chế tạo – được coi là "xương sống" của nền kinh tế kỹ thuật – đang đứng trước yêu cầu cấp thiết phải hiện đại hóa quy trình vận hành. Theo các khảo sát thực tế về chuyển đổi số trong khối doanh nghiệp vừa và nhỏ (SMEs) tại Việt Nam, hơn 70% xưởng sản xuất cơ khí quy mô vừa và nhỏ vẫn duy trì quy trình quản lý thiết bị, chấm công, tính lương và giao dịch khách hàng bằng sổ sách hoặc các file tính toán rời rạc. Điều này dẫn đến nguy cơ sai sót dữ liệu, thất thoát thông tin và lãng phí thời gian vận hành.

Vấn đề thực tế (Problem Statement)

Công ty TNHH TM&DV Cơ Khí Hiệp Hòa là một đơn vị tiêu biểu trong lĩnh vực cơ khí dân dụng và gia công phụ tùng. Mặc dù sở hữu hơn 10 năm kinh nghiệm trong nghề với các kỹ thuật chuyên sâu như tiện, phay, hàn, cắt, doanh nghiệp đang gặp phải các nút thắt vận hành nghiêm trọng:

  • Mất khách hàng tiềm năng: Ước tính doanh nghiệp thất thoát khoảng 10% lượng khách hàng tiềm năng mỗi năm do thiếu kênh truyền thông số trực tuyến, danh mục sản phẩm và năng lực gia công không được tiếp cận rộng rãi.
  • Quản lý thiết bị máy móc thủ công: Thiếu hệ thống theo dõi tình trạng, thông số kỹ thuật, lịch sử bảo dưỡng và tiến độ sửa chữa của các thiết bị trong phân xưởng, dẫn đến tình trạng gián đoạn sản xuất đột xuất.
  • Quy trình chấm công và tính lương phức tạp: Dữ liệu nhân công, ngày công và bậc lương được ghi chép thủ công, gây mất thời gian tổng hợp và dễ xảy ra sai sót khi tính toán tiền thưởng hay lập bảng lương định kỳ.
  • Phân mảnh trong quản lý báo giá và hóa đơn: Quá trình lập phiếu báo giá, chiết tính đơn hàng và theo dõi công nợ khách hàng chưa được chuẩn hóa, gây chậm trễ trong khâu phản hồi khách hàng và xuất chứng từ.

Mục tiêu của dự án (Project Objectives)

  1. Xây dựng cổng thông tin trực tuyến (Web Portal): Giới thiệu hồ sơ năng lực, các dịch vụ gia công cơ khí chuyên biệt và danh mục sản phẩm hoàn thiện của công ty đến đối tác, khách hàng.
  2. Số hóa quy trình quản lý tài sản - máy móc: Quản lý chi tiết danh mục trang thiết bị, tình trạng vận hành, nhà sản xuất và lịch sử bảo trì.
  3. Chuẩn hóa công tác nhân sự và tính lương: Tự động hóa quy trình điểm danh hàng ngày, liên kết dữ liệu ngày công với hệ số bậc lương để xuất bảng lương minh bạch.
  4. Tối ưu hóa quản lý phiếu công việc (WorkOrder): Theo dõi toàn diện vòng đời của phiếu yêu cầu sửa chữa/thay thế hoặc mua mới máy móc thiết bị theo mức độ ưu tiên.
  5. Tự động hóa lập chứng từ kinh doanh: Xây dựng module quản lý phiếu báo giá/chiết tính và hóa đơn thanh toán, hỗ trợ xuất trực tiếp ra định dạng PDF chuẩn hóa.

Giải pháp kỹ thuật và Đánh giá tính khả thi

Đề tài lựa chọn hướng tiếp cận xây dựng hệ thống ứng dụng web hướng Module (Modular Web Application) tích hợp 2-trong-1 (Customer Portal và Internal Workshop Management) sử dụng ngôn ngữ lập trình PythonFlask Framework. Flask là một micro-framework nhẹ, có tính linh hoạt cao, ít tiêu tốn tài nguyên hệ thống, kết hợp cùng hệ thống ORM Flask-SQLAlchemy giúp trừu tượng hóa cơ sở dữ liệu và SQLite phục vụ triển khai nhanh chóng tại các doanh nghiệp quy mô vừa và nhỏ mà không đòi hỏi chi phí đầu tư hạ tầng máy chủ lớn.

Kết quả kỳ vọng và Phạm vi dự án

  • Chỉ số đo lường kỳ vọng: Rút ngắn 85% thời gian lập báo giá và xuất hóa đơn; giảm 75% thời gian truy xuất lịch sử bảo dưỡng thiết bị; tăng 35% khả năng tiếp cận khách hàng mới qua nền tảng trực tuyến; độ chính xác trong tính lương đạt 100%.
  • Phạm vi áp dụng: Phân xưởng cơ khí quy mô từ 10-50 lao động, quản lý dưới 100 đầu máy công cụ gia công và danh mục sản phẩm cơ khí dân dụng/công nghiệp nhẹ.

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

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

Để lựa chọn giải pháp tối ưu cho Công ty Cơ Khí Hiệp Hòa, hệ thống được đặt trong tương quan so sánh với các phương thức quản lý phổ biến hiện nay:

Tiêu chí đánh giá Quản lý thủ công (Sổ sách / Excel) Phần mềm ERP đóng gói lớn (SAP, Odoo) Hệ thống Web tùy biến trên nền Python/Flask
Chi phí đầu tư Gần như bằng 0 Rất cao (Hàng trăm triệu/năm) Rất thấp, tối ưu cho SMEs
Thời gian triển khai Ngay lập tức 3 - 6 tháng đào tạo phức tạp 1 - 2 tuần, giao diện thân thiện
Khả năng tích hợp Web Không có Tách biệt hoặc chi phí addon cao Tích hợp sẵn Cổng giới thiệu & Quản trị
Bảo trì & Tùy biến Khó kiểm soát phiên bản Cần chuyên gia chứng chỉ can thiệp Dễ dàng mở rộng, mã nguồn mở
Tốc độ truy xuất dữ liệu Chậm, dễ sai lệch dữ liệu Nhanh nhưng cấu trúc phức tạp Nhanh, trực quan qua Dashboard

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

  • Must-have (Bắt buộc có): Module giới thiệu sản phẩm; Phân quyền Admin/User; Quản lý thông tin thiết bị và nhân công; Chấm công hàng ngày; Quản lý phiếu yêu cầu sửa chữa/mua mới; Tạo và xuất PDF phiếu báo giá/hóa đơn.
  • Should-have (Nên có): Bộ lọc tìm kiếm sản phẩm theo giá và tên; Biểu đồ thống kê phiếu công việc quá hạn bằng Chart.js; Quản lý thư viện nhiều ảnh cho từng sản phẩm qua Pillow.
  • Could-have (Có thể có): Gửi email thông báo tự động khi phiếu sửa chữa quá hạn; Tích hợp cổng thanh toán trực tuyến.
  • Won't-have (Chưa triển khai trong giai đoạn này): Ứng dụng di động native trên iOS/Android; Điều khiển máy gia công CNC từ xa qua IoT.

Thiết kế hệ thống

+-----------------------------------------------------------------------+
|                             CLIENT TIER                               |
|        Trình duyệt Web (Desktop / Tablet / Mobile Responsive)         |
|             HTML5, CSS3, Bootstrap 4, JavaScript, Chart.js            |
+-----------------------------------------------------------------------+
                                   | (HTTP/HTTPS Requests)
                                   v
+-----------------------------------------------------------------------+
|                          APPLICATION TIER                             |
|  WSGI Server (Werkzeug) -> Flask Framework (MVC Architecture)         |
|  +-------------------------+  +-------------------------------------+  |
|  |     Frontend Routing    |  |          Admin Controllers          |  |
|  | - Product Catalog       |  | - Equipment & Category Engine       |  |
|  | - Search & Filtering    |  | - WorkOrder Management (Priority)   |  |
|  | - Contact & About Info  |  | - Payroll & Attendance Calculator   |  |
|  +-------------------------+  | - Quotation & Invoice Builder       |  |
|                               +-------------------------------------+  |
|  +------------------------------------------------------------------+  |
|  | Middleware: Flask-WTForms (Validation), Pdfkit, Pillow (Images)  |  |
|  +------------------------------------------------------------------+  |
+-----------------------------------------------------------------------+
                                   | (ORM Queries)
                                   v
+-----------------------------------------------------------------------+
|                             DATA TIER                                 |
|          Flask-SQLAlchemy ORM -> SQLite Database Engine               |
|   (Tables: Category, Product, Cate, Object, WorkOrder, Employee,      |
|            Payroll, Quotation, Invoice, Images)                       |
+-----------------------------------------------------------------------+

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

  • Ngôn ngữ cốt lõi: Python 3.8.x (Tối ưu xử lý hướng đối tượng, cú pháp tường minh).
  • Backend Framework: Flask 2.0.x (Micro-framework kiến trúc linh hoạt).
  • Thư viện mở rộng:
    • Flask-SQLAlchemy 2.5.x: Tương tác CSDL qua mô hình ORM (Object-Relational Mapping).
    • Flask-WTForms 0.15.x: Xử lý form, xác thực dữ liệu đầu vào và chống tấn công CSRF.
    • Werkzeug 2.0.x: Bộ công cụ WSGI tiêu chuẩn xử lý request/response và mã hóa mật khẩu.
    • Jinja2 3.0.x: Template engine render dữ liệu động ra giao diện.
    • Pdfkit / wkhtmltopdf: Engine chuyển đổi mã HTML/CSS thành tệp PDF chất lượng cao.
    • Pillow (PIL) 8.x: Thư viện xử lý và chuẩn hóa kích thước hình ảnh sản phẩm.
  • Frontend Framework: HTML5, CSS3, Bootstrap 4.6, JavaScript, Chart.js (Vẽ biểu đồ Dashboard).
  • Cơ sở dữ liệu: SQLite 3 (Cơ sở dữ liệu quan hệ nhúng, phi máy chủ, lưu trữ file đơn).

Thiết kế cơ sở dữ liệu chi tiết

Cơ sở dữ liệu được chuẩn hóa theo dạng chuẩn 3NF với 10 thực thể chính:

  1. Category (cate_id [PK], name): Danh mục sản phẩm trưng bày.
  2. Product (product_id [PK], name, img, description, price, long_description, status, cate_id [FK]): Sản phẩm cơ khí.
  3. Images (img_id [PK], Images path, product_id [FK]): Thư viện ảnh chi tiết của sản phẩm.
  4. Cate (cate_id [PK], name): Danh mục phân loại máy móc/thiết bị phân xưởng.
  5. Object (obj_id [PK], name, amount, model, status, manufacturer, install_day, cate_id [FK]): Hồ sơ thiết bị cơ khí.
  6. WorkOrder (wo_id [PK], wo_name, wo_type, wo_status, wo_date, wo_cmt, wo_deadline, wo_priority, emp_id [FK], obj_id [FK]): Phiếu yêu cầu sửa chữa/mua mới.
  7. Employee (emp_id [PK], name, phone, address, identity_card_number, position, wage): Hồ sơ công nhân.
  8. Payroll (pr_id [PK], reward, salary, date, emp_id [FK]): Bảng lương định kỳ.
  9. Quotation (qt_id [PK], qt_name, cus_name, cus_add, qt_number, qt_date, qt_borrow, qt_content, qt_sum, qt_total): Phiếu báo giá chiết tính.
  10. Invoice (bill_id [PK], bill_name, cus_name, cus_add, bill_content, bill_date, bill_sumprice, bill_ad_money, bill_total, bill_complete): Hóa đơn gia công.

Implementation và kết quả

Quy trình phát triển (Development Process)

Dự án được triển khai qua 4 giai đoạn chính:

  • Giai đoạn 1: Khảo sát thực địa xưởng cơ khí Hiệp Hòa, thu thập cấu trúc biểu mẫu báo giá, quy trình kiểm định máy và công thức tính lương thợ cơ khí.
  • Giai đoạn 2: Thiết kế lược đồ CSDL quan hệ trên SQLAlchemy, xây dựng các Form nhập liệu với Flask-WTForms.
  • Giai đoạn 3: Xây dựng hệ thống giao diện Frontend Bootstrap 4 và tích hợp Logic xử lý Backend (Chấm công, Render PDF, Lọc danh mục).
  • Giai đoạn 4: Kiểm thử toàn diện, đóng gói và triển khai thử nghiệm tại phân xưởng.

Cấu trúc mã nguồn và Trích đoạn Kỹ thuật tiêu biểu

Cấu trúc thư mục dự án được tổ chức theo tiêu chuẩn module hóa:

mechanical-management/
1. Khai báo Models quan hệ trong models.py:
from flask_sqlalchemy import SQLAlchemy
from datetime import datetime

db = SQLAlchemy()

class Object(db.Model):
    __tablename__ = 'objects'
    obj_id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(500), nullable=False)
    amount = db.Column(db.Integer, default=1)
    model = db.Column(db.String(200))
    status = db.Column(db.Integer, default=1)  # 1: Hoạt động tốt, 0: Đang hỏng
    manufacturer = db.Column(db.String(200))
    install_day = db.Column(db.Date, default=datetime.utcnow)
    cate_id = db.Column(db.Integer, db.ForeignKey('cates.cate_id'), nullable=False)
    
    # Thiết lập quan hệ 1-N với bảng WorkOrder
    work_orders = db.relationship('WorkOrder', backref='equipment', lazy=True)

class WorkOrder(db.Model):
    __tablename__ = 'work_orders'
    wo_id = db.Column(db.Integer, primary_key=True)
    wo_name = db.Column(db.String(500), nullable=False)
    wo_type = db.Column(db.Boolean, default=False)  # False: Sửa chữa/Thay thế, True: Mua mới
    wo_status = db.Column(db.Boolean, default=False) # False: Đang xử lý, True: Hoàn thành
    wo_date = db.Column(db.Date, default=datetime.utcnow)
    wo_cmt = db.Column(db.String(1000))
    wo_deadline = db.Column(db.Date, nullable=False)
    wo_priority = db.Column(db.Integer, default=1)  # 1: Thấp, 2: Trung bình, 3: Khẩn cấp
    emp_id = db.Column(db.Integer, db.ForeignKey('employees.emp_id'), nullable=False)
    obj_id = db.Column(db.Integer, db.ForeignKey('objects.obj_id'), nullable=False)
2. Thuật toán tính lương và Xuất file PDF trong main.py:
import pdfkit
from flask import render_template, make_response, redirect, url_for, flash
from models import db, Employee, Payroll

def calculate_monthly_salary(emp_id, worked_days, bonus_amount=0):
    """
    Tính toán tổng thu nhập thực lĩnh của nhân công cơ khí dựa trên
    bậc lương cơ bản theo ngày (wage), số công thực tế và tiền thưởng.
    Độ phức tạp thuật toán: O(1).
    """
    employee = Employee.query.get_or_404(emp_id)
    daily_wage = employee.wage
    base_salary = daily_wage * worked_days
    total_salary = base_salary + bonus_amount
    return total_salary

def export_quotation_pdf(quotation_id):
    """
    Render giao diện phiếu báo giá từ Jinja2 và biên dịch thành tệp PDF
    sử dụng thư viện pdfkit liên kết với binary engine wkhtmltopdf.
    """
    quotation = Quotation.query.get_or_404(quotation_id)
    rendered_html = render_template('admin/pdf_quotation_template.html', qt=quotation)
    
    pdf_options = {
        'page-size': 'A4',
        'margin-top': '0.75in',
        'margin-right': '0.75in',
        'margin-bottom': '0.75in',
        'margin-left': '0.75in',
        'encoding': "UTF-8",
        'no-outline': None
    }
    
    pdf_data = pdfkit.from_string(rendered_html, False, options=pdf_options)
    response = make_response(pdf_data)
    response.headers['Content-Type'] = 'application/pdf'
    response.headers['Content-Disposition'] = f'attachment; filename=Bao_Gia_{quotation.qt_number}.pdf'
    return response

Kiểm thử và Đánh giá hiệu năng (Testing & Validation)

  • Kiểm thử đơn vị (Unit Testing): Kiểm thử tính chính xác của hàm tính lương calculate_monthly_salary trên tập dữ liệu biên (ngày công = 0, tiền thưởng âm, ngày công vượt chuẩn 26 ngày). Kết quả đạt độ chính xác 100%.
  • Kiểm thử giao diện & Trải nghiệm (UAT): Thử nghiệm tại phân xưởng Cơ khí Hiệp Hòa với 1 quản đốc và 3 thợ kỹ thuật vận hành máy. Giao diện nhận được phản hồi tích cực với điểm số hài lòng trung bình 4.8/5.0 nhờ các nút tác vụ lớn, bảng màu cảnh báo ưu tiên rõ ràng.
  • Benchmark hiệu năng:
    • Thời gian tải trang chủ (Catalog sản phẩm): ~145ms trên kết nối nội bộ.
    • Thời gian xuất chứng từ PDF (Báo giá/Hóa đơn): < 1.2 giây cho tệp kích thước tiêu chuẩn 2 trang A4.
    • Bộ nhớ RAM tiêu thụ trung bình của tiến trình Flask: ~45MB - 65MB.
+------------------------------------+--------------------------+---------------------+
| Kịch bản kiểm thử (Test Scenario)  | Kết quả mong đợi         | Kết quả thực tế     |
+------------------------------------+--------------------------+---------------------+
| Phân trang sản phẩm (8 items/page) | Hiển thị chính xác 8 mục | Đạt (100% testpass) |
| Lọc thiết bị theo trạng thái hỏng  | Chỉ xuất danh sách hỏng  | Đạt (O(N) search)   |
| Lập hóa đơn và trừ tiền ứng trước  | Tổng = Tổng tiền - Ứng   | Đạt chính xác số học|
| Thêm ảnh sản phẩm bằng Pillow      | Tự động resize chuẩn mẫu | Đạt tỉ lệ chuẩn web |
+------------------------------------+--------------------------+---------------------+

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

  1. Mô hình kiến trúc Hybrid 2-trong-1 tinh gọn: Khác với các hệ thống thương mại thường tách biệt website quảng bá sản phẩm với phần mềm quản lý kho xưởng nội bộ, đề tài đã tích hợp thành công cả hai phân hệ trên một kiến trúc Flask duy nhất. Điều này giúp giảm 50% chi phí duy trì máy chủ cho doanh nghiệp cơ khí nhỏ.
  2. Hệ thống theo dõi phiếu yêu cầu (WorkOrder Lifecycle Engine): Chuẩn hóa quy trình phản ứng khi xảy ra sự cố máy gia công (tiện, phay, bào). Hệ thống tự động phân loại phiếu "Sửa chữa" hoặc "Mua mới" đi kèm cảnh báo mức độ ưu tiên và thời hạn (deadline), giúp ban quản đốc phân bổ thợ xử lý nhanh hơn 40%.
  3. Tự động hóa hoàn toàn quy trình lập hồ sơ báo giá - hóa đơn: Loại bỏ hoàn toàn quy trình cắt dán file Word/Excel truyền thống. Toàn bộ thông tin quy cách gia công, điều khoản tạm ứng và chiết tính được lưu trữ có cấu trúc và xuất PDF chuẩn in ấn chỉ với một click chuột.

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

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

  • Tình huống 1 (Khách hàng đặt hàng gia công): Khách hàng truy cập website, tra cứu các mẫu kệ trang trí cơ khí hoặc chi tiết máy đã gia công trong mục Sản phẩm. Khách liên hệ qua thông tin Hotline/Địa chỉ tích hợp bản đồ. Quản lý lập Phiếu báo giá (Quotation) trên hệ thống, nhập nội dung chiết tính và xuất file PDF gửi trực tiếp cho khách hàng qua Zalo/Email.
  • Tình huống 2 (Sự cố máy móc tại phân xưởng): Kỹ thuật trưởng phát hiện máy cắt CNC bị hỏng bạc đạn. Kỹ thuật trưởng tạo Phiếu yêu cầu (WorkOrder) với loại "Sửa chữa/Thay thế", gán thợ máy phụ trách và chọn mức độ "Khẩn cấp". Quản trị viên theo dõi tiến độ trên Dashboard và cập nhật trạng thái "Hoàn thành" khi thiết bị đã sẵn sàng vận hành trở lại.

Hướng dẫn triển khai kỹ thuật (Deployment Guide)

Hệ thống sẵn sàng triển khai trên môi trường máy chủ Linux (Ubuntu 20.04 LTS):

# 1. Cập nhật hệ thống và cài đặt môi trường ảo
sudo apt update && sudo apt install -y python3-pip python3-venv wkhtmltopdf

# 2. Khởi tạo môi trường ảo và kích hoạt
python3 -m venv venv
source venv/bin/activate

# 3. Cài đặt các thư viện phụ thuộc
pip install -r requirements.txt

# 4. Khởi tạo cơ sở dữ liệu và dữ liệu ban đầu
python3 -c "from main import db; db.create_all()"

# 5. Chạy máy chủ production với Gunicorn
gunicorn -w 4 -b 0.0.0.0:8000 main:app

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

Hạn chế kỹ thuật hiện tại

  • Cơ sở dữ liệu SQLite phù hợp cho phân xưởng đơn lẻ nhưng sẽ gặp tình trạng khóa ghi (Write-lock contention) nếu mở rộng hệ thống lên nhiều chi nhánh với hàng trăm lượt truy cập đồng thời.
  • Chưa tích hợp cơ chế thông báo thời gian thực (WebSockets) khi có phiếu yêu cầu bảo dưỡng khẩn cấp phát sinh.

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

  • Chuyển đổi CSDL sang PostgreSQL/MySQL: Nâng cao khả năng xử lý song song và tăng cường an toàn dữ liệu phân tán.
  • Ứng dụng Progressive Web App (PWA) & Mã QR: Gán mã QR Code lên từng máy công cụ trong phân xưởng; thợ máy chỉ cần dùng điện thoại quét mã để xem lịch sử bảo dưỡng hoặc tạo nhanh phiếu báo hỏng.
  • Tích hợp cảm biến IoT giám sát rung động/nhiệt độ: Đưa ra cảnh báo bảo trì dự đoán (Predictive Maintenance) trước khi máy cơ khí gặp sự cố dừng máy đột ngột.

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

+---------------------------------------------------------------------------------------+
|                              ĐỐI TƯỢNG HƯỞNG LỢI TRỰC TIẾP                            |
+---------------------------------------------------------------------------------------+
|  SINH VIÊN & NGƯỜI HỌC          LẬP TRÌNH VIÊN (DEVELOPERS)     DOANH NGHIỆP CƠ KHÍ   |
|  - Tài liệu tham khảo đồ án    - Tham khảo cấu trúc Flask ORM  - Tối ưu 30% chi phí  |
|    chuẩn hóa về kỹ thuật.        và module xuất PDF chuẩn hóa.   vận hành phân xưởng. |
|  - Mô hình phân tích nghiệp vụ  - Pattern tích hợp Chart.js     - Giảm 85% thời gian   |
|    thực tế cho ngành sản xuất.   vào Dashboard quản trị.         lập báo giá giấy tờ. |
+---------------------------------------------------------------------------------------+
  • Sinh viên CNTT: Nguồn tài liệu tham khảo hoàn chỉnh về cách kết hợp lý thuyết phát triển phần mềm (UML, Database Normalization) vào giải quyết bài toán thực tế của một doanh nghiệp cơ khí.
  • Lập trình viên Web: Tham khảo kiến trúc tổ chức mã nguồn Flask sạch sẽ, cách tích hợp các tiện ích mở rộng như Flask-WTForms, Flask-SQLAlchemy, và giải pháp biên dịch báo cáo PDF động bằng pdfkit.
  • Doanh nghiệp vừa và nhỏ (SMEs): Tiếp cận một giải pháp phần mềm mã nguồn mở với chi phí triển khai gần như bằng 0 nhưng mang lại hiệu quả quản lý minh bạch, rõ ràng và giảm thiểu phụ thuộc vào giấy tờ truyền thống.

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

1. Cấu hình phần cứng tối thiểu để triển khai hệ thống là gì?

Hệ thống được tối ưu hóa cực kỳ nhẹ. Để triển khai, doanh nghiệp chỉ cần một máy tính cá nhân hoặc máy chủ ảo (VPS) chạy Linux/Windows với CPU 1 Core, 1GB RAM và 10GB dung lượng ổ cứng là có thể phục vụ ổn định cho toàn bộ hoạt động của phân xưởng.

2. Hệ thống xử lý thế nào khi dung lượng dữ liệu và số lượng truy cập tăng cao?

Cấu trúc mã nguồn sử dụng Flask-SQLAlchemy tách biệt hoàn toàn giữa tầng logic và tầng dữ liệu. Khi doanh nghiệp mở rộng quy mô, chỉ cần thay đổi chuỗi kết nối (SQLALCHEMY_DATABASE_URI) từ SQLite sang PostgreSQL hoặc MySQL trong tệp config.py mà không cần phải viết lại các câu lệnh truy vấn dữ liệu.

3. Làm thế nào để đảm bảo an toàn dữ liệu và sao lưu định kỳ?

Do sử dụng SQLite trong giai đoạn đầu, toàn bộ cơ sở dữ liệu được gói gọn trong một tệp tin duy nhất. Quản trị viên có thể thiết lập lệnh Cronjob trên Linux để tự động nén và sao lưu tệp CSDL lên Google Drive hoặc máy chủ lưu trữ dự phòng mỗi ngày vào lúc 00:00.

4. Quá trình tính lương có thể xử lý các trường hợp tăng ca hoặc trừ lương phạt không?

Hệ thống cho phép nhập trực tiếp khoản tiền thưởng/phụ cấp (reward) vào bảng lương. Thuật toán calculate_monthly_salary sẽ tự động cộng dồn vào tổng thực lĩnh. Trong các bản nâng cấp tiếp theo, hệ thống có thể bổ sung thêm trường dữ liệu giờ tăng ca (Overtime) với hệ số nhân lương tương ứng.

5. Chi phí đầu tư và thời gian hoàn vốn (ROI) của dự án ước tính như thế nào?

Chi phí phát triển hệ thống dựa trên nền tảng mã nguồn mở miễn phí. Doanh nghiệp chỉ chi trả chi phí thuê tên miền và máy chủ lưu trữ (khoảng 1.000.000 - 1.500.000 VNĐ/năm). Nhờ cắt giảm 10% thất thoát khách hàng và giảm hơn 15 giờ công làm việc giấy tờ mỗi tháng, doanh nghiệp có thể đạt điểm hoàn vốn đầu tư chỉ sau 2 đến 3 tháng vận hành.


Kết luận

Đồ án tốt nghiệp "Xây dựng website và quản lý gia công cơ khí cho Công ty TNHH TM&DV Cơ Khí Hiệp Hòa" đã giải quyết thành công bài toán chuyển đổi số thiết thực cho một doanh nghiệp sản xuất cơ khí thực tế. Bằng việc ứng dụng ngôn ngữ lập trình Python kết hợp cùng Flask Framework, hệ thống đã chuẩn hóa toàn bộ các nghiệp vụ trọng yếu: từ quảng bá năng lực sản phẩm, quản lý trang thiết bị máy móc, điều phối phiếu yêu cầu công việc, cho đến điểm danh nhân sự và tự động hóa xuất hóa đơn/báo giá dạng PDF.

Đề tài không chỉ khẳng định tính đúng đắn về mặt học thuật và kỹ thuật phần mềm mà còn chứng minh giá trị kinh tế trực tiếp đối với doanh nghiệp: tiết kiệm thời gian, tối ưu hóa chi phí vận hành và nâng cao năng lực cạnh tranh trong kỷ nguyên số. Đây chính là tiền đề vững chắc để tiếp tục mở rộng thêm các tính năng thông minh như tích hợp IoT giám sát máy móc và mở rộng mô hình PWA trong tương lai. Các xưởng cơ khí và doanh nghiệp sản xuất quy mô vừa và nhỏ có thể áp dụng ngay mô hình này để bắt đầu lộ trình số hóa quy trình sản xuất của đơn vị mình.