diff --git a/README.en.md b/README.en.md new file mode 100644 index 0000000000000000000000000000000000000000..3cd83bf595993fdd956e0f45b10c2f41973574fb --- /dev/null +++ b/README.en.md @@ -0,0 +1,219 @@ +# Rocks + +Enterprise-grade RBAC + Workflow Management Platform + +## Project Overview + +Rocks is an enterprise application development platform built on Spring Boot + Flowable + Vue 3, providing core capabilities including comprehensive permission management (RBAC), a workflow engine (Flowable), code generation, monitoring, and operations. + +## Core Modules + +| Module | Description | +|--------|-------------| +| `rocks-common` | Common utilities: tool classes, exception definitions, result encapsulation, tenant context | +| `rocks-api` | API definitions: BaseApi, CrudApi, PageQuery | +| `rocks-db-adaptor` | Database adapter: MyBatis-Plus, multi-data source, tenant interception, data permission | +| `rocks-cache-adaptor` | Cache adapter: Caffeine/Redis (switchable) | +| `rocks-auth` | Authentication & authorization: JWT, login/logout, permission validation, tenant switching | +| `rocks-perm` | Permission management: users/roles/menus/permissions/tenants/dictionaries | +| `rocks-flow` | Workflow engine: Flowable integration | +| `rocks-builder` | Code generator: database connection, template-based front-end and back-end code generation | +| `rocks-log` | Operation logs: AOP aspect, asynchronous writing | +| `rocks-sight` | Monitoring & operations: JVM/cache/database/message queue | +| `rocks-job-adaptor` | Scheduled tasks: Spring Schedule / XXL-JOB | +| `rocks-mq-adaptor` | Message queue: Local / RabbitMQ (switchable) | +| `rocks-starter` | Spring Boot Starter auto-configuration | +| `rocks-app` | Application entry point | +| `rocks-ui` | Vue 3 + Element Plus frontend | + +## Technology Stack + +### Backend + +- **Core Framework**: Spring Boot 3.x +- **Workflow Engine**: Flowable 6.x +- **Database**: MyBatis-Plus + PostgreSQL +- **Cache**: Caffeine / Redis +- **Security**: Spring Security + JWT +- **Documentation**: SpringDoc OpenAPI + +### Frontend + +- **Framework**: Vue 3 + TypeScript +- **Build Tool**: Vite 5.x +- **UI Components**: Element Plus +- **State Management**: Pinia +- **Routing**: Vue Router + +## Quick Start (Docker) + +### Prerequisites + +- Docker +- Docker Compose + +### One-Click Startup + +```bash +# Execute in the project root directory +docker-compose up -d +``` + +### Access + +- Backend: http://localhost:8925 +- Frontend: http://localhost:8924 +- Default credentials: admin / admin123 + +### Common Commands + +```bash +# View logs +docker-compose logs -f + +# Stop +docker-compose down + +# Stop and remove database (reinitialize) +docker-compose down -v +docker-compose up -d +``` + +## Local Development + +### Database Initialization + +```bash +# PostgreSQL +docker run -d --name postgresSelf \ + -e POSTGRES_PASSWORD=rocks2024 \ + -e POSTGRES_DB=rocks \ + -p 15432:5432 postgres:15-alpine +``` + +Execute SQL migration scripts in the `doc/sql/` directory in order: +- V1.0.0__init_rbac.sql +- V1.0.1__fix_sequences.sql +- Other migration scripts + +### Start Backend + +```bash +# Using Maven +./mvnw spring-boot:run -pl rocks-app + +# Or run after packaging +./mvnw clean package -DskipTests +java -jar rocks-app/target/rocks-app-*.jar +``` + +### Start Frontend + +```bash +cd rocks-ui +npm install +npm run dev +``` + +## Project Structure + +``` +rocks +├── rocks-common/ # Common module +├── rocks-api/ # API definitions +├── rocks-db-adaptor/ # Database adapter +├── rocks-cache-adaptor/ # Cache adapter +├── rocks-auth/ # Authentication module +├── rocks-perm/ # Permission module +├── rocks-flow/ # Workflow module +├── rocks-builder/ # Code generator +├── rocks-log/ # Operation logs +├── rocks-sight/ # Monitoring module +├── rocks-job-adaptor/ # Scheduled tasks +├── rocks-mq-adaptor/ # Message queue +├── rocks-starter/ # Starter +├── rocks-app/ # Application entry +├── rocks-ui/ # Vue frontend +└── doc/ # Documentation +``` + +## Features + +### Authentication & Authorization + +- JWT Token authentication +- Multi-tenant support +- Fine-grained permission control +- Token blacklist +- Login/logout/token refresh/tenant switching + +### Permission Management + +- User management (CRUD, import/export) +- Role management (assign permissions/menus) +- Menu management (tree structure) +- Permission management (fine-grained identifiers) +- Tenant management +- Dictionary management + +### Workflow + +- Process definition (deploy/suspend/activate) +- Process instance (start/terminate) +- Task management (to-do/completed/claim/delegate/reassign) +- Business integration example (leave application workflow) + +### Monitoring & Operations + +- JVM monitoring (memory/GC/threads) +- Database connection pool monitoring +- Cache monitoring +- Message queue monitoring +- Operation log querying + +## Configuration Guide + +### Core Configuration + +```yaml +server: + port: 8925 + +spring: + datasource: + url: jdbc:postgresql://localhost:5432/rocks + username: postgres + password: rocks2024 + +rocks: + auth: + enabled: true + jwt: + secret: your-secret-key + expiration: 3600 + +rocks: + flow: + enabled: true +``` + +### Starter Combinations + +Choose starter combinations based on requirements: + +1. **Base only**: `rocks-starter` +2. **Management backend**: `rocks-starter` + `rocks-spring-boot-starter-auth` +3. **Workflow**: `rocks-starter` + `rocks-spring-boot-starter-auth` + `rocks-spring-boot-starter-flow` + +## Demo Path (Leave Application Workflow) + +1. Log in to the system +2. Navigate to "Leave Management" and submit a leave request +3. Fill in leave details and submit for approval +4. Supervisor approves (approve/reject) +5. HR records (for leaves > 3 days) +6. Workflow completes + +## License + +MIT License \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000000000000000000000000000000000000..4b422dc884813f86a1118e0578598f5fca07944c --- /dev/null +++ b/README.md @@ -0,0 +1,221 @@ + + +# Rocks + +企业级 RBAC + 工作流管理平台 + +## 项目简介 + +Rocks 是一个基于 Spring Boot + Flowable + Vue 3 构建的企业级应用开发平台,提供了完整的权限管理(RBAC)、工作流引擎(Flowable)、代码生成器、监控运维等核心能力。 + +## 核心模块 + +| 模块 | 说明 | +|------|------| +| `rocks-common` | 公共基础:工具类、异常定义、结果封装、租户上下文 | +| `rocks-api` | API 接口定义:BaseApi、CrudApi、PageQuery | +| `rocks-db-adaptor` | 数据库适配:MyBatis-Plus、多数据源、租户拦截、数据权限 | +| `rocks-cache-adaptor` | 缓存适配:Caffeine/Redis 可切换 | +| `rocks-auth` | 认证授权:JWT、登录登出、权限校验、租户切换 | +| `rocks-perm` | 权限管理:用户/角色/菜单/权限/租户/字典 | +| `rocks-flow` | 工作流引擎:Flowable 集成 | +| `rocks-builder` | 代码生成器:数据库连接、模板生成前后端代码 | +| `rocks-log` | 操作日志:AOP 切面、异步写入 | +| `rocks-sight` | 监控运维:JVM/缓存/数据库/消息队列 | +| `rocks-job-adaptor` | 定时任务:Spring Schedule / XXL-JOB | +| `rocks-mq-adaptor` | 消息队列:Local / RabbitMQ 可切换 | +| `rocks-starter` | Spring Boot Starter 自动装配 | +| `rocks-app` | 应用入口 | +| `rocks-ui` | Vue 3 + Element Plus 前端 | + +## 技术栈 + +### 后端 + +- **核心框架**: Spring Boot 3.x +- **流程引擎**: Flowable 6.x +- **数据库**: MyBatis-Plus + PostgreSQL +- **缓存**: Caffeine / Redis +- **安全**: Spring Security + JWT +- **文档**: SpringDoc OpenAPI + +### 前端 + +- **框架**: Vue 3 + TypeScript +- **构建**: Vite 5.x +- **UI 组件**: Element Plus +- **状态管理**: Pinia +- **路由**: Vue Router + +## 快速开始(Docker 方案) + +### 前置条件 + +- Docker +- Docker Compose + +### 一键启动 + +```bash +# 项目根目录执行 +docker-compose up -d +``` + +### 访问 + +- 后端地址: http://localhost:8925 +- 前端地址: http://localhost:8924 +- 默认账号: admin / admin123 + +### 常用命令 + +```bash +# 查看日志 +docker-compose logs -f + +# 停止 +docker-compose down + +# 停止并清除数据库(重新初始化) +docker-compose down -v +docker-compose up -d +``` + +## 本地开发 + +### 数据库初始化 + +```bash +# PostgreSQL +docker run -d --name postgresSelf \ + -e POSTGRES_PASSWORD=rocks2024 \ + -e POSTGRES_DB=rocks \ + -p 15432:5432 postgres:15-alpine +``` + +按顺序执行 `doc/sql/` 目录下的 SQL 迁移脚本: +- V1.0.0__init_rbac.sql +- V1.0.1__fix_sequences.sql +- 以及其他迁移脚本 + +### 启动后端 + +```bash +# 使用 Maven +./mvnw spring-boot:run -pl rocks-app + +# 或打包后运行 +./mvnw clean package -DskipTests +java -jar rocks-app/target/rocks-app-*.jar +``` + +### 启动前端 + +```bash +cd rocks-ui +npm install +npm run dev +``` + +## 项目结构 + +``` +rocks +├── rocks-common/ # 公共模块 +├── rocks-api/ # API 定义 +├── rocks-db-adaptor/ # 数据库适配 +├── rocks-cache-adaptor/ # 缓存适配 +├── rocks-auth/ # 认证模块 +├── rocks-perm/ # 权限模块 +├── rocks-flow/ # 工作流模块 +├── rocks-builder/ # 代码生成器 +├── rocks-log/ # 操作日志 +├── rocks-sight/ # 监控模块 +├── rocks-job-adaptor/ # 定时任务 +├── rocks-mq-adaptor/ # 消息队列 +├── rocks-starter/ # Starter +├── rocks-app/ # 应用入口 +├── rocks-ui/ # Vue 前端 +└── doc/ # 文档 +``` + +## 功能特性 + +### 认证授权 + +- JWT Token 认证 +- 多租户支持 +- 权限细粒度控制 +- Token 黑名单 +- 登录/登出/刷新/切换租户 + +### 权限管理 + +- 用户管理(增删改查、导入导出) +- 角色管理(绑定权限/菜单) +- 菜单管理(树形结构) +- 权限管理(细粒度标识) +- 租户管理 +- 字典管理 + +### 工作流 + +- 流程定义(部署/挂起/激活) +- 流程实例(启动/终止) +- 任务管理(待办/已办/签收/委派/转办) +- 业务集成示例(请假流程) + +### 监控运维 + +- JVM 监控(内存/GC/线程) +- 数据库连接池监控 +- 缓存监控 +- 消息队列监控 +- 操作日志查询 + +## 配置说明 + +### 核心配置 + +```yaml +server: + port: 8925 + +spring: + datasource: + url: jdbc:postgresql://localhost:5432/rocks + username: postgres + password: rocks2024 + +rocks: + auth: + enabled: true + jwt: + secret: your-secret-key + expiration: 3600 + +rocks: + flow: + enabled: true +``` + +### Starter 组合 + +根据需求选择不同 Starter 组合: + +1. **仅底座**: `rocks-starter` +2. **管理后台**: `rocks-starter` + `rocks-spring-boot-starter-auth` +3. **工作流**: `rocks-starter` + `rocks-spring-boot-starter-auth` + `rocks-spring-boot-starter-flow` + +## 演示路径(请假流程) + +1. 登录系统 +2. 进入「请假管理」发起请假 +3. 填写请假信息并提交审批 +4. 主管审批(通过/驳回) +5. 人事备案(>3天流程) +6. 流程结束 + +## License + +MIT License \ No newline at end of file