Setup DataTP Project
📋 Yêu cầu công cụ và cấu hình
🛠️ Công cụ chính
Công cụ | Phiên bản | Mô tả |
---|---|---|
Node.js | > 23 | JavaScript runtime |
pnpm | Mới nhất | Package manager |
Git | Mới nhất | Version control |
Java | 21 | Java runtime |
Gradle | > 8.7 | Build tool |
VS Code/Eclipse | Mới nhất | IDE |
Postgres | > 16 | Database server |
DBeaver | Mới nhất | Database explorer |
🧰 Công cụ bổ sung
- Python (phiên bản 3.10 trở lên)
- Docker
- K3s
⚙️ Cấu hình
1. Git
# Cấu hình thông tin người dùng
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
# Cấu hình file mode
git config --global core.filemode false
# Cấu hình line ending với unix style
git config --global core.autocrlf false
2. SSH Key
# Tạo SSH key mới
ssh-keygen -t ed25519 -b 4096 -C "your_email@example.com"
# Khởi động SSH agent
eval "$(ssh-agent -s)"
# Thêm SSH key vào SSH agent
ssh-add ~/.ssh/id_ed25519
3. Thêm SSH key vào tài khoản GitLab
- Sao chép nội dung SSH key
cat ~/.ssh/id_ed25519.pub | pbcopy
- Đăng nhập vào GitLab
- Vào Settings > SSH Keys
- Dán SSH key và đặt tên cho key
🚀 Cài đặt dự án
1. Tạo thư mục root và clone dự án
# Tạo thư mục root
mkdir datatp
cd datatp
# Clone các dự án
git clone git@gitlab:datatp.net:tuan/datatp-core.git
git clone git@gitlab:datatp.net:tuan/datatp-erp.git
git clone git@gitlab:datatp.net:tuan/datatp-document-ie.git
git clone git@gitlab:datatp.net:tuan/datatp-logistics.git
git clone git@gitlab:datatp.net:tuan/datatp-crm.git
git clone git@gitlab:datatp.net:tuan/datatp-build.git
📂 Cấu trúc dự án
Sau khi clone, cấu trúc thư mục của dự án sẽ như sau:
datatp/
├── datatp-core/ # Core services và utilities
│ ├── app/ # Core application
│ ├── service/ # Core services
│ └── webui/ # Core UI components
│
├── datatp-erp/ # Enterprise Resource Planning
│ ├── app/ # ERP application
│ ├── module/ # ERP modules
│ └── webui/ # ERP UI components
│ ├── lib/ # Shared UI library
│ └── erp/ # ERP specific UI
│
├── datatp-document-ie/ # Document Information Extractor
│ ├── app/ # Document IE application
│ └── webui/ # Document IE UI
│
├── datatp-logistics/ # Logistics management
│ ├── app/ # Logistics application
│ ├── module/ # Logistics modules
│ └── webui/ # Logistics UI
│
├── datatp-crm/ # Customer Relationship Management
│ ├── app/ # CRM application
│ └── webui/ # CRM UI
│
└── datatp-build/ # Build tools and configurations
├── scripts/ # Build scripts
└── config/ # Build configurations
🔄 Quan hệ giữa các dự án
┌─────────────────┐
│ datatp-build │
└─────────┬───────┘
▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│document-ie │ │ datatp-crm │ │datatp-logistics │
└─────────┬───────┘ └─────────┬───────┘ └─────────┬───────┘
│ │ │
│ │ │
▼ ▼ ▼
┌─────────────────┐
│ datatp-erp │
└─────────┬───────┘
│
│
▼
┌─────────────────┐
│ datatp-core │
└─────────────────┘
2. Backend
Cài đặt dependencies và build cho từng projects theo thứ tự:
⚠️ Quan trọng: Tuân thủ đúng thứ tự build
- datatp-core
- datatp-erp
- datatp-document-ie
- datatp-logistics
- datatp-crm
- datatp-build
cd datatp-core
gradle clean build -x test
gradle publishToMaven
3. Frontend
Install và build webui cho các dự án:
cd datatp-erp/webui/lib
pnpm install
pnpm run build
4. Database và môi trường
📁 Thực hiện trong thư mục:
working/release-dev/server-env/
- Cấu hình thông tin server posgres trong file
db-env.sh
DB_HOST='localhost'
DB_PORT='5432'
PG_ADMIN_USER='postgres' # User admin database
PG_ADMIN_PASSWORD='pgadmin' # Password admin database
- Cấu hình thông tin files application config theo môi trường.
# Copy file application-dev-sample.yaml thành application-dev.yaml
cp application-dev-sample.yaml application-dev.yaml
# Copy file application-prod-sample.yaml thành application-prod.yaml
cp application-prod-sample.yaml application-prod.yaml
- Tạo database, user, restore database mẫu.
./db.sh [db_name] [create-admin][create-user][create-ro-user][vacuum][new][drop]
# Example
./db.sh datatpdb create-admin
./db.sh datatpdb create-user
./db.sh datatpdb create-ro-user
./db.sh datatpdb new
./db.sh datatpdb restore --file=datatpdb-latest.dump
./db.sh datatpdb vacuum
./db.sh datatpdb dump
./db.sh datatpdb drop
4.1. DataTP Core
- Download database tại: https://beelogistics.cloud/download/datatpdb-latest.dump
- Tạo user, khởi tạo DB, và restore database mẫu:
./db.sh datatpdb new
./db.sh datatpdb create-user
./db.sh datatpdb new
./db.sh datatpdb restore --file=datatpdb-latest.dump
4.2. DataTP Document IE
- Download database tại: https://beelogistics.cloud/download/document_ie_db-latest.dump
- Tạo user, khởi tạo DB, và restore database mẫu:
./db.sh document_ie_db new
./db.sh document_ie_db create-user
./db.sh document_ie_db new
./db.sh document_ie_db restore --file=document_ie_db-latest.dump
5. Khởi động server phát triển.
5.1. Backend.
cd datatp-build
./datatp.sh build:all -build-ui
./datatp.sh instances run:update
5.2. Frontend.
cd datatp-build/web/phoenix
ADD_APPS="logistics" pnpm run dev-server
Mở http://localhost:3000 để xem trang web.
🔍 Kiểm tra cài đặt
- Tất cả các dự án đã được clone thành công
- Backend đã được build theo đúng thứ tự
- Frontend đã được cài đặt và build
- Database đã được khởi tạo và restore
- Server phát triển đã khởi động thành công