Skip to content

KIẾN TRÚC HỆ THỐNG

1. Tổng Quan Kiến Trúc

1.1 Mô Hình Triển Khai

Kiến trúc Web 3-Tier (Ba tầng)

┌─────────────────────────┐
│   Presentation Layer    │  ← Giao diện người dùng
│     (Web Browser)       │
└───────────┬─────────────┘
            │ HTTPS
┌───────────▼─────────────┐
│   Application Layer     │  ← Logic nghiệp vụ
│    (Web Server)         │
│  - PHP/Python/Node.js   │
│  - REST API             │
└───────────┬─────────────┘
            │ SQL
┌───────────▼─────────────┐
│      Data Layer         │  ← Lưu trữ dữ liệu
│   (Database Server)     │
│    MySQL/PostgreSQL     │
└─────────────────────────┘

1.2 Technology Stack Đề Xuất

Option 1: PHP Stack (Phổ biến, dễ triển khai)

  • Backend: PHP 8.2+ với Laravel Framework
  • Frontend: Vue.js 3 hoặc React
  • Database: MySQL 8.0+
  • Server: Apache/Nginx + PHP-FPM

Option 2: Python Stack (Mạnh về xử lý dữ liệu)

  • Backend: Python 3.11+ với Django/FastAPI
  • Frontend: Vue.js 3 hoặc React
  • Database: PostgreSQL 14+
  • Server: Gunicorn + Nginx

Option 3: Node.js Stack (Full JavaScript)

  • Backend: Node.js 18+ với NestJS/Express
  • Frontend: Next.js (React)
  • Database: PostgreSQL 14+
  • Server: PM2 + Nginx

2. Sơ Đồ Kiến Trúc Chi Tiết

mermaid
graph TB
    User[Người Dùng] -->|HTTPS| LB[Load Balancer/Nginx]
    LB --> Web1[Web Server 1]
    LB --> Web2[Web Server 2]
    
    Web1 --> Cache[Redis Cache]
    Web2 --> Cache
    
    Web1 --> DB[(MySQL Master)]
    Web2 --> DB
    
    DB -->|Replication| DBR[(MySQL Replica)]
    
    Web1 --> Storage[File Storage]
    Web2 --> Storage
    
    Web1 --> Queue[Job Queue]
    Web2 --> Queue
    
    Queue --> Worker[Background Worker]
    Worker --> DB
    Worker --> Storage
    
    style User fill:#e1f5ff
    style DB fill:#ffe1e1
    style Cache fill:#ffe1f5
    style Storage fill:#f5ffe1

3. Các Module Chính

3.1 Module Quản Lý Đơn Hàng (Order Management)

Features:
- Tạo/Sửa/Xóa đơn hàng
- Tính toán báo giá tự động
- Theo dõi trạng thái đơn hàng
- Lịch sử thay đổi đơn hàng
- In phiếu đơn hàng

3.2 Module Quản Lý Sản Xuất (Production Management)

Features:
- Tạo lệnh sản xuất từ đơn hàng
- Phân công công việc
- Theo dõi tiến độ từng công đoạn
- Quản lý máy móc thiết bị
- Báo cáo năng suất

3.3 Module Quản Lý Kho (Inventory Management)

Features:
- Nhập/Xuất kho NVL và thành phẩm
- Kiểm kê tồn kho
- Cảnh báo hết hàng
- Báo cáo xuất nhập tồn
- Quản lý vị trí kho

3.4 Module Quản Lý Khách Hàng (CRM)

Features:
- Danh sách khách hàng
- Lịch sử giao dịch
- Quản lý công nợ
- Phân loại khách hàng
- Ghi chú và theo dõi

3.5 Module Tài Chính (Finance)

Features:
- Lập hóa đơn VAT
- Thu chi
- Báo cáo công nợ
- Báo cáo doanh thu
- Đối chiếu công nợ

3.6 Module Báo Cáo (Reports)

Features:
- Dashboard tổng quan
- Báo cáo doanh thu theo thời gian
- Báo cáo sản lượng
- Báo cáo hiệu suất sản xuất
- Báo cáo tồn kho
- Export Excel/PDF

4. API Design

4.1 RESTful API Structure

Base URL: https://api.paper-factory.com/v1

Authentication: JWT Token
Authorization: Bearer {token}

4.2 Key Endpoints

Đơn Hàng (Orders)

GET    /orders                  # Danh sách đơn hàng
GET    /orders/{id}             # Chi tiết đơn hàng
POST   /orders                  # Tạo đơn hàng mới
PUT    /orders/{id}             # Cập nhật đơn hàng
DELETE /orders/{id}             # Xóa đơn hàng
PATCH  /orders/{id}/status      # Cập nhật trạng thái
GET    /orders/{id}/timeline    # Lịch sử đơn hàng
POST   /orders/{id}/quote       # Tạo báo giá

Sản Xuất (Production)

GET    /production-orders              # Danh sách lệnh SX
POST   /production-orders              # Tạo lệnh SX
PATCH  /production-orders/{id}/step    # Cập nhật công đoạn
GET    /production-orders/{id}/progress # Tiến độ SX

Kho (Inventory)

