[Open Source] A Lightweight, General-Purpose Backend Permission Management Framework with a Low-Code Workflow Engine
![[Open Source] A Lightweight, General-Purpose Backend Permission Management Framework with a Low-Code Workflow Engine](https://yy123.ink/api/img/1782598168928-38ls4j.jpg)
1. Project Overview
Blue Admin
Based Spring Boot 3 + Vue 3 A lightweight, general-purpose backend framework for permission management, featuring a frontend-backend separated architecture and ready-to-use functionality out of the box. The framework includes a completely independently designed and developed low-code workflow engine (not an integrated open-source BPM product), making it easy to integrate common OA workflow approval processes. Everyone is welcome to try it out.
2. Open Source License
Licensed under Apache-2.0
3. Screenshots
Page Preview





4. Feature Overview
Functional characteristics
-
Complete RBAC access control (User-Role-Permission) -
Modular design with a clear code structure -
Built-in basic permission management, system functionality, and scheduled task modules -
Built-in low-code workflow engine supporting workflow transitions (Approve/Reject/Return/Transfer/Additional Approval/Cancel/Restart/CC) and data modification at intermediate approval nodes -
Built-in AI assistant functionality [Based on Spring AI, supporting API integration with DeepSeek (chat) and OpenAI (chat, context understanding, text-to-image generation, and image recognition)] -
One-click generation of frontend and backend CRUD code -
Frontend-backend separated architecture with RESTful API design -
Supports dynamic routing and page-level permission control -
JWT authentication and authorization
Workflow Engine Development Roadmap
|
Function |
Status |
Remarks |
|
Workflow Definition Configuration |
Completed |
Basic Property Configuration / Form Configuration / Workflow Node Configuration |
|
Workflow Version Management |
Completed |
|
|
Basic Workflow Transition Features |
Completed |
Approve/Reject/Return/Cancel/Restart |
|
Workflow Notification Messages |
Completed |
Workflow transitions send notification messages and pending task notifications to the corresponding handlers |
|
Process Node Data Modification |
Completed |
Process nodes support modification of approval data (fields configured as editable in the form settings of the workflow definition) |
|
Multi-Person Approval (Countersignature / Any-One Approval) |
Completed |
Countersignature - All approvers must approve, in any order / Any-One Approval - Only one approver needs to approve or reject |
|
Custom Approver Selection |
Completed |
Based on the user/role/department information configured for workflow nodes, one or more users who meet the permission requirements can be selected to approve the next node |
|
Workflow Feature Extensions |
Completed |
CC / Transfer / Add Approver |
|
Code Optimization |
In Progress |
|
5. Tech Stack
Tech Stack
Backend (blue-boot)
- Core Framework
: Spring Boot 3.2 - Persistence Layer
: MyBatis-Plus 3.5 - Database
: MySQL 5.7/8.0 - Task Scheduling
: Quartz - Utility Collection
: Lombok, Hutool ...
Frontend (blue-boot-vue)
- Core Framework
: Vue 3.5.10 + JavaScript - UI Components
: Element Plus - State management
: Pinia - Route management
: Vue Router 4 - Build tools
: Vite 4
The project currently has four branches
-
master: Integrates all features from the branches listed below -
base: Includes basic permission management, system functionality, and scheduled task modules -
extend-ai: Adds AI assistant functionality to base (calling model APIs through Spring AI) -
extend-workflow: Adds a low-code workflow engine to base
Start the Project
Starting the Backend
-
Install JDK 17+, Maven 3.8+, MySQL 5.7/8.0, Redis, and RabbitMQ -
Create a MySQL database and execute the SQL scripts in initial-scripts -
Modify the database/Redis/RabbitMQ connection settings in application.yml (if you need AI functionality, additionally configure api-key and base-url in application.yml)
Frontend Startup
-
Install Node.js 16+ -
Run npm install to install dependencies -
npm run dev (start in development mode) npm run start (start in production mode)