# yunaiv/ruoyi-vue-pro architecture

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

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

## Overview

Yudao is a modular Spring Boot business platform with Vue admin clients. A typical user journey authenticates, invokes a domain module, and receives a result; the README describes token-based security and relational storage, but sampled sources do not establish a single end-to-end request path. The graph therefore shows the documented platform shape and major product capabilities, not a verified call graph. Service excerpts confirm selected AI messaging, HR performance, mall brokerage/order, and IM management responsibilities; unsampled branches use their repository directories as paths.

Main entry points: [`yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthService.java`](https://github.com/yunaiv/ruoyi-vue-pro/blob/master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthService.java) (Authentication), [`yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2GrantService.java`](https://github.com/yunaiv/ruoyi-vue-pro/blob/master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2GrantService.java) (System management), [`yudao-module-mall/yudao-module-trade/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderQueryService.java`](https://github.com/yunaiv/ruoyi-vue-pro/blob/master/yudao-module-mall/yudao-module-trade/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderQueryService.java) (Mall commerce), [`yudao-module-member/src/main/java/cn/iocoder/yudao/module/member/service/auth/MemberAuthService.java`](https://github.com/yunaiv/ruoyi-vue-pro/blob/master/yudao-module-member/src/main/java/cn/iocoder/yudao/module/member/service/auth/MemberAuthService.java) (Member center)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_platform["Platform foundation"]
  node_clients["Admin clients"]
  node_auth["Authentication"]
  node_common["Common services<br/>[PageResult.java]"]
  node_system["System management"]
  node_data["Data permissions"]
  node_tenant["Tenant services"]
end

subgraph group_business["Business domains"]
  node_mall["Mall commerce"]
  node_member["Member center"]
  node_erp["ERP"]
  node_wms["Warehouse"]
  node_crm["CRM"]
  node_hrm["HR management"]
  node_oa["Office collaboration"]
end

subgraph group_collaboration["Collaboration and AI"]
  node_ai["AI sessions"]
  node_iot["IoT devices"]
  node_im["IM and calls"]
end

subgraph group_integrations["Infrastructure and integrations"]
  node_database[("Relational database")]
  node_infra["Infrastructure tools<br/>[CodegenEngine.java]"]
  node_workflow["Workflow"]
  node_payment["Payments"]
  node_reports["Reports and dashboards"]
end

node_user(("User"))

node_user -->|"uses"| node_clients
node_clients -->|"authenticates"| node_auth
node_auth -->|"uses tokens"| node_system
node_clients -.->|"requests commerce"| node_mall
node_clients -.->|"requests membership"| node_member
node_clients -.->|"starts workflows"| node_workflow
node_clients -.->|"requests payment"| node_payment
node_clients -.->|"uses tools"| node_infra
node_clients -.->|"uses AI"| node_ai
node_clients -.->|"manages devices"| node_iot
node_clients -.->|"uses messaging"| node_im
node_clients -.->|"views reports"| node_reports
node_clients -.->|"requests operations"| node_erp
node_clients -.->|"requests inventory"| node_wms
node_clients -.->|"requests CRM"| node_crm
node_clients -.->|"requests HR"| node_hrm
node_clients -.->|"requests office work"| node_oa
node_system -.->|"persists data"| node_database
node_mall -.->|"persists orders"| node_database
node_member -.->|"persists users"| node_database
node_data -.->|"filters queries"| node_database
node_tenant -.->|"isolates tenants"| node_database

click node_auth "https://github.com/yunaiv/ruoyi-vue-pro/blob/master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthService.java"
click node_common "https://github.com/yunaiv/ruoyi-vue-pro/blob/master/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/PageResult.java"
click node_system "https://github.com/yunaiv/ruoyi-vue-pro/blob/master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2GrantService.java"
click node_data "https://github.com/yunaiv/ruoyi-vue-pro/tree/master/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission"
click node_tenant "https://github.com/yunaiv/ruoyi-vue-pro/tree/master/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant"
click node_infra "https://github.com/yunaiv/ruoyi-vue-pro/blob/master/yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/service/codegen/inner/CodegenEngine.java"
click node_workflow "https://github.com/yunaiv/ruoyi-vue-pro/tree/master/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/service"
click node_payment "https://github.com/yunaiv/ruoyi-vue-pro/tree/master/yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/service"
click node_mall "https://github.com/yunaiv/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_member "https://github.com/yunaiv/ruoyi-vue-pro/blob/master/yudao-module-member/src/main/java/cn/iocoder/yudao/module/member/service/auth/MemberAuthService.java"
click node_erp "https://github.com/yunaiv/ruoyi-vue-pro/tree/master/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service"
click node_wms "https://github.com/yunaiv/ruoyi-vue-pro/tree/master/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service"
click node_crm "https://github.com/yunaiv/ruoyi-vue-pro/tree/master/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service"
click node_hrm "https://github.com/yunaiv/ruoyi-vue-pro/blob/master/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/performance/assessment/HrmPerformanceAssessmentReviewService.java"
click node_oa "https://github.com/yunaiv/ruoyi-vue-pro/tree/master/yudao-module-oa/src/main/java/cn/iocoder/yudao/module/oa/service"
click node_ai "https://github.com/yunaiv/ruoyi-vue-pro/blob/master/yudao-module-ai1-springai/src/main/java/cn/iocoder/yudao/module/ai1/service/session/Ai1SessionMessageService.java"
click node_iot "https://github.com/yunaiv/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_im "https://github.com/yunaiv/ruoyi-vue-pro/blob/master/yudao-module-im/src/main/java/cn/iocoder/yudao/module/im/controller/admin/manager/rtc/ImRtcCallManagerController.java"
click node_reports "https://github.com/yunaiv/ruoyi-vue-pro/tree/master/yudao-module-report/src/main/java/cn/iocoder/yudao/module/report/service"

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_clients,node_auth,node_common,node_system,node_data,node_tenant,node_user toneBlue
class node_mall,node_member,node_erp,node_wms,node_crm,node_hrm,node_oa toneAmber
class node_ai,node_iot,node_im toneMint
class node_database,node_infra,node_workflow,node_payment,node_reports toneRose
```

## Components

### Platform foundation

- **Admin clients**
- [Authentication](https://github.com/yunaiv/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`
- [Common services](https://github.com/yunaiv/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`
- [System management](https://github.com/yunaiv/ruoyi-vue-pro/blob/master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2GrantService.java): `yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2GrantService.java`
- [Data permissions](https://github.com/yunaiv/ruoyi-vue-pro/tree/master/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission): `yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission`
- [Tenant services](https://github.com/yunaiv/ruoyi-vue-pro/tree/master/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant): `yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant`

### Business domains

- [Mall commerce](https://github.com/yunaiv/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`
- [Member center](https://github.com/yunaiv/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`
- [ERP](https://github.com/yunaiv/ruoyi-vue-pro/tree/master/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service): `yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service`
- [Warehouse](https://github.com/yunaiv/ruoyi-vue-pro/tree/master/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service): `yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service`
- [CRM](https://github.com/yunaiv/ruoyi-vue-pro/tree/master/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service): `yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service`
- [HR management](https://github.com/yunaiv/ruoyi-vue-pro/blob/master/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/performance/assessment/HrmPerformanceAssessmentReviewService.java): `yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/performance/assessment/HrmPerformanceAssessmentReviewService.java`
- [Office collaboration](https://github.com/yunaiv/ruoyi-vue-pro/tree/master/yudao-module-oa/src/main/java/cn/iocoder/yudao/module/oa/service): `yudao-module-oa/src/main/java/cn/iocoder/yudao/module/oa/service`

### Collaboration and AI

- [AI sessions](https://github.com/yunaiv/ruoyi-vue-pro/blob/master/yudao-module-ai1-springai/src/main/java/cn/iocoder/yudao/module/ai1/service/session/Ai1SessionMessageService.java): `yudao-module-ai1-springai/src/main/java/cn/iocoder/yudao/module/ai1/service/session/Ai1SessionMessageService.java`
- [IoT devices](https://github.com/yunaiv/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`
- [IM and calls](https://github.com/yunaiv/ruoyi-vue-pro/blob/master/yudao-module-im/src/main/java/cn/iocoder/yudao/module/im/controller/admin/manager/rtc/ImRtcCallManagerController.java): `yudao-module-im/src/main/java/cn/iocoder/yudao/module/im/controller/admin/manager/rtc/ImRtcCallManagerController.java`

### Infrastructure and integrations

- **Relational database**
- [Infrastructure tools](https://github.com/yunaiv/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`
- [Workflow](https://github.com/yunaiv/ruoyi-vue-pro/tree/master/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/service): `yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/service`
- [Payments](https://github.com/yunaiv/ruoyi-vue-pro/tree/master/yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/service): `yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/service`
- [Reports and dashboards](https://github.com/yunaiv/ruoyi-vue-pro/tree/master/yudao-module-report/src/main/java/cn/iocoder/yudao/module/report/service): `yudao-module-report/src/main/java/cn/iocoder/yudao/module/report/service`

### Other components

- **User**

## Connections

- User → Admin clients: uses
- Admin clients → Authentication: authenticates
- Authentication → System management: uses tokens
- Admin clients → Mall commerce: requests commerce
- Admin clients → Member center: requests membership
- Admin clients → Workflow: starts workflows
- Admin clients → Payments: requests payment
- Admin clients → Infrastructure tools: uses tools
- Admin clients → AI sessions: uses AI
- Admin clients → IoT devices: manages devices
- Admin clients → IM and calls: uses messaging
- Admin clients → Reports and dashboards: views reports
- Admin clients → ERP: requests operations
- Admin clients → Warehouse: requests inventory
- Admin clients → CRM: requests CRM
- Admin clients → HR management: requests HR
- Admin clients → Office collaboration: requests office work
- System management → Relational database: persists data
- Mall commerce → Relational database: persists orders
- Member center → Relational database: persists users
- Data permissions → Relational database: filters queries
- Tenant services → Relational database: isolates tenants
