# yangze531/ruoyi-vue-pro architecture

> Architecture diagram of the GitHub repository yangze531/ruoyi-vue-pro, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/yangze531/ruoyi-vue-pro
- Repository: https://github.com/yangze531/ruoyi-vue-pro

## Overview

Yudao is an open-source, Spring Boot multi-module rapid-development platform with Vue administration clients and a broad set of business modules. The main user workflow is an administrator or member using a client to authenticate and work with platform capabilities; documented branches include workflow, commerce, CRM/ERP/MES, AI, IoT, reporting, and code generation. The graph combines sampled service interfaces with README-documented capabilities; where implementation details were not sampled, it avoids asserting internal call sequences.

Main entry points: [`yudao-server/src/main/java/cn/iocoder/yudao/server/controller/DefaultController.java`](https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-server/src/main/java/cn/iocoder/yudao/server/controller/DefaultController.java) (Backend API), [`yudao-ui/yudao-ui-admin-vue3/src/api/mes/wm/sn/index.ts`](https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-ui/yudao-ui-admin-vue3/src/api/mes/wm/sn/index.ts) (Vue admin UI), [`yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthService.java`](https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthService.java) (Admin authentication), [`yudao-module-member/src/main/java/cn/iocoder/yudao/module/member/service/auth/MemberAuthService.java`](https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-module-member/src/main/java/cn/iocoder/yudao/module/member/service/auth/MemberAuthService.java) (Member authentication)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_clients["Clients and API"]
  node_vue["Vue admin UI<br/>[index.ts]"]
  node_server["Backend API"]
end

subgraph group_platform["Platform foundation"]
  node_adminauth["Admin authentication"]
  node_memberauth["Member authentication"]
  node_oauth["OAuth2 tokens"]
  node_commonresult["Result and errors<br/>[CommonResult.java]"]
  node_pagination["Pagination model<br/>[PageResult.java]"]
  node_collections["Collection utilities"]
  node_security["Security and permissions"]
  node_tenant["Tenant support"]
end

subgraph group_business["Business modules"]
  node_workflow["Workflow tasks"]
  node_mall["Commerce and trade"]
  node_brokerage["Brokerage"]
  node_crm["CRM"]
  node_erp["ERP"]
  node_mes["Manufacturing"]
  node_ai["AI knowledge"]
  node_iot["IoT devices"]
end

subgraph group_extensions["Platform extensions"]
  node_codegen["Code generation<br/>[CodegenEngine.java]"]
  node_reports["Reports and dashboards"]
  node_websocket["Realtime messaging"]
end

node_admin(("Admin user"))
node_member(("Member user"))
node_external{{"External providers"}}

node_admin -->|"uses"| node_vue
node_member -->|"uses"| node_server
node_vue -->|"calls API"| node_server
node_server -.->|"serves admin auth"| node_adminauth
node_server -.->|"serves member auth"| node_memberauth
node_adminauth -.->|"issues tokens"| node_oauth
node_memberauth -.->|"uses tokens"| node_oauth
node_server -.->|"exposes"| node_workflow
node_server -.->|"exposes"| node_mall
node_server -.->|"exposes"| node_crm
node_server -.->|"exposes"| node_erp
node_server -.->|"exposes"| node_mes
node_server -.->|"exposes"| node_ai
node_server -.->|"exposes"| node_iot
node_server -.->|"exposes"| node_reports
node_mall -->|"includes"| node_brokerage
node_server -->|"uses"| node_security
node_server -->|"supports tenants"| node_tenant
node_server -->|"offers generation"| node_codegen
node_server -->|"supports realtime"| node_websocket
node_server -.->|"integrates providers"| node_external

