Files
CleanArchitecture-template/base/02. Requirements/05. Architecture/C4_Container.md

2.3 KiB

Tài liệu Kiến trúc C4 - Mức 2: Container Diagram (Landing Page)

Mô tả các thành phần triển khai của hệ thống Landing Page.

1. Danh sách Container

1.1. Sales Landing App (Frontend)

  • Công nghệ: React, Vite, TailwindCSS.
  • Vai trò: Cung cấp giao diện tương tác (Responsive).
  • Chức năng: Form nhập liệu, Camera capture (cho OCR), PDF Viewer, điều hướng sản phẩm.

1.2. Backend For Frontend (BFF)

  • Công nghệ: Node.js / Express (hoặc Serverless Functions).
  • Vai trò: Trung gian bảo mật và điều phối API.
  • Chức năng:
    • Ẩn các Token/Secret khi gọi OCR và PDF API.
    • Quản lý session người dùng.
    • Chuẩn hóa dữ liệu trước khi gửi đi.

1.3. Local Storage / Caching DB

  • Công nghệ: PostgreSQL (hoặc Redis/LocalStorage tùy yêu cầu lưu lâu dài). Dựa trên yêu cầu lưu lại khách hàng lần sau, sẽ dùng PostgreSQL.
  • Vai trò: Lưu nháp thông tin khách hàng và lịch sử minh họa tạm thời.

2. Sơ đồ Container

C4Container
    title Container Diagram - Landing Page Sales Party

    Person(sales_agent, "Nhân viên kinh doanh", "Sử dụng thiết bị cá nhân.")

    System_Boundary(landing_zone, "Landing Page System") {
        Container(web_app, "Sales Landing App", "React/Vite", "Giao diện người dùng Mobile-first.")
        Container(bff_api, "BFF Service", "Node.js", "Xử lý logic trung gian và bảo mật.")
        ContainerDb(local_db, "Client Cache DB", "PostgreSQL", "Lưu thông tin khách hàng nháp.")
    }

    System_Ext(auth_api, "Auth API", "Xác thực")
    System_Ext(ocr_service, "OCR Service", "Xử lý ảnh")
    System_Ext(pdf_engine, "PDF Engine", "Tạo PDF")
    System_Ext(core_system, "Core System", "Lưu hợp đồng")

    Rel(sales_agent, web_app, "Tương tác", "HTTPS")
    Rel(web_app, bff_api, "API Call", "JSON/HTTPS")
    
    Rel(bff_api, local_db, "Đọc/Ghi dữ liệu KH", "SQL")
    Rel(bff_api, auth_api, "Proxy xác thực", "REST")
    Rel(bff_api, ocr_service, "Gọi OCR", "REST")
    Rel(bff_api, pdf_engine, "Gọi tạo PDF", "REST")
    Rel(bff_api, core_system, "Submit hồ sơ", "REST")

Biên soạn bởi: Agent mbl-landing-page-architecture