Documentation

Module Dependency Diagram

O2O Online Streamer Advertising Project - Module Dependency Diagram

1. Overview

This document provides a detailed description of the dependency relationships between various functional modules in the O2O online streamer advertising project, including frontend modules, backend service modules, database modules, and third-party service integrations.

2. Overall Module Dependency Relationships

graph TD
    subgraph "Frontend Module Layer"
        PM[Portal Marketing Module]
        AM[Admin Management Module]
        CM[Common Component Module]
        UM[UI Component Module]
        SM[State Management Module]
    end

    subgraph "API Interface Layer"
        API[API Route Module]
        MW[Middleware Module]
        VAL[Validation Module]
    end

    subgraph "Business Logic Layer"
        USER[User Management Module]
        AUTH[Authentication Module]
        ORDER[Order Management Module]
        PAY[Payment Processing Module]
        AD[Advertisement Module]
        REVIEW[Review Management Module]
        FAV[Favorite Management Module]
        NOTIFY[Notification Module]
        ANALYTICS[Data Analytics Module]
    end

    subgraph "Data Access Layer"
        PRISMA[Prisma ORM]
        CACHE[Cache Module]
        STORAGE[Storage Module]
    end

    subgraph "Infrastructure Service Layer"
        MAIL[Email Service]
        SMS[SMS Service]
        LOG[Logging Service]
        UTILS[Utility Module]
        CONFIG[Configuration Module]
    end

    subgraph "Data Storage Layer"
        DB[(PostgreSQL)]
        REDIS[(Redis Cache)]
        MINIO[(MinIO Storage)]
    end

    subgraph "External Services"
        STRIPE[Stripe Payment]
        TWILIO[Twilio SMS]
        SMTP_SVC[SMTP Email]
        RECAPTCHA[reCAPTCHA]
    end

    %% Frontend module dependencies
    PM --> CM
    AM --> CM
    PM --> UM
    AM --> UM
    PM --> SM
    AM --> SM

    %% Frontend to API
    PM --> API
    AM --> API

    %% API layer dependencies
    API --> MW
    API --> VAL
    MW --> AUTH
    VAL --> UTILS

    %% Business logic layer dependencies
    USER --> AUTH
    ORDER --> USER
    ORDER --> PAY
    PAY --> STRIPE
    AD --> PAY
    AD --> USER
    REVIEW --> ORDER
    REVIEW --> USER
    FAV --> USER
    NOTIFY --> MAIL
    NOTIFY --> SMS
    ANALYTICS --> ORDER
    ANALYTICS --> USER
    ANALYTICS --> AD

    %% API to business logic
    API --> USER
    API --> ORDER
    API --> AD
    API --> REVIEW
    API --> FAV
    API --> NOTIFY
    API --> ANALYTICS

    %% Data access layer dependencies
    USER --> PRISMA
    ORDER --> PRISMA
    PAY --> PRISMA
    AD --> PRISMA
    REVIEW --> PRISMA
    FAV --> PRISMA
    ANALYTICS --> PRISMA
    
    AUTH --> CACHE
    USER --> CACHE
    ORDER --> CACHE
    
    USER --> STORAGE
    AD --> STORAGE

    %% Infrastructure service dependencies
    MAIL --> SMTP_SVC
    SMS --> TWILIO
    AUTH --> RECAPTCHA
    
    %% Data storage dependencies
    PRISMA --> DB
    CACHE --> REDIS
    STORAGE --> MINIO

    %% Utility module widely used
    USER --> UTILS
    ORDER --> UTILS
    PAY --> UTILS
    AD --> UTILS
    MAIL --> UTILS
    SMS --> UTILS
    
    %% Logging module widely used
    API --> LOG
    USER --> LOG
    ORDER --> LOG
    PAY --> LOG
    AUTH --> LOG
    
    %% Configuration module widely used
    API --> CONFIG
    USER --> CONFIG
    PAY --> CONFIG
    MAIL --> CONFIG
    SMS --> CONFIG

    classDef frontendClass fill:#e1f5fe
    classDef apiClass fill:#e8f5e8
    classDef businessClass fill:#fff3e0
    classDef dataClass fill:#f3e5f5
    classDef serviceClass fill:#fce4ec
    classDef storageClass fill:#f1f8e9
    classDef externalClass fill:#ffebee

    class PM,AM,CM,UM,SM frontendClass
    class API,MW,VAL apiClass
    class USER,AUTH,ORDER,PAY,AD,REVIEW,FAV,NOTIFY,ANALYTICS businessClass
    class PRISMA,CACHE,STORAGE dataClass
    class MAIL,SMS,LOG,UTILS,CONFIG serviceClass
    class DB,REDIS,MINIO storageClass
    class STRIPE,TWILIO,SMTP_SVC,RECAPTCHA externalClass

