1. Architecture
One Push
  • Tổng Quan
  • Bussiness Logic
    • ĐẶC TẢ KỸ THUẬT: HỆ THỐNG ĐIỀU PHỐI TIN NHẮN (PUSH ENGINE)
    • ĐẶC TẢ KỸ THUẬT: HỆ THỐNG ĐỒNG BỘ HEARTBEAT (REAL-TIME SYNC)
    • ĐẶC TẢ KỸ THUẬT: HỆ THỐNG ĐIỀU PHỐI TIN NHẮN (PUSH ENGINE)
    • Business Logic (Luồng Logic Nghiệp Vụ)
  • Project
    • API
      • Hướng dẫn sử dụng
        • 1.1 Khởi tạo Website Tham gia
        • 1.2 Cấu hình Bots Telegram
        • 1.3 Quản lý Chiến dịch (Campaigns)
        • 1.4 Lên Lịch Gửi Tự Động
        • 1.5 Tương tác & Thống kê
        • 1.6 Quản lý Tài khoản (RBAC)
        • 1.7 Báo cáo Chi tiết Tin nhắn (Web & Telegram)
      • Architecture
        • System Architecture (Kiến trúc Hệ thống)
        • Code Structure
        • Database Schema (Mô hình Dữ liệu)
      • Deployment
        • Local
        • Production
        • Development
      • API
        • Widget nhúng Website
          • Đăng ký Subscriber mới / Nhật ký Heartbeat
          • Cập nhật trạng thái Seen/Read
          • Ghi nhận hiển thị Alert Popup
          • Lấy dữ liệu Alert cho website
        • Tracking & Tương tác
          • Ghi nhận lựa chọn Yes/No
        • Báo cáo & Thống kê
          • Thống kê người dùng Real-time
          • Phân tích tăng trưởng Subscriber
          • Dữ liệu bản đồ nhiệt Vị trí
          • Xuất báo cáo thông báo Excel
        • Lịch gửi Thông báo
          • Danh sách lịch gửi thông báo
          • Tạo lịch gửi mới
          • Bật/Tắt lịch gửi
        • Betting Tips
          • Lấy Tip bóng đá HOT nhất
          • Lấy dữ liệu Mock Tip (Test)
        • Telegram Integration
          • Danh sách Telegram Bot
          • Telegram Webhook Endpoint
        • Email Marketing
          • Tạo và gửi chiến dịch Email
        • Hệ thống & RBAC
          • Danh sách tài khoản Admin/Nhân viên
          • Danh sách vai trò (Roles)
        • Tiện ích & Files
          • Truy xuất nhật ký hệ thống (System Logs)
        • Chiến dịch (Campaigns)
          • Danh sách chiến dịch
        • Website Khách hàng (Clients)
          • Danh sách website khách hàng
        • Quản lý Thành viên (Subscribers)
          • Danh sách người đăng ký (Subscribers)
          • Xóa người nhận tin
    • TOOL
      • Hướng dẫn sử dụng
        • Hướng dẫn sử dụng — Novu Notification Infrastructure
      • Architecture
        • System Architecture
        • Code Structure
        • Database Schema
      • Deployment
        • Deployment
      • API
        • 👥 Subscribers
          • Tạo/Cập nhật Subscriber
          • Cập nhật Profile
        • 🗺️ Workflows
          • Lấy danh sách Workflow Templates
          • Chi tiết Workflow
        • 📂 Notification History
          • Lịch sử biến động Notification
        • 🎯 Topics
          • Tạo Topic mới
        • 📐 Layouts
          • Lấy danh sách Layout (Email/Web)
        • 💬 Messages
          • Tra cứu vết tin nhắn chi tiết (Low-level)
        • 🔌 Integrations
          • Danh sách nhà cung cấp (Providers)
        • 🚀 Events & Triggers
          • Kích hoạt thông báo (Workflows)
          • Kích hoạt hàng loạt (Bulk Trigger)
  • Schemas
    • GenericResponse
  1. Architecture

Code Structure

Code Structure — Novu Infrastructure Full Disclosure#

