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