3. Portal Marketing Module Dependency Diagram

graph TD
    subgraph "Portal Page Modules"
        HOME[Home Module]
        LIST[Streamer List Module]
        DETAIL[Streamer Detail Module]
        SEARCH[Search Module]
        LOGIN[Login/Register Module]
        PROFILE[Profile Module]
        ORDER_PAGE[Order Page Module]
        FAVORITE_PAGE[Favorite Page Module]
    end

    subgraph "Portal Component Modules"
        HEADER[Header Component]
        FOOTER[Footer Component]
        CARD[Card Component]
        FORM[Form Component]
        MODAL[Modal Component]
        PAGINATION[Pagination Component]
    end

    subgraph "Portal Business Logic"
        USER_API[User API]
        STREAMER_API[Streamer API]
        ORDER_API[Order API]
        SEARCH_API[Search API]
        FAV_API[Favorite API]
    end

    %% Page module component dependencies
    HOME --> HEADER
    HOME --> FOOTER
    HOME --> CARD
    LIST --> HEADER
    LIST --> CARD
    LIST --> PAGINATION
    DETAIL --> HEADER
    DETAIL --> MODAL
    SEARCH --> HEADER
    SEARCH --> FORM
    LOGIN --> FORM
    LOGIN --> MODAL
    PROFILE --> HEADER
    PROFILE --> FORM
    ORDER_PAGE --> HEADER
    ORDER_PAGE --> CARD
    FAVORITE_PAGE --> HEADER
    FAVORITE_PAGE --> CARD

    %% Page module API dependencies
    HOME --> STREAMER_API
    LIST --> STREAMER_API
    LIST --> SEARCH_API
    DETAIL --> STREAMER_API
    DETAIL --> ORDER_API
    SEARCH --> SEARCH_API
    LOGIN --> USER_API
    PROFILE --> USER_API
    ORDER_PAGE --> ORDER_API
    FAVORITE_PAGE --> FAV_API

4. Admin Management Module Dependency Diagram

graph TD
    subgraph "Admin Page Modules"
        DASHBOARD[Dashboard Module]
        USER_MGMT[User Management Module]
        STREAMER_MGMT[Streamer Management Module]
        ORDER_MGMT[Order Management Module]
        AD_MGMT[Advertisement Management Module]
        REVIEW_MGMT[Review Management Module]
        FINANCE_MGMT[Finance Management Module]
        ANALYTICS_PAGE[Data Analytics Module]
        SETTINGS[System Settings Module]
    end

    subgraph "Admin Component Modules"
        SIDEBAR[Sidebar Component]
        TABLE[Table Component]
        CHART[Chart Component]
        FORM_ADMIN[Admin Form Component]
        UPLOAD[Upload Component]
        EDITOR[Rich Text Editor]
    end

    subgraph "Admin Business Logic"
        ADMIN_USER_API[User Management API]
        ADMIN_ORDER_API[Order Management API]
        ADMIN_AD_API[Advertisement Management API]
        ADMIN_FINANCE_API[Finance Management API]
        ADMIN_ANALYTICS_API[Data Analytics API]
        ADMIN_SETTINGS_API[Settings API]
    end

    %% Page module component dependencies
    DASHBOARD --> SIDEBAR
    DASHBOARD --> CHART
    USER_MGMT --> SIDEBAR
    USER_MGMT --> TABLE
    USER_MGMT --> FORM_ADMIN
    STREAMER_MGMT --> SIDEBAR
    STREAMER_MGMT --> TABLE
    STREAMER_MGMT --> UPLOAD
    STREAMER_MGMT --> EDITOR
    ORDER_MGMT --> SIDEBAR
    ORDER_MGMT --> TABLE
    AD_MGMT --> SIDEBAR
    AD_MGMT --> TABLE
    AD_MGMT --> FORM_ADMIN
    REVIEW_MGMT --> SIDEBAR
    REVIEW_MGMT --> TABLE
    FINANCE_MGMT --> SIDEBAR
    FINANCE_MGMT --> TABLE
    FINANCE_MGMT --> CHART
    ANALYTICS_PAGE --> SIDEBAR
    ANALYTICS_PAGE --> CHART
    SETTINGS --> SIDEBAR
    SETTINGS --> FORM_ADMIN

    %% Page module API dependencies
    DASHBOARD --> ADMIN_ANALYTICS_API
    USER_MGMT --> ADMIN_USER_API
    STREAMER_MGMT --> ADMIN_USER_API
    ORDER_MGMT --> ADMIN_ORDER_API
    AD_MGMT --> ADMIN_AD_API
    REVIEW_MGMT --> ADMIN_USER_API
    FINANCE_MGMT --> ADMIN_FINANCE_API
    ANALYTICS_PAGE --> ADMIN_ANALYTICS_API
    SETTINGS --> ADMIN_SETTINGS_API