NXPNPMNestJSReact TypeScript
Hệ thống Novu được thiết kế theo kiến trúc Monorepo quy mô lớn, sử dụng NX Cloud để quản lý hàng chục ứng dụng và thư viện liên kết chặt chẽ. Cấu trúc này đảm bảo tính nhất quán (Consistency) tuyệt đối về kiểu dữ liệu (Types) xuyên suốt từ Mobile, Web đến Backend.

I. Sơ đồ Phân cấp Kỹ thuật (Monorepo Graph)#

Kiến trúc NX của Novu cho phép các gói thư viện (Libs) và mã nguồn (Apps) chia sẻ logic một cách an toàn thông qua đồ thị phụ thuộc (Dependency Graph):

II. Phân tích chi tiết Dịch vụ (Apps)#

Toàn bộ các thư mục trong /apps là những bộ máy vận hành độc lập.

1. API Service (apps/api/)#

Logic: NestJS Backend. Đóng vai trò là cửa ngõ duy nhất tiếp nhận Trigger từ Clients và quản lý Dashboard.
Chức năng: Quản lý Authentication (JWT/Passport), phân quyền RBAC, và điều chuyển Job vào hàng đợi Redis.

2. Worker Service (apps/worker/)#

Logic: Xử lý không đồng bộ (Asynchronous).
Chức năng: Nhận Job từ API qua BullMQ. Thực hiện bóc tách Handlebars templates, tính toán thời gian Digest (Gom tin), và gọi Provider để gửi tin Message thực tế.

3. WS Service (apps/ws/)#

Chức năng: Chốt chặn Websocket. Cung cấp kết nối Persistent tới Notification Center (Widget) của khách để đẩy thông báo In-app ngay lập tức.

4. Dashboard & Inbound (apps/dashboard/ & apps/webhook/)#

Dashboard: Dashboard quản trị viết bằng React + Tailwind.
Webhook: Xử lý các đầu báo trạng thái (Deliver/Fail/Open) từ các bên thứ ba trả về (Twilio/SendGrid Webhooks).

III. Phân tích sâu Thư viện & Module (Libs)#

Thư mục /libs chứa các bit logic cực kỳ quan trọng không bao giờ bị lặp lại (DRY Principle).

1. Data Access Layer (libs/dal/)#

Nghiệp vụ: Toàn bộ định nghĩa Schema MongoDB và các Repository Pattern.
Đặc điểm: Đảm bảo mọi App (API, Worker) khi truy vấn Subscribers hay Workflows đều dùng chung một bộ Schema duy nhất.

2. Shared Core (libs/shared/)#

Nghiệp vụ: Chứa hàng ngàn Interfaces, Enums, DTOs.
Ví dụ: Enum ChannelTypeEnum xác định EMAIL/SMS/PUSH được dùng chung cả phía Client (React) và Server (NodeJS).

IV. Hệ sinh thái Mở rộng (Packages)#

/packages là nơi Novu biến mình thành một nền tảng hạ tầng (Infrastructure).

1. Providers (packages/providers/)#

Chứa danh sách hàng trăm Provider Plugin. Mỗi Plugin thực hiện map chuẩn Novu Message sang chuẩn riêng của bên thứ ba (VD: Firebase Cloud Messaging, SES, OneSignal).

2. Notification Center (packages/notification-center/)#

Bộ mã nguồn UI/UX cho In-app Bell icon. Hỗ trợ cho cả React, Vue, Angular và Web Components dạng nhúng.

3. Developers SDKs (packages/node/, packages/react/)#

Dành cho lập trình viên phát triển ứng dụng bằng Novu. Chứa logic gói gọn (Wrapper) các API call phức tạp thành các hàm đơn giản như novu.trigger().

V. Cấu trúc Triển khai & Tooling#

Dự án sử dụng các bộ kịch bản tự động tại /scripts để vận hành Monorepo:
NX Pipeline: Kiểm tra thay đổi và chỉ build những bộ phận bị ảnh hưởng (Affected build) để tiết kiệm tài nguyên CI/CD.
Setup Script: scripts/dev-environment-setup.sh tự động khởi tạo database và môi trường cho Developer mới chỉ bằng 1 câu lệnh.
Build Optimization: Tự động hóa quá trình compile đa nền tảng (Polyglot builds).
Modified at 2026-03-27 03:49:16
Previous
System Architecture
Next
Database Schema
Built with