1. Architecture
Social Tool Documentation
  • Tổng quan
  • Bussiness | Logic
    • Bussiness | Logic
  • Project
    • ADMIN
      • Tổng quan ADMIN
      • Architecture
        • System architecture
        • Code structure
      • Deployment
        • Local
        • Staging
        • Product
      • Hướng dẫn sử dụng
        • Đăng nhập
        • FAQ
        • Mạng xã hội
          • Tài khoản mạng xã hội
          • Nội dung bài viết & bình luận
          • Quản lý liên kết
          • Thư viện hình ảnh
          • Thu thập dữ liệu
        • Hệ thống
          • Quản lý proxy
        • Chiến dịch
          • Tạo & quản lý chiến dịch
          • Đăng nhập tài khoản
          • Check Proxy
          • Join Group
    • API
      • Tổng quan API
      • Architecture
        • System architecture
        • Database schema
        • Code structure
      • Deployment
        • Local
        • Staging
        • Product
      • API Interface
        • 🔑 Identity & Session
          • List users
          • Create user
          • Update info user
          • Update info user
          • List user departments
          • Delete user
          • List user's AI keys
          • Create AI key
          • Get user's active API key
          • Get supported services
          • Get supported AI models
          • Update AI key
          • Delete AI key
          • Get AI key by ID
          • List departments
          • Create department
          • Update department
          • Create department
          • Update department
          • Update department roles
          • Get department roles
          • Update department status
          • Delete department
          • List user sessions
          • Create user session
          • Delete user session
          • Get user sessions by user ID
          • Delete all user sessions
          • Update user session status
          • List user activity logs
          • Create user activity log
          • Get user activity logs
          • Delete user activity logs
          • User login
          • User registration
          • User logout
          • Logout from all devices
          • Refresh access token
          • Create api key
          • Reset password
          • Get current user
          • Get user roles
          • Create role
          • Update role
          • Update role
          • Update role
          • List user permission groups
          • Get user permission group by ID
          • Delete user permission group
          • Create user permission group
          • Update user permission group
          • Get all user permission groups with permissions
        • 🛰️ Proxy & Connectivity
          • List proxies
          • Create proxy
          • Create many proxies
          • Update proxy
          • Delete proxy
          • Get proxy by ID
          • Import proxies from CSV/Excel
          • Check expired proxies
          • Kiểm tra proxy (qua Campaign)
          • Xóa proxy
          • Cập nhật proxy
          • Proxy Group list
          • Create a Proxy Group
          • Get a Proxy Group by ID
          • Update a Proxy Group
          • Delete a Proxy Group
          • Delete a Proxy Group
          • List proxy providers
          • Create proxy provider
          • Update proxy provider
          • Delete proxy provider
          • Get proxy provider by ID
          • Import proxy packages from CSV
          • List proxy packages
          • Create proxy package
          • Update proxy package
          • Delete proxy package
          • Get proxy package by ID
          • Import proxy packages from CSV
        • 📱 Social Management
          • List socials
          • Create social
          • Update social
          • Delete social
          • Get social by ID
          • List social accounts
          • Create social account
          • Create social account
          • Get account tasks
          • Assign proxies to social account
          • Update social account
          • Delete social account
          • Get social account by ID
          • Join social account
          • Cancel social accounts
          • Cancel social accounts
          • Import social accounts from file
          • Get account usage statistics
          • Push cookies manually for specific accounts (via Campaign)
          • Đổi tên nhiều tài khoản (qua Campaign)
          • Đổi mật khẩu nhiều tài khoản (qua Campaign)
          • Đổi ảnh đại diện (qua Campaign)
          • Social Account Group list
          • Create a Social Account Group
          • Get a Social Account Group by ID
          • Create a Social Account Group
          • Delete a Social Account Group
          • List social pages
          • Create social page
          • Update social page
          • Delete social page
          • Get social page by ID
          • Batch update social page status
          • Batch delete social pages
          • Import social pages from file
          • Search social pages
          • Batch delete social pages
          • Social Page Group list
          • Create a Social Page Group
          • Get a Social Page Group by ID
          • Update a Social Page Group
          • Delete a Social Page Group
          • List social actions
          • Create social action
          • Update social type
          • Delete social action
          • Get social type by ID
          • List social pages
          • Create social content
          • Update social content
          • Delete social content
          • Get social content by ID
          • Batch delete social content
          • Import social accounts from file
          • Create a new social content group
          • Get paginated list of social content groups
          • Get social content group by ID
          • Update social content group
          • Soft delete social content group
          • Batch delete social content groups
          • Delete social content group
          • Get groups by social platform ID
          • Social Image list
          • Create a Social Image
          • Get a Social Image by ID
          • Update a Social Image
          • Delete a Social Image
          • Social Collect Data list
          • Create a Social Collect Data
          • Get a Social Collect Data by ID
        • 📁 Campaign Management
          • List campaigns
          • Create campaign
          • Update campaign
          • Delete campaign
          • Get campaign by ID
          • Create campaign platform
          • List campaign platforms
          • Update campaign platform
          • Delete campaign platform
          • Get campaign platform by ID
          • Create campaign platform
          • Create campaign platform
          • Clone campaign platforms
          • Cancel multiple campaign platforms
          • List campaign joins
          • Create campaign platform
          • List campaign joins
          • Update campaign platform
          • Update campaign platform
          • Update campaign platform
          • Update campaign platform
          • List jobs
          • Update job
          • Delete job
          • Get job by ID
          • List campaign platform tasks
          • Create campaign platform task
          • Update campaign platform task
          • Delete campaign platform task
          • Get campaign platform job task by ID
          • List Report Categories
          • Create Report Categories
          • Create Report Categories
          • Create Report Categories
          • List Report Details
          • Create Report Details
          • Create Report Details
          • Create Report Details
    • TOOL
      • Tổng quan TOOL
      • Architecture
        • Database schema
        • System architecture
        • Code structure
      • Deployment
        • Local
        • Staging
        • Product
      • API Interface
        • 🎯 NATS — Task
          • [NATS RPC] Tạo batch Task mới
          • [NATS RPC] Lấy danh sách tất cả Tasks
          • [NATS RPC] Đếm số Task đang chờ xử lý
          • [NATS RPC] Xóa tất cả Tasks
        • 🍪 NATS — Cookie
          • [NATS RPC] Thêm batch Cookie (Auto Login)
          • [NATS RPC] Lấy danh sách tất cả Cookies
          • [NATS RPC] Xóa tất cả Cookies
        • 🌐 NATS — Proxy
          • [NATS RPC] Gửi batch Proxy để kiểm tra
        • 🔗 NATS — TaskJoin
          • [NATS RPC] Tạo lệnh tham gia Group
          • [NATS RPC] Kiểm tra trạng thái tham gia Group
        • 📤 NATS — Callbacks
          • [NATS PUB] Kết quả thực thi Task
          • [NATS PUB] Kết quả Crawl dữ liệu
          • [NATS PUB] Kết quả Auto Login
          • [NATS PUB] Kết quả kiểm tra Proxy
          • [NATS PUB] Kết quả tham gia Group
          • [NATS PUB] Kết quả kiểm tra trạng thái tham gia
        • 📊 HTTP — Logs & Info
          • Service Root — Thông tin Worker
          • Health Check
          • Đọc file log
          • Log hôm nay
          • Log theo ngày cụ thể
          • Danh sách ngày có log
          • Test kết nối ChatGPT
        • 📋 HTTP — Data Query
          • Danh sách Tasks (phân trang + lọc)
          • Xóa tất cả Tasks
          • Danh sách tất cả Cookies
          • Xóa tất cả Cookies
          • Xóa Cookie theo _id
          • Danh sách Proxies (lọc theo task_id)
          • Xóa tất cả Proxies
          • Proxy Checks đang chờ xử lý
          • Proxy Checks đã hoàn thành
          • Xóa Proxy theo _id
          • Danh sách Task Join (phân trang + lọc)
          • Tạo Task Join (HTTP mode)
          • Xóa tất cả Task Join
  • Schemas
    • AIInfo
    • CommentInfo
    • ReplyInfo
    • ShareInfo
    • CaptchaInfo
    • PageInfo
    • SocialAccountInfo
    • ProxyInfo
    • SocialInfo
    • ActionInfo
    • CreateTaskPayload
    • CreateCookiePayload
    • CreateProxyPayload
    • CreateTaskJoinPayload
    • NatsAcceptedResponse
    • NatsRejectedResponse
    • NatsErrorResponse
    • TaskCompletedPayload
    • CookieUpdatePayload
    • ProxyCheckResultPayload
    • TaskJoinResultPayload
    • TaskJoinCheckResultPayload
    • PagingInfo
    • AppError
  1. Architecture

