Kiến trúc và luồng dữ liệu

Ứng dụng Next.js trong Docker, dữ liệu dạng tệp JSON, một worker nền xử lý hàng đợi và các tích hợp bên ngoài.

IGA SocialUpdated 23 Oct 2026
kiến trúcnext.jsdockerworker

This page is not yet available in English. Showing the Vietnamese original. Open the Vietnamese page

Tài liệu này mô tả IGA Social được ghép từ những thành phần nào và dữ liệu đi qua ứng dụng ra sao. Phần này phù hợp với người cần hiểu hệ thống trước khi vận hành hoặc mở rộng.

Tổng quan

IGA Social là ứng dụng Next.js 15 (App Router, JavaScript, React 19) đóng gói bằng Docker. Giao diện và API chạy chung một tiến trình. Ứng dụng có 77 điểm cuối API và 11 mục điều hướng.

Giao diện chính với thanh điều hướng dạng viên thuốc
Giao diện chính với thanh điều hướng dạng viên thuốc

Các thành phần

Thành phần Vai trò
Ứng dụng web Giao diện quản trị, API và trang giới thiệu sản phẩm công khai
Worker nền Chạy mỗi phút để quét clip mới, xử lý hàng đợi, đăng bài hẹn giờ và lấy số liệu
FFmpeg Dựng video, nén và đọc thông số tệp
Sharp Chuẩn hoá ảnh sang WebP, giữ bản gốc
Playwright Điều khiển trình duyệt cho việc quét nhóm và lấy hồ sơ
Dịch vụ xác thực chung Đăng nhập một lần cho các ứng dụng nội bộ

Lưu trữ dữ liệu

Ứng dụng không dùng cơ sở dữ liệu. Mỗi bộ dữ liệu (sản phẩm, ảnh, caption, video, lịch đăng, tài khoản, nhóm) là một tệp JSON. Lựa chọn này giúp việc sao lưu và khôi phục chỉ là chép thư mục.

  • Ghi an toàn. Dữ liệu được ghi ra tệp tạm rồi đổi tên, nên mất điện giữa chừng không làm hỏng tệp chính.
  • Đọc nhanh. Bộ nhớ đệm giúp worker không phải đọc lại cả tệp lớn nhiều lần.
  • Media riêng. Ảnh và video nằm trong các thư mục con cùng thư mục dữ liệu.

Xác thực

Ứng dụng không giữ danh sách người dùng riêng. Khi đăng nhập, yêu cầu được chuyển cho dịch vụ xác thực chung, hỗ trợ cả mã OTP. Sau đó ứng dụng ký một phiên đăng nhập có hiệu lực 14 ngày. Chỉ quản trị viên hoặc người được cấp quyền dùng ứng dụng mới vào được. Trang giới thiệu sản phẩm và vài trang pháp lý là công khai, còn phần quản trị không cho công cụ tìm kiếm lập chỉ mục.

Luồng làm việc chính

  1. Sản phẩm vào kho. Danh mục đồng bộ từ web bán hàng mỗi ngày. Món nào được chọn thì món đó mới được tải ảnh và tạo sản phẩm.
  2. Nội dung được soạn. AI viết caption từ dữ liệu sản phẩm, có kiểm tra trùng và lọc theo luật.
  3. Người duyệt. Bài ở trạng thái chờ duyệt, sau khi duyệt chuyển sang hẹn giờ.
  4. Đăng bài. Đến giờ, worker đăng lên Fanpage, tự bình luận liên kết và ghi nhật ký.
  5. Đo lường. Mỗi 6 giờ, số liệu xem, thích và bình luận của các bài trong 30 ngày gần nhất được cập nhật.

Tích hợp bên ngoài

  • Facebook, qua API đăng lên Fanpage.
  • YouTube, để đăng video.
  • TikTok, ở chế độ thử.
  • Web bán hàng của cửa hàng, dùng để đọc thông tin sản phẩm.
  • Bot nhắn tin, dùng để nhận clip và gửi thông báo.
  • Nơi lưu trữ video riêng của cửa hàng.

Các khoá truy cập nằm trong một tệp cấu hình bí mật, tách khỏi mã nguồn.