5. Backend Service Module Dependency Diagram

graph TD
    subgraph "Controller Layer"
        USER_CTRL[User Controller]
        AUTH_CTRL[Authentication Controller]
        ORDER_CTRL[Order Controller]
        PAY_CTRL[Payment Controller]
        AD_CTRL[Advertisement Controller]
        REVIEW_CTRL[Review Controller]
        ADMIN_CTRL[Admin Controller]
    end

    subgraph "Service Layer"
        USER_SVC[User Service]
        AUTH_SVC[Authentication Service]
        ORDER_SVC[Order Service]
        PAY_SVC[Payment Service]
        AD_SVC[Advertisement Service]
        REVIEW_SVC[Review Service]
        NOTIFY_SVC[Notification Service]
        ANALYTICS_SVC[Analytics Service]
    end

    subgraph "Data Access Layer"
        USER_REPO[User Repository]
        ORDER_REPO[Order Repository]
        AD_REPO[Advertisement Repository]
        REVIEW_REPO[Review Repository]
        PAYMENT_REPO[Payment Repository]
    end

    subgraph "Infrastructure Services"
        EMAIL_SVC[Email Service]
        SMS_SVC[SMS Service]
        FILE_SVC[File Service]
        CACHE_SVC[Cache Service]
        LOG_SVC[Logging Service]
    end

    %% Controller service dependencies
    USER_CTRL --> USER_SVC
    AUTH_CTRL --> AUTH_SVC
    ORDER_CTRL --> ORDER_SVC
    PAY_CTRL --> PAY_SVC
    AD_CTRL --> AD_SVC
    REVIEW_CTRL --> REVIEW_SVC
    ADMIN_CTRL --> USER_SVC
    ADMIN_CTRL --> ORDER_SVC
    ADMIN_CTRL --> AD_SVC
    ADMIN_CTRL --> ANALYTICS_SVC

    %% Service layer dependencies
    USER_SVC --> USER_REPO
    USER_SVC --> EMAIL_SVC
    AUTH_SVC --> USER_REPO
    AUTH_SVC --> CACHE_SVC
    ORDER_SVC --> ORDER_REPO
    ORDER_SVC --> USER_REPO
    ORDER_SVC --> NOTIFY_SVC
    PAY_SVC --> PAYMENT_REPO
    PAY_SVC --> ORDER_SVC
    AD_SVC --> AD_REPO
    AD_SVC --> USER_REPO
    AD_SVC --> FILE_SVC
    REVIEW_SVC --> REVIEW_REPO
    REVIEW_SVC --> ORDER_REPO
    NOTIFY_SVC --> EMAIL_SVC
    NOTIFY_SVC --> SMS_SVC
    ANALYTICS_SVC --> ORDER_REPO
    ANALYTICS_SVC --> USER_REPO
    ANALYTICS_SVC --> AD_REPO

    %% All services depend on logging
    USER_SVC --> LOG_SVC
    AUTH_SVC --> LOG_SVC
    ORDER_SVC --> LOG_SVC
    PAY_SVC --> LOG_SVC
    AD_SVC --> LOG_SVC
    REVIEW_SVC --> LOG_SVC
    NOTIFY_SVC --> LOG_SVC
    ANALYTICS_SVC --> LOG_SVC

6. Database Module Dependency Relationships