System architecture

Kiến trúc Hệ thống#

Hệ thống được xây dựng để quản lý và phân bổ tài nguyên tài khoản mạng xã hội, phục vụ cho việc tự động hóa các chiến dịch marketing. Nền tảng sử dụng Bun + ElysiaJS + Drizzle ORM, với hai kênh giao tiếp chính: RESTful API cho Admin và NATS Message Broker việc gửi task qua Tool.

1. Các thành phần cốt lõi#

1.1 Elysia API Server#

Cổng tiếp nhận toàn bộ yêu cầu từ giao diện Admin và Client. Server này đảm nhiệm ba vai trò chính:
Xác thực định danh — kiểm tra tính hợp lệ của mỗi request.
Kiểm soát quyền truy cập — đảm bảo người dùng chỉ thực hiện được các hành động được phép.
Ghi nhật ký kiểm toán — Lưu vết mọi thao tác quan trọng để phục vụ bảo mật và truy vết.
Mọi cấu hình chiến dịch đều được lưu xuống cơ sở dữ liệu thông qua lớp này.

1.2 NATS Message Broker#

Cầu nối bất đồng bộ giữa API Server và các Tools:
API Server publish task vào hàng đợi sau khi Scheduler kích hoạt.
Tool subscribe, nhận task, thực thi hành động trên mạng xã hội, rồi phản hồi trạng thái: pending → success hoặc failed.
Cơ chế này tách rời hoàn toàn logic điều phối khỏi logic thực thi, giảm tải trực tiếp lên Database khi hàng nghìn bot hoạt động đồng thời.

