Nhảy tới nội dung

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ảnMô tả
Node.js> 23JavaScript runtime
pnpmMới nhấtPackage manager
GitMới nhấtVersion control
Java21Java runtime
Gradle> 8.7Build tool
VS Code/EclipseMới nhấtIDE
Postgres> 16Database server
DBeaverMới nhấtDatabase 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

  1. Sao chép nội dung SSH key
    cat ~/.ssh/id_ed25519.pub | pbcopy
  2. Đăng nhập vào GitLab
  3. Vào Settings > SSH Keys
  4. 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

  1. datatp-core
  2. datatp-erp
  3. datatp-document-ie
  4. datatp-logistics
  5. datatp-crm
  6. 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

  1. Download database tại: https://beelogistics.cloud/download/datatpdb-latest.dump
  2. 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

  1. Download database tại: https://beelogistics.cloud/download/document_ie_db-latest.dump
  2. 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