erDiagram
    USER ||--o{ ORDER : "creates orders"
    USER ||--o{ REVIEW : "writes reviews"
    USER ||--o{ FAVORITE : "favorites streamers"
    USER ||--o{ AD : "purchases ads"
    USER ||--o{ PAYMENT : "payment records"
    USER ||--o{ SUB_ACCOUNT : "manages sub-accounts"
    
    ORDER ||--|| PAYMENT : "order payment"
    ORDER ||--o{ REVIEW : "order reviews"
    
    AD ||--|| PAYMENT : "ad payment"
    AD ||--o{ AD_CLICK : "click records"
    
    STREAMER_PROFILE ||--|| USER : "streamer profile"
    STREAMER_PROFILE ||--o{ FAVORITE : "favorited by"
    STREAMER_PROFILE ||--o{ ORDER : "receives orders"
    
    AGENCY ||--|| USER : "agency info"
    AGENCY ||--o{ SUB_ACCOUNT : "manages sub-accounts"
    
    COUPON ||--o{ PAYMENT : "uses coupons"
    
    NOTIFICATION ||--|| USER : "notifies user"
    
    USER {
        uuid id PK
        string email
        string name
        enum role
        enum account_type
        boolean can_login
        timestamp created_at
    }
    
    ORDER {
        uuid id PK
        uuid user_id FK
        uuid streamer_id FK
        decimal amount
        enum status
        timestamp created_at
    }
    
    AD {
        uuid id PK
        uuid user_id FK
        string title
        text content
        enum status
        timestamp start_date
        timestamp end_date
    }
    
    PAYMENT {
        uuid id PK
        uuid user_id FK
        uuid order_id FK
        string stripe_payment_id
        decimal amount
        enum status
    }

7. Third-party Service Integration Dependencies

graph LR
    subgraph "Application Services"
        APP[Application Server]
    end

    subgraph "Payment Integration"
        STRIPE_API[Stripe API]
        STRIPE_WEBHOOK[Stripe Webhook]
        PAYMENT_PROCESSOR[Payment Processor]
    end

    subgraph "Communication Integration"
        TWILIO_API[Twilio API]
        SMTP_SERVER[SMTP Server]
        EMAIL_PROCESSOR[Email Processor]
        SMS_PROCESSOR[SMS Processor]
    end

    subgraph "Security Integration"
        RECAPTCHA_API[reCAPTCHA API]
        SECURITY_VALIDATOR[Security Validator]
    end

    subgraph "Storage Integration"
        MINIO_API[MinIO API]
        FILE_PROCESSOR[File Processor]
    end

    %% Payment integration dependencies
    APP --> PAYMENT_PROCESSOR
    PAYMENT_PROCESSOR --> STRIPE_API
    STRIPE_WEBHOOK --> PAYMENT_PROCESSOR

    %% Communication integration dependencies
    APP --> EMAIL_PROCESSOR
    APP --> SMS_PROCESSOR
    EMAIL_PROCESSOR --> SMTP_SERVER
    SMS_PROCESSOR --> TWILIO_API

    %% Security integration dependencies
    APP --> SECURITY_VALIDATOR
    SECURITY_VALIDATOR --> RECAPTCHA_API

    %% Storage integration dependencies
    APP --> FILE_PROCESSOR
    FILE_PROCESSOR --> MINIO_API

8. Cache Dependency Strategy

graph TD
    subgraph "Application Layer Cache"
        REACT_QUERY[React Query Cache]
        BROWSER_CACHE[Browser Cache]
    end

    subgraph "API Layer Cache"
        API_CACHE[API Response Cache]
        SESSION_CACHE[Session Cache]
    end

    subgraph "Business Layer Cache"
        USER_CACHE[User Info Cache]
        STREAMER_CACHE[Streamer Info Cache]
        AD_CACHE[Advertisement Cache]
        SEARCH_CACHE[Search Results Cache]
    end

    subgraph "Data Layer Cache"
        QUERY_CACHE[Query Results Cache]
        REDIS_CACHE[Redis Cache]
    end

    %% Cache hierarchy dependencies
    REACT_QUERY --> API_CACHE
    BROWSER_CACHE --> API_CACHE
    
    API_CACHE --> USER_CACHE
    API_CACHE --> STREAMER_CACHE
    API_CACHE --> AD_CACHE
    SESSION_CACHE --> USER_CACHE
    
    USER_CACHE --> QUERY_CACHE
    STREAMER_CACHE --> QUERY_CACHE
    AD_CACHE --> QUERY_CACHE
    SEARCH_CACHE --> QUERY_CACHE
    
    QUERY_CACHE --> REDIS_CACHE

9. Dependency Management Strategy

9.1 Dependency Injection Principles

  • Use dependency injection containers to manage service dependencies
  • Interface-first approach to reduce module coupling
  • Single responsibility principle for clear module purposes
  • Dependency inversion principle - high-level modules don't depend on low-level modules

9.2 Circular Dependency Handling

  • Use event-driven architecture to decouple circular dependencies
  • Apply mediator pattern for complex dependencies
  • Lazy loading to avoid initialization circular dependencies
  • Interface segregation to reduce unnecessary dependencies

9.3 Version Compatibility

  • Semantic versioning management
  • Backward compatibility guarantees
  • Progressive upgrade strategies
  • Dependency locking mechanisms

10. Dependency Monitoring and Optimization

10.1 Dependency Analysis Tools

  • Dependency relationship visualization
  • Circular dependency detection
  • Unused dependency cleanup
  • Dependency security scanning

10.2 Performance Optimization

  • Lazy loading of non-critical dependencies
  • Dependency caching mechanisms
  • Parallel loading optimization
  • Dependency tree shaking optimization

10.3 Monitoring Metrics

  • Dependency loading time
  • Dependency failure rates
  • Dependency update frequency
  • Dependency security vulnerabilities