structure.md 3.7 KB

Project Structure

Root Layout

├── yudao-dependencies/     # Maven BOM - dependency version management
├── yudao-framework/        # Reusable framework starters
├── yudao-server/           # Main application entry point (Spring Boot app)
├── yudao-module-*/         # Business modules
├── yudao-ui/               # Frontend projects
├── sql/                    # Database scripts for various databases
└── script/                 # DevOps scripts (Docker, Jenkins, shell)

Framework Modules (yudao-framework/)

Custom Spring Boot starters providing reusable infrastructure:

  • yudao-common - Common utilities, base classes, constants
  • yudao-spring-boot-starter-web - Web/REST configuration
  • yudao-spring-boot-starter-security - Authentication & authorization
  • yudao-spring-boot-starter-mybatis - Database/ORM configuration
  • yudao-spring-boot-starter-redis - Redis/caching
  • yudao-spring-boot-starter-mq - Message queue abstraction
  • yudao-spring-boot-starter-job - Scheduled tasks (Quartz)
  • yudao-spring-boot-starter-biz-tenant - Multi-tenant support
  • yudao-spring-boot-starter-biz-data-permission - Data permission
  • yudao-spring-boot-starter-excel - Excel import/export
  • yudao-spring-boot-starter-protection - Rate limiting, idempotency
  • yudao-spring-boot-starter-test - Test utilities

Business Modules (yudao-module-*)

Each module follows the same internal structure:

  • yudao-module-system - Core system (users, roles, menus, tenants)
  • yudao-module-infra - Infrastructure (code gen, file storage, jobs)
  • yudao-module-bpm - Workflow/BPM (Flowable)
  • yudao-module-report - Reports & dashboards
  • yudao-module-pay - Payment system
  • yudao-module-member - Member/customer center
  • yudao-module-mp - WeChat Official Account
  • yudao-module-mall - E-commerce (product, trade, promotion)
  • yudao-module-crm - CRM system
  • yudao-module-erp - ERP system
  • yudao-module-ai - AI/LLM integration
  • yudao-module-iot - IoT platform

Module Internal Structure

yudao-module-xxx/
└── src/main/java/cn/iocoder/yudao/module/xxx/
    ├── api/            # Internal APIs for cross-module calls
    ├── controller/     # REST controllers (admin/, app/ subfolders)
    ├── convert/        # MapStruct converters (DO <-> VO)
    ├── dal/            # Data access layer
    │   ├── dataobject/ # Entity classes (DO suffix)
    │   ├── mysql/      # MyBatis mappers
    │   └── redis/      # Redis DAOs
    ├── enums/          # Module-specific enums
    ├── framework/      # Module-specific config
    ├── job/            # Scheduled jobs
    ├── mq/             # Message producers/consumers
    └── service/        # Business logic services

Frontend Structure (yudao-ui/yudao-ui-admin-vue3/)

src/
├── api/           # API request functions
├── assets/        # Static assets
├── components/    # Reusable Vue components
├── config/        # App configuration
├── hooks/         # Vue composables
├── layout/        # Page layouts
├── locales/       # i18n translations
├── router/        # Vue Router config
├── store/         # Pinia stores
├── styles/        # Global styles
├── types/         # TypeScript types
├── utils/         # Utility functions
└── views/         # Page components (organized by module)

Configuration Files

  • Backend: yudao-server/src/main/resources/application-{profile}.yaml
  • Frontend: .env, .env.dev, .env.prod, .env.local

Database Scripts

Located in sql/{database}/:

  • ruoyi-vue-pro.sql - Main schema
  • quartz.sql - Quartz scheduler tables