1.3 Database (MySQL + Drizzle ORM)#

Lưu trữ toàn bộ dữ liệu cần thiết cho hệ thống: tài khoản, trang, nội dung, hình ảnh, chiến dịch, task.
Drizzle ORM đảm bảo tính type-safe từ schema đến query, không để lọt type mismatch giữa API và Database.
Schema được tách biệt rõ ràng thành Model, Type TypeScript và định nghĩa quan hệ (Relations), dễ bảo trì và mở rộng.

2. Luồng xử lý tự động hóa#

[Frontend]
    │  HTTP REST
    ▼
[Elysia API Server]  ──────────────────────────────────────┐
    │  Drizzle ORM                                          │
    ▼                                                  (publish)
[Database (MySQL)]                              [NATS Message Broker]
    │  Quét task đến hạn                               │  Subscribe
    ▼                                                  ▼
[Scheduler / Crontab]  ── publish task ──>  [Automation Workers]
                                                       │  Thực thi
                                                       ▼
                                            [Social Media Platforms]
                                            (Facebook, TikTok, Zalo…)
                                                       │
                                            Status callback via NATS
                                                       │
                                                       ▼
                                            [Cập nhật trạng thái task]
Bước 1 — Khởi tạo: Giao diện gọi API tạo chiến dịch, chọn nền tảng mạng xã hội và cấu hình hành động cần thực hiện.
Bước 2 — Lên lịch: Scheduler định kỳ quét các chiến dịch đến giờ thực thi, sinh ra các bản ghi campaign_platform_task — mỗi bản ghi đại diện cho một hành động cụ thể trên từng link.
Bước 3 — Phân bổ qua NATS: Một cron riêng biệt quét các task đến hạn và publish sang Tool thông qua NATS.
Bước 4 — Thu thập kết quả: Tool phản hồi trạng thái sau khi hoàn thành; hệ thống tổng hợp và hiển thị thống kê theo từng trạng thái task.

3. Thiết kế Microservices và khả năng mở rộng#

Các thành phần được tách rời hoàn toàn, cho phép:
Đóng gói độc lập bằng Docker — mỗi service chạy trong container riêng biệt.
Scale ngang Worker Node — tăng số lượng node Comment / Share / Collect mà không ảnh hưởng đến API Server.
Giảm tải Database — nhờ NATS đứng ở giữa, hàng nghìn bot có thể phản hồi đồng thời mà không gây áp lực trực tiếp lên DB.

Cấu trúc thư mục#

src/
├── controllers/     # Xử lý đầu vào, parse request, trả response
├── services/        # Logic nghiệp vụ liên tầng
├── repositories/    # Tương tác cơ sở dữ liệu (Drizzle queries)
├── schemas/         # Drizzle schema, model, type TypeScript
└── workers/         # Automation Worker, NATS subscriber

4. Công nghệ sử dụng#

Thành phầnCông nghệ
RuntimeBun
API FrameworkElysiaJS
ORMDrizzle ORM
DatabaseMySQL
Message BrokerNATS
ContainerizationDocker
Ngôn ngữTypeScript
Modified at 2026-03-30 09:53:35
Previous
Tổng quan API
Next
Database schema
Built with