Tài liệu Kiến trúc Hệ thống#
Tài liệu kỹ thuật – Phiên bản 1.0
Mô tả kiến trúc tổng quan, công nghệ và luồng dữ liệu của Social Tool
1. Tổng quan#
Social Tool là ứng dụng quản trị (Admin Dashboard) phục vụ việc vận hành các chiến dịch tự động hóa trên nhiều nền tảng mạng xã hội (Facebook, Google, Instagram...). Hệ thống Frontend được xây dựng theo kiến trúc hướng module, tối ưu cho việc quản lý dữ liệu quy mô lớn và cập nhật trạng thái theo thời gian thực.
2. Technology Stack#
| Hạng mục | Công nghệ | Mục đích |
|---|
| Framework | Vue 3 (Composition API) | Xây dựng giao diện phản ứng (reactive UI) |
| Ngôn ngữ | TypeScript | Đảm bảo an toàn kiểu dữ liệu, giảm lỗi runtime |
| Global State | Pinia | Quản lý trạng thái toàn cục (user, config, modal) |
| Server State | TanStack Vue Query | Caching, polling, đồng bộ dữ liệu với server |
| UI Library | Naive UI + Tailwind CSS | Component system & tùy biến giao diện |
| HTTP Client | Axios | Giao tiếp API với cấu hình interceptor tập trung |
| Ngày tháng | date-fns, moment | Xử lý và định dạng thời gian |
| Build Tool | Vite | Build nhanh, HMR trong quá trình phát triển |
| Package Manager | Bun | Cài đặt dependencies và chạy script |
3. Luồng dữ liệu (Data Flow)#
Hệ thống tuân theo mô hình Unidirectional Data Flow (luồng dữ liệu một chiều) nhằm đảm bảo tính dễ đoán và dễ bảo trì.Vai trò từng tầng#
View (Giao diện)
Các Component và Page chịu trách nhiệm hiển thị dữ liệu và tiếp nhận tương tác của người dùng. View không gọi API trực tiếp mà tương tác thông qua Composables hoặc Store.Composables — TanStack Vue Query
Chứa toàn bộ logic đồng bộ dữ liệu với server. Tự động xử lý các trạng thái loading, error, caching, và refetching mà không cần viết thủ công.Services (API Layer)
Lớp trung gian giao tiếp trực tiếp với Backend API qua giao thức HTTP (Axios). Mọi request/response đều đi qua interceptor tập trung để xử lý authentication và error handling.Store — Pinia
Lưu trữ các trạng thái mang tính toàn cục như: thông tin người dùng hiện tại, cấu hình hệ thống, trạng thái modal. Phục vụ cho các trường hợp cần chia sẻ state giữa nhiều component không có quan hệ cha–con trực tiếp.
4. Các thực thể nghiệp vụ chính#
| Thực thể | Mô tả |
|---|
| Social Accounts | Tài khoản mạng xã hội: quản lý login, proxy, trạng thái hoạt động |
| Campaigns | Chiến dịch: tập hợp các nhóm hành động được lên lịch thực thi |
| Campaign Platforms | Hành động cụ thể (Like, Comment, Share, Collect...) được gán tài khoản thực thi |
| Proxy / Server | Hạ tầng mạng đảm bảo vận hành tài khoản an toàn, tránh checkpoint |
5. Đặc điểm kiến trúc nổi bật#
5.1. Kiến trúc hướng Module#
Mỗi tính năng (Feature) được đóng gói trong một thư mục riêng biệt, bao gồm components, composables, services và types tương ứng. Cấu trúc này giúp dễ dàng mở rộng và bảo trì độc lập từng phần của hệ thống.5.2. Polling System — Cập nhật thời gian thực#
Tích hợp cơ chế tự động làm mới (Polling) thông qua TanStack Vue Query cho các tác vụ đang ở trạng thái processing. Giao diện cập nhật kết quả liên tục mà không yêu cầu người dùng tải lại trang.5.3. Vue 3 Reactivity#
Khai thác tối đa hệ thống reactivity của Vue 3 thông qua ref, computed, và watch. Giao diện luôn phản ánh đúng trạng thái dữ liệu hiện tại mà không cần thao tác DOM thủ công.5.4. Type-Safe toàn diện#
Toàn bộ dữ liệu trao đổi giữa các tầng (API response, store state, component props) đều được định nghĩa bằng TypeScript Interface. Cách tiếp cận này giúp phát hiện lỗi ngay tại thời điểm biên dịch thay vì runtime.
Tài liệu được cập nhật lần cuối: 2026. Mọi thắc mắc vui lòng liên hệ đội ngũ kỹ thuật.Modified at 2026-03-30 09:34:01