click node_vue "https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-ui/yudao-ui-admin-vue3/src/api/mes/wm/sn/index.ts"
click node_server "https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-server/src/main/java/cn/iocoder/yudao/server/controller/DefaultController.java"
click node_adminauth "https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthService.java"
click node_memberauth "https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-module-member/src/main/java/cn/iocoder/yudao/module/member/service/auth/MemberAuthService.java"
click node_oauth "https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenService.java"
click node_commonresult "https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/CommonResult.java"
click node_pagination "https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/PageResult.java"
click node_collections "https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/collection/CollectionUtils.java"
click node_security "https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/service/SecurityFrameworkService.java"
click node_tenant "https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/db/TenantDatabaseInterceptor.java"
click node_workflow "https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskService.java"
click node_mall "https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-module-mall/yudao-module-trade/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderQueryService.java"
click node_brokerage "https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-module-mall/yudao-module-trade/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/BrokerageRecordService.java"
click node_crm "https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/business/CrmBusinessService.java"
click node_erp "https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/ErpPurchaseOrderService.java"
click node_mes "https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/route/MesProRouteService.java"
click node_ai "https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/service/knowledge/AiKnowledgeSegmentService.java"
click node_iot "https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/IotDeviceService.java"
click node_codegen "https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/service/codegen/inner/CodegenEngine.java"
click node_websocket "https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/session/WebSocketSessionManagerImpl.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_vue,node_server,node_admin,node_member toneBlue
class node_adminauth,node_memberauth,node_oauth,node_commonresult,node_pagination,node_collections,node_security,node_tenant toneAmber
class node_workflow,node_mall,node_brokerage,node_crm,node_erp,node_mes,node_ai,node_iot toneMint
class node_codegen,node_reports,node_websocket toneRose
class node_external toneIndigo
```

## Components

### Clients and API

- [Vue admin UI](https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-ui/yudao-ui-admin-vue3/src/api/mes/wm/sn/index.ts): `yudao-ui/yudao-ui-admin-vue3/src/api/mes/wm/sn/index.ts`
- [Backend API](https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-server/src/main/java/cn/iocoder/yudao/server/controller/DefaultController.java): `yudao-server/src/main/java/cn/iocoder/yudao/server/controller/DefaultController.java`

### Platform foundation

- [Admin authentication](https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthService.java): `yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthService.java`
- [Member authentication](https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-module-member/src/main/java/cn/iocoder/yudao/module/member/service/auth/MemberAuthService.java): `yudao-module-member/src/main/java/cn/iocoder/yudao/module/member/service/auth/MemberAuthService.java`
- [OAuth2 tokens](https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenService.java): `yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenService.java`
- [Result and errors](https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/CommonResult.java): `yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/CommonResult.java`
- [Pagination model](https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/PageResult.java): `yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/PageResult.java`
- [Collection utilities](https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/collection/CollectionUtils.java): `yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/collection/CollectionUtils.java`
- [Security and permissions](https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/service/SecurityFrameworkService.java): `yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/service/SecurityFrameworkService.java`
- [Tenant support](https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/db/TenantDatabaseInterceptor.java): `yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/db/TenantDatabaseInterceptor.java`

### Business modules

- [Workflow tasks](https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskService.java): `yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskService.java`
- [Commerce and trade](https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-module-mall/yudao-module-trade/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderQueryService.java): `yudao-module-mall/yudao-module-trade/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderQueryService.java`
- [Brokerage](https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-module-mall/yudao-module-trade/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/BrokerageRecordService.java): `yudao-module-mall/yudao-module-trade/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/BrokerageRecordService.java`
- [CRM](https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/business/CrmBusinessService.java): `yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/business/CrmBusinessService.java`
- [ERP](https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/ErpPurchaseOrderService.java): `yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/ErpPurchaseOrderService.java`
- [Manufacturing](https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/route/MesProRouteService.java): `yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/route/MesProRouteService.java`
- [AI knowledge](https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/service/knowledge/AiKnowledgeSegmentService.java): `yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/service/knowledge/AiKnowledgeSegmentService.java`
- [IoT devices](https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/IotDeviceService.java): `yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/IotDeviceService.java`

### Platform extensions

- [Code generation](https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/service/codegen/inner/CodegenEngine.java): `yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/service/codegen/inner/CodegenEngine.java`
- **Reports and dashboards**
- [Realtime messaging](https://github.com/yangze531/ruoyi-vue-pro/blob/master/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/session/WebSocketSessionManagerImpl.java): `yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/session/WebSocketSessionManagerImpl.java`

### Other components

- **Admin user**
- **Member user**
- **External providers**

## Connections

- Admin user → Vue admin UI: uses
- Member user → Backend API: uses
- Vue admin UI → Backend API: calls API
- Backend API → Admin authentication: serves admin auth
- Backend API → Member authentication: serves member auth
- Admin authentication → OAuth2 tokens: issues tokens
- Member authentication → OAuth2 tokens: uses tokens
- Backend API → Workflow tasks: exposes
- Backend API → Commerce and trade: exposes
- Backend API → CRM: exposes
- Backend API → ERP: exposes
- Backend API → Manufacturing: exposes
- Backend API → AI knowledge: exposes
- Backend API → IoT devices: exposes
- Backend API → Reports and dashboards: exposes
- Commerce and trade → Brokerage: includes
- Backend API → Security and permissions: uses
- Backend API → Tenant support: supports tenants
- Backend API → Code generation: offers generation
- Backend API → Realtime messaging: supports realtime
- Backend API → External providers: integrates providers
