Giao diện
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:#f5ffe13. 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àng3.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ất3.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í kho3.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õi3.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/PDF4. 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 độ SXKho (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àngKhá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 KH4.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ệt5.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 tokens5.3 phân Quyền Người Dùng
| Role | Quyền |
|---|---|
| ADMIN | Toàn quyền hệ thống |
| MANAGER | Xem mọi dữ liệu, duyệt đơn hàng |
| SALES | Tạo/Sửa đơn hàng, xem báo cáo bán hàng |
| PRODUCTION | Cập nhật tiến độ sản xuất |
| WAREHOUSE | Nhập/Xuất kho, kiểm kê |
| ACCOUNTANT | Quả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 database6.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áo7.3 Frontend Optimization
- Code splitting
- Lazy loading
- Image compression
- CDN cho static files
- Service Worker cho offline support8. 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 > 3s9. 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ày9.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 backup10. 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ới10.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 production10.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