GET    /materials                 # Danh sách NVL
POST   /inventory/transactions    # Nhập/Xuất kho
GET    /inventory/balance         # Tồn kho hiện tại
GET    /inventory/alerts          # Cảnh báo hết hàng

Khách Hàng (Customers)

GET    /customers               # Danh sách khách hàng
POST   /customers               # Tạo khách hàng
GET    /customers/{id}/orders   # Đơn hàng của KH
GET    /customers/{id}/debt     # Công nợ của KH

4.3 API Response Format

Success Response:

json
{
  "success": true,
  "data": {
    // Dữ liệu trả về
  },
  "message": "Thành công"
}

Error Response:

json
{
  "success": false,
  "error": {
    "code": "ORDER_NOT_FOUND",
    "message": "Không tìm thấy đơn hàng"
  }
}

Pagination:

json
{
  "success": true,
  "data": [...],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 150,
    "totalPages": 8
  }
}

5. Bảo Mật (Security)

5.1 Authentication & Authorization

- JWT Token-based authentication
- Role-based access control (RBAC)
- Session timeout: 8 giờ
- Password: Tối thiểu 8 ký tự, có chữ hoa, số, ký tự đặc biệt

5.2 Data Security

- Mã hóa mật khẩu: bcrypt
- HTTPS bắt buộc cho mọi request
- SQL Injection prevention: Prepared Statements
- XSS prevention: Input sanitization
- CSRF protection: CSRF tokens

5.3 phân Quyền Người Dùng

RoleQuyền
ADMINToàn quyền hệ thống
MANAGERXem mọi dữ liệu, duyệt đơn hàng
SALESTạo/Sửa đơn hàng, xem báo cáo bán hàng
PRODUCTIONCập nhật tiến độ sản xuất
WAREHOUSENhập/Xuất kho, kiểm kê
ACCOUNTANTQuản lý tài chính, công nợ

6. File Storage

6.1 Cấu Trúc Thư Mục

/storage
├── /uploads
│   ├── /designs        # File thiết kế của khách
│   ├── /quotations     # File báo giá PDF
│   ├── /invoices       # Hóa đơn PDF
│   ├── /signatures     # Chữ ký nghiệm thu
│   └── /avatars        # Ảnh đại diện user
├── /temp               # File tạm
└── /backups            # Backup database

6.2 Upload Policies

- Max file size: 50MB
- Allowed types: PDF, JPG, PNG, AI, PSD, DOCX
- Virus scan trước khi lưu
- Tự động resize ảnh lớn
- Lưu trữ cloud: AWS S3 / Google Cloud Storage (tùy chọn)

7. Performance Optimization

7.1 Caching Strategy

Redis Cache:
- Session data: TTL 8h
- Danh sách đơn hàng: TTL 5 phút
- Tồn kho: TTL 10 phút
- Báo cáo: TTL 1 giờ

7.2 Database Optimization

- Indexes cho các trường tìm kiếm thường xuyên
- Query optimization
- Connection pooling
- Read replica cho báo cáo

7.3 Frontend Optimization

- Code splitting
- Lazy loading
- Image compression
- CDN cho static files
- Service Worker cho offline support

8. Monitoring & Logging

8.1 Application Monitoring

Tools: New Relic / Datadog / Sentry
- API response time
- Error rate
- Database query performance
- Server resources (CPU, RAM, Disk)

8.2 Logging

Log Levels: ERROR, WARNING, INFO, DEBUG

Log Types:
- Access logs (Nginx)
- Application logs (Laravel/Django)
- Database slow query logs
- Security logs (failed logins, suspicious activities)

8.3 Alerts

Cảnh báo qua Email/Telegram khi:
- Server down
- Error rate > 5%
- Database connection failed
- Disk space < 20%
- Response time > 3s

9. Backup & Disaster Recovery

9.1 Backup Strategy

Database Backup:
- Full backup: Hàng ngày lúc 2:00 AM
- Incremental backup: Mỗi 4 giờ
- Retention: 30 ngày
- Location: Local + Cloud (S3/GCS)

File Backup:
- Backup hàng tuần
- Retention: 90 ngày

9.2 Recovery Plan

RTO (Recovery Time Objective): 2 giờ
RPO (Recovery Point Objective): 4 giờ

Disaster Scenarios:
1. Database corruption → Restore from latest backup
2. Server failure → Failover to secondary server
3. Data center down → Switch to cloud backup

10. Deployment

10.1 Development Workflow

Environments:
1. Development (Local)
2. Staging (Testing server)
3. Production (Live)

Git Flow:
- main/master: Production
- staging: Testing
- develop: Development
- feature/*: Tính năng mới

10.2 CI/CD Pipeline

Tools: GitLab CI / GitHub Actions / Jenkins

Pipeline:
1. Code push to Git
2. Run tests
3. Build application
4. Deploy to staging
5. Manual approval
6. Deploy to production

10.3 Server Requirements

Minimum:

  • CPU: 4 cores
  • RAM: 8GB
  • Disk: 256GB SSD
  • Bandwidth: 100Mbps

Recommended:

  • CPU: 8 cores
  • RAM: 16GB
  • Disk: 512GB SSD
  • Bandwidth: 1Gbps

Tài liệu hệ thống quản lý sản xuất giấy