INKAVA Build Proposal
Printing MIS Product — Từ Incubator Đến Sản Phẩm
→ Xem Bản Đồ Toàn Cảnh Nhà MáyExecutive Summary — TL;DR
Nghiên cứu Data Models thực tế từ ngành
Dựa trên phân tích PrintVis (Dynamics 365), EFI Pace, Acumatica PrintShop, X-Rite InkFormulation
| Chủ đề | Hệ thống thực tế làm gì | Cần tránh |
|---|---|---|
| Sample vs Production | 1 Job entity duy nhất + status flags (Draft → Sample → Production → Shipped). Sample = child records type=LabDip/StrikeOff | Tách riêng Sample Job + Production Job |
| Công thức mực | Thư viện ngoài liên kết qua ID. Mỗi formula = 1 màu × 1 substrate. Versioning = duplicate + rename (v1, v2) | Nhúng formula vào bảng Job. Formula parameterized cho nhiều substrate |
| Cấu trúc Job/Case | Case → Job → JobItem (per decoration). Apparel = nhân bản: colors × sizes × placements = N line items | Job phẳng đơn giản hóa quá mức, không handle apparel complexity |
| Quản lý Lưới/Bản | Inventory đơn giản + usage history (impression count). Reclamation = kiểm tra thủ công | Lifecycle tự động, dự đoán hao mòn, chi phí khấu hao per impression |
| Thông số in | Tách riêng khỏi formula. Per Job × Machine. Operator có thể override | Gộp print params vào formula. 1 bộ tham số cho mọi máy |
| Dung sai màu | Delta E CMC l:c 2:1. ≤1.0 = PASS. Lưu metadata, không tính trong ERP | Build tính Delta E vào MIS (dùng spectrophotometer integration) |
| Quy mô DB | ~15 bảng chính, 20-35 lookups. Status-based workflow, manual override ưu tiên | Multi-level BOM, auto cost allocation, capacity scheduling, lot tracking |
5 Nguyên tắc thiết kế cho INKAVA
1 Job chuyển qua các giai đoạn, không tạo bản ghi trùng lặp
Formula, screen, machine — tất cả tham chiếu qua ID, không nhúng vào Job
Danh sách vật tư phẳng, không dùng multi-level BOM
Tự động hóa thu thập dữ liệu, nhưng để con người quyết định
Đa số bỏ qua đo Delta E → duyệt mắt. E-invoice (Nghị định 78/2021) bắt buộc. Workflow đơn giản, tránh bắt buộc approval phức tạp.
Bối Cảnh & Mục Tiêu
INKAVA là hệ thống MIS (Management Information System) cho nhà máy in ấn / trang trí vải. Hiện tại đã chạy production tại 1 nhà máy ~140 nhân viên. Quản lý toàn bộ quy trình từ kế hoạch sản xuất đến giao nhận thành phẩm.
Mục tiêu product hóa
| Hiện Tại | Mục Tiêu | |
|---|---|---|
| Phạm vi | 1 nhà máy duy nhất | Multi-factory SaaS |
| Công nghệ | Legacy PHP thuần | Modern stack, cloud-ready |
| Doanh thu | Công cụ nội bộ (chi phí) | Sản phẩm bán được (doanh thu) |
| Dữ liệu | Phân mảnh, phụ thuộc Excel | Single source of truth |
| Giao diện | Chỉ desktop, jQuery | Responsive, dùng được trên tablet |
Hệ Thống Hiện Tại
Ưu Điểm — Đang Chạy Tốt
28 fields chi tiết, clone công thức, chốt SX, 3 views cho 3 bộ phận (Phòng Mực, Phòng Bảng, Tổ SX). 12 AJAX endpoints. Đây là lợi thế cạnh tranh.
Kiểm tra CLI + KC, ghi lỗi + giải pháp. Workflow tốt, dữ liệu đầy đủ.
QR scan, in phiếu qua WebClientPrint, xuất Excel. Tracking nội bộ hoạt động tốt.
3 quy trình, upload ảnh, KPI. Lean manufacturing chuẩn.
Kiểm tra chất lượng đầu dây chuyền. Checklist đầy đủ, tìm kiếm đa tiêu chí.
Nhược Điểm — Cần Giải Quyết
PHP thuần — không routing, middleware, ORM, migration. Sửa 1 chỗ có thể vỡ 3 chỗ.
Frontend gọi trực tiếp AJAX tới PHP files. Không thể tích hợp mobile/bên ngoài.
PHP thuần thường dùng nối chuỗi cho truy vấn SQL.
Code trên server, không có lịch sử phiên bản, không rollback được.
| Thiếu sót | Mức độ | Chi tiết |
|---|---|---|
| Không có báo giá | Nghiêm trọng | Tính giá tay trên Excel. Không biết margin thật. |
| Không có PO lifecycle | Nghiêm trọng | PO chỉ là 1 trường text. Không trạng thái, không timeline. |
| Không có master KH | Cao | Khách hàng nhập tay mỗi lần, không CRM, không lịch sử. |
| Không có master mã hàng | Cao | Mã hàng phân tán ở kế hoạch + PTM. |
| Không có tồn kho NPL | Cao | Chỉ có danh sách. Không tồn kho, không cảnh báo tối thiểu. |
| Dữ liệu nhập kép | Cao | KH, mã hàng, PO nhập lại ở nhiều modules. |
| Dashboard thiếu | Trung bình | Chỉ có 4 KPI sản xuất. Không có doanh thu, margin, pipeline. |
Luồng Dữ Liệu: Hiện Tại vs Lý Tưởng
Mỗi mũi tên = nhập lại dữ liệu, rủi ro sai/thiếu/chậm
Dữ liệu chảy tự động, kế thừa từ bước trước
Gap Analysis — Chuỗi Giá Trị 12 Bước
Quyết Định: Giữ / Cải Thiện / Xây Mới
| Phân loại | Modules | Cách tiếp cận |
|---|---|---|
| GIỮ NGUYÊN | PTM, KCS BTP Inline, 5 BTP Đầu, Kiểm Tra CL, Giao Nhận QR, Gemba/5S, NV+RBAC, NINUNAPZ | Tái triển khai logic trong sản phẩm mới với UX tốt hơn |
| CẢI THIỆN | Kế Hoạch, Định Mức Mực, Quyết Toán, NPL, Code Mực, Dashboard, Thương Mại | Build lại trong sản phẩm mới với dữ liệu từ đơn hàng |
| XÂY MỚI | Master KH, Master Mã Hàng, Quản Lý Đơn Hàng, Tiếp Nhận, Báo Giá, Cost Engine, Lịch SX, Giao Hàng, Margin, Dashboard KD | Core của sản phẩm mới. Giải quyết các gaps lớn nhất. |
So Sánh Tech Stack
Phương án A: Laravel
Full-stack PHP framework. Team quen PHP.
Phương án B: Next.js + Supabase
Modern JS stack. Sản phẩm mới hoàn toàn.
Phương án C: Giữ PHP
Giữ legacy, thêm REST API bọc ngoài.
Chi Tiết Chấm Điểm
| Tiêu chí | Trọng số | Laravel | Next.js+SB | Giữ PHP |
|---|---|---|---|---|
| Tốc độ dev đơn lẻ + Claude | 25% | 7 | 9 | 4 |
| Product hóa / multi-tenant | 20% | 6 | 9 | 2 |
| Chất lượng giao diện | 15% | 7 | 9 | 3 |
| Chi phí hạ tầng | 10% | 7 | 9 | 8 |
| Thời gian đến MVP | 15% | 7 | 8 | 5 |
| Khả năng bảo trì | 10% | 8 | 8 | 3 |
| Rủi ro đường cong học | 5% | 7 | 5 | 9 |
| TỔNG ĐIỂM | 100% | 6.95 | 8.55 | 3.95 |
Lý do: (1) Supabase RLS = multi-tenant sẵn — thêm nhà máy chỉ cần thêm row. (2) Claude Code rất mạnh React/TS — dev đơn lẻ ship nhanh. (3) Free tier đủ cho MVP. (4) Đã có Supabase + Vercel MCP tools. (5) shadcn/ui = giao diện đẹp, responsive cho tablet.
Kiến Trúc Đề Xuất
Database Schema — 15 Bảng Chính
users (id, tenant_id, email, vai trò)
roles (id, tenant_id, tên, quyền[])
products (id, mã, chất liệu, kỹ thuật)
materials (id, mã, NCC, đơn giá)
order_items (id, product_id, SL, sizes{})
ink_formulas (id, product_id, màu)
ink_components (id, formula_id, KL)
qc_reports (id, order_item_id, loại)
delivery_notes (id, SL, mã QR)
settlements (id, ước tính, thực tế)
tenant_id. Supabase RLS đảm bảo nhà máy A không thấy dữ liệu nhà máy B. Thêm nhà máy mới = INSERT 1 row vào bảng tenants, không cần deploy server.
Lộ Trình Build & Deliverables
- Khởi tạo Supabase project + thiết kế DB schema (15 bảng chính + 20 bảng tra cứu)
- Cài đặt RLS policies cho multi-tenant
- Nhập dữ liệu mẫu từ nhà máy thật (NPL, code mực, nhân viên)
- Khởi tạo Next.js project + triển khai lên Vercel
- Luồng xác thực (đăng nhập/đăng xuất) + RBAC middleware
- Khung giao diện (sidebar, thanh trên, responsive)
- Tuần 3: Master Khách Hàng — CRUD + tìm kiếm + trang chi tiết
- Tuần 4: Master Mã Hàng — CRUD + thông số (chất liệu, kỹ thuật, số màu)
- Tuần 5: Quản Lý Đơn Hàng + chi tiết + phân chia size + luồng trạng thái
- Tuần 6: Đơn hàng → tự tạo Kế Hoạch, import Excel, Dashboard v1 (pipeline)
- Tuần 7: Thiết lập tham số chi phí + Quản lý giá NPL
- Tuần 8: Module Công Thức Mực (tái triển khai PTM 28 fields)
- Tuần 9: Cost Engine tự động tính (mực + bảng + nhân công + hao hụt)
- Tuần 10: Module tiếp nhận yêu cầu + upload file thiết kế
- Tuần 11: Module báo giá + xuất PDF
- Tuần 12: Báo giá → Đơn hàng tự động + lịch sử báo giá
- Tuần 13: Module sản xuất (KCS, năng suất) + quét QR
- Tuần 14: Tồn kho NPL + Đối soát mực (Pha − Cấp − Thải = Tồn)
- Tuần 15: Theo dõi giao hàng + tự đóng đơn khi giao đủ
- Tuần 16: Quyết toán + Phân tích margin (Báo giá vs Thực tế)
- Tuần 17: Dashboard Kinh Doanh (pipeline, doanh thu, top KH, tỷ lệ thắng)
- Tuần 18: Dashboard Chi Phí (thực tế vs ngân sách, chi phí hao phí) + Cảnh báo
- Tuần 19: Module báo cáo + Tích hợp hóa đơn điện tử (cơ bản)
Phạm Vi MVP
Giải quyết vấn đề gốc rễ: dữ liệu phân mảnh. Khi mỗi đơn hàng có 1 ID duy nhất, mọi module sau chỉ cần tham chiếu ID đó.
- Tạo và quản lý khách hàng
- Tạo và quản lý mã hàng (product master)
- Tạo đơn hàng với PO, SLHD, phân chia size
- Theo dõi trạng thái đơn hàng (Nháp → Hoàn thành)
- Dashboard pipeline cơ bản
- Import đơn hàng từ Excel
- Responsive trên tablet (dùng tại xưởng)
- Báo giá & Cost engine
- Công thức mực chi tiết
- Tồn kho NPL & Mực
- Dashboard kinh doanh
- Phân tích margin
- Tích hợp hóa đơn điện tử
Ngày Đầu Tiên — 5 Hành Động Cụ Thể
| # | Hành động | Thời gian | Kết quả |
|---|---|---|---|
| 1 | Tạo Supabase project | 10 phút | URL project + API keys |
| 2 | Khởi tạo Next.js + triển khai Vercel | 15 phút | URL truy cập được (trang trắng) |
| 3 | Thiết kế DB schema (SQL migrations) | 2–3 giờ | 15 bảng chính + 20 bảng tra cứu |
| 4 | Nhập dữ liệu mẫu từ nhà máy thật | 1–2 giờ | NPL, code mực, NV có dữ liệu |
| 5 | Xác thực + khung giao diện | 3–4 giờ | Đăng nhập hoạt động, sidebar điều hướng |
Rủi Ro & Giải Pháp
| Rủi ro | Xác suất | Ảnh hưởng | Giải pháp |
|---|---|---|---|
| Đường cong học TypeScript | Cao | TB | Claude Code viết TS rất tốt. Học qua thực hành. |
| Nhà máy mất internet | TB | Cao | PWA + bộ nhớ cache ngoại tuyến (Giai đoạn 2+). MVP cần internet. |
| Di chuyển dữ liệu cũ | Cao | TB | Xây công cụ import Excel. Di chuyển từng nhà máy, không big-bang. |
| Người dùng không quen giao diện mới | TB | TB | Giữ quy trình quen thuộc, chỉ đổi giao diện. Đào tạo 1–2 buổi. |
| Supabase free tier không đủ | Thấp | Thấp | Free: 500MB DB, 1GB storage. Đủ cho 2–3 nhà máy. |
| Phình scope tính năng | Cao | Cao | Giữ ranh giới giai đoạn nghiêm ngặt. Ship MVP trước, lặp lại sau. |
Phối Hợp In-house IT & Migration
Lộ trình chuyển đổi song song
Phân công: BEUP vs Inkava IT
- Thiết kế DB Supabase (PostgreSQL)
- Build toàn bộ modules mới (Next.js)
- UI + API + CI/CD + deploy Vercel
- Viết data migration scripts
- Training cho end users
- Export MySQL schema + data CSV
- Giải thích business rules phức tạp
- Maintain PHP code hiện tại
- Validate data sau migration
- Test legacy không bị ảnh hưởng
Data Migration: MySQL → Supabase
| Bảng MySQL cũ | → | Bảng Supabase mới |
|---|---|---|
danh_sach_npl | CSV | materials |
danh_sach_code_muc | CSV | ink_codes |
nhan_vien | CSV | users |
ke_hoach_khach_hang | CSV | orders + order_items |
cong_thuc_muc | CSV | ink_formulas + ink_components |
phieu_giao_nhan | CSV | delivery_notes |
Quy trình: IT export CSV → BEUP transform script → import staging → IT validate → import production. Legacy vẫn chạy song song suốt quá trình.
Giao tiếp
INKAVA Build Proposal v1.0 · 31/03/2026 · Bản nháp
Nghiên cứu: Mô hình dữ liệu MIS ngành in · Phân tích nghiệp vụ (24 modules) · Gap Analysis · Chiến lược xây dựng
Tài liệu liên quan
→ Xem Bản Đồ Toàn Cảnh Nhà Máy INKAVA