{"id":14997720,"url":"https://github.com/soybeanjs/soybean-admin-quarkus","last_synced_at":"2025-04-12T16:35:40.321Z","repository":{"id":41841733,"uuid":"467859867","full_name":"soybeanjs/soybean-admin-quarkus","owner":"soybeanjs","description":"基于 Kotlin 和 Quarkus 的后台管理系统脚手架，融合 DDD 驱动设计、CQRS 和事件溯源。采用 Gradle 构建，旨在为开发者提供一个轻量级、高性能的现代化管理系统开发框架。","archived":false,"fork":false,"pushed_at":"2025-01-24T03:54:46.000Z","size":29806,"stargazers_count":251,"open_issues_count":1,"forks_count":100,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-03T17:11:14.596Z","etag":null,"topics":["admin","cqrs","kotlin","quarkus"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/soybeanjs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-03-09T09:28:04.000Z","updated_at":"2025-03-29T22:26:55.000Z","dependencies_parsed_at":"2024-05-30T16:40:05.846Z","dependency_job_id":"99f7700d-8bf5-4ac3-8d37-df9fff2db332","html_url":"https://github.com/soybeanjs/soybean-admin-quarkus","commit_stats":{"total_commits":93,"total_committers":2,"mean_commits":46.5,"dds":"0.12903225806451613","last_synced_commit":"b90bf828194e222fd9c6d519bf8c91bc8a9e4315"},"previous_names":["soybeanjs/soybean-admin-java"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soybeanjs%2Fsoybean-admin-quarkus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soybeanjs%2Fsoybean-admin-quarkus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soybeanjs%2Fsoybean-admin-quarkus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soybeanjs%2Fsoybean-admin-quarkus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/soybeanjs","download_url":"https://codeload.github.com/soybeanjs/soybean-admin-quarkus/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248597181,"owners_count":21130829,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["admin","cqrs","kotlin","quarkus"],"created_at":"2024-09-24T17:31:11.071Z","updated_at":"2025-04-12T16:35:40.292Z","avatar_url":"https://github.com/soybeanjs.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SoybeanAdmin Quarkus\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/soybeanjs/soybean-admin-quarkus/blob/main/LICENSE\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/license-MIT-blue.svg\" alt=\"license\"/\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/soybeanjs/soybean-admin-quarkus/stargazers\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/stars/soybeanjs/soybean-admin-quarkus.svg\" alt=\"stars\"/\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/soybeanjs/soybean-admin-quarkus/network/members\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/forks/soybeanjs/soybean-admin-quarkus.svg\" alt=\"forks\"/\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/soybeanjs/soybean-admin-quarkus/issues\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/issues/soybeanjs/soybean-admin-quarkus.svg\" alt=\"issues\"/\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#简介\"\u003e简介\u003c/a\u003e •\n  \u003ca href=\"#前端项目\"\u003e前端项目\u003c/a\u003e •\n  \u003ca href=\"#特性\"\u003e特性\u003c/a\u003e •\n  \u003ca href=\"#项目结构\"\u003e项目结构\u003c/a\u003e •\n  \u003ca href=\"#快速开始\"\u003e快速开始\u003c/a\u003e •\n  \u003ca href=\"#技术栈\"\u003e技术栈\u003c/a\u003e •\n  \u003ca href=\"#贡献指南\"\u003e贡献指南\u003c/a\u003e •\n  \u003ca href=\"#许可证\"\u003e许可证\u003c/a\u003e\n\u003c/p\u003e\n\n## 简介\n\nSoybeanAdmin Quarkus 是一个基于 Kotlin 和 Quarkus 的现代化后台管理系统脚手架。它融合了领域驱动设计（DDD）、命令查询责任分离（CQRS）和事件溯源等先进的软件架构概念。本项目采用 Gradle 构建，旨在为开发者提供一个轻量级、高性能且易于扩展的管理系统开发框架。\n\n我们的目标是为开发者提供一个灵活、模块化的起点，内置基础的权限管理功能，以便快速构建高质量的企业级管理系统。借助 Quarkus 框架的优势，SoybeanAdmin Quarkus 实现了快速启动、低内存占用和卓越的性能表现。\n\n无论您是开发小型管理后台，还是构建 CMS 等企业应用，SoybeanAdmin Quarkus 都能为您提供坚实的基础和高效的开发体验。本项目提供了灵活可扩展的架构，您可以根据具体需求和偏好进行定制和扩展。\n\n## 前端项目\n\n本项目的前端部分基于 [SoybeanAdmin](https://github.com/soybeanjs/soybean-admin) 进行二次开发。SoybeanAdmin 是一个现代化的前端管理系统模板，提供了丰富的UI组件和功能模块，与本后端项目完美配合，共同构建完整的全栈管理系统解决方案。\n\n前端项目地址：[https://github.com/ByteByteBrew/soybean-admin](https://github.com/ByteByteBrew/soybean-admin)\n\n## 特性\n\n- **Kotlin 语言**：利用 Kotlin 的简洁性和表现力，提供安全、简洁的代码。\n- **Quarkus 框架**：采用 Quarkus 框架，实现快速启动、低内存占用和卓越性能。\n- **DDD 设计**：应用领域驱动设计原则，提供清晰的业务逻辑分层和领域模型。\n- **CQRS 模式**：实现命令查询责任分离，优化系统的读写性能和可扩展性。\n- **事件溯源**：通过事件溯源模式，实现系统状态的可追溯性和可重现性。\n- **Gradle 构建**：使用 Gradle 构建工具，简化项目构建和依赖管理流程。\n- **模块化设计**：采用模块化设计，实现高内聚、低耦合的代码组织结构。\n- **自动化路由**：简化 API 端点的管理，提高开发效率。\n- **权限管理**：内置基于角色的访问控制（RBAC）系统，保障系统安全。\n- **JWT 认证**：实现安全可靠的用户认证和授权机制。\n- **API 文档**：自动生成 Swagger API 文档，便于接口管理和测试。\n- **环境配置**：支持多环境配置，满足不同部署场景的需求。\n- **前后端分离**：采用前后端分离架构，提高开发效率和系统可维护性。\n\n## 项目结构\n\n```\nsoybean-admin-quarkus/\n├── domain/                                 # 领域模块\n│   └── src/main/kotlin/cn/soybean/domain/\n│       ├── base/                           # 基础实体\n│       │   ├── BaseEntity.kt               # 基础实体类\n│       │   └── BaseTenantEntity.kt         # 基础租户实体类\n│       └── system/                         # 系统领域\n│           ├── aggregate/                  # 聚合根\n│           ├── config/                     # 配置\n│           ├── entity/                     # 实体\n│           ├── enums/                      # 枚举\n│           ├── event/                      # 领域事件\n│           ├── repository/                 # 仓储接口\n│           └── vo/                         # 值对象\n├── shared/                                 # 共享模块\n│   └── src/main/kotlin/cn/soybean/shared/\n│       ├── application/                    # 共享的应用服务\n│       ├── domain/                         # 共享的领域逻辑\n│       ├── eventsourcing/                  # 事件总线\n│       ├── infrastructure/                 # 共享的基础设施\n│       ├── projection/                     # 共享的投影\n│       └── util/                           # 共享的工具类\n└── system/                                 # 系统模块\n    └── src/main/kotlin/cn/soybean/\n        ├── application/                    # 应用层\n        │   ├── command/                    # 命令处理\n        │   ├── exceptions/                 # 应用层异常\n        │   └── query/                      # 查询处理\n        ├── domain/                         # 领域层\n        │   ├── aggregate/                  # 聚合根\n        │   └── event/                      # 领域事件\n        ├── eventsourcing/                  # 事件溯源\n        │   ├── convert/                    # 事件转换\n        │   └── entity/                     # 事件实体\n        ├── infrastructure/                 # 基础设施层\n        │   ├── config/                     # 配置\n        │   ├── interceptor/                # 拦截器\n        │   ├── persistence/                # 持久化\n        │   └── security/                   # 安全相关\n        ├── interfaces/rest/                # REST接口\n        │   ├── dto/                        # 数据传输对象\n        │   ├── exceptions/                 # 接口异常\n        │   └── response/                   # 响应封装\n        ├── projection/                     # 投影\n        └── system/                         # 系统核心\n            ├── application/                # 系统应用服务\n            │   ├── bootstrap/              # 启动引导\n            │   ├── command/                # 命令处理\n            │   ├── convert/                # 数据转换\n            │   ├── event/                  # 事件处理\n            │   ├── eventhandler/           # 事件处理器\n            │   ├── query/                  # 查询处理\n            │   └── service/                # 服务实现\n            └── infrastructure/             # 系统基础设施\n                ├── localization/           # 本地化\n                ├── persistence/            # 持久化实现\n                ├── security/               # 安全实现\n                ├── util/                   # 工具类\n                └── web/                    # Web相关\n            └── interfaces/rest/            # 路由\n            └── projection/                 # 投影实现\n```\n\n## 快速开始\n\n1. 克隆项目\n\n```bash\ngit clone https://github.com/soybeanjs/soybean-admin-quarkus.git\ncd soybean-admin-quarkus\n```\n\n2. 构建项目\n\n```bash\n./gradlew build\n```\n\n3. 运行项目\n\n```bash\n./gradlew quarkusDev\n```\n\n4. 访问 API 文档\n\n打开浏览器，访问 `http://localhost:8080/q/swagger-ui`\n\n## 技术栈\n\n- Kotlin：主要编程语言\n- Quarkus：应用框架\n- Gradle：项目构建工具\n- Hibernate ORM with Panache：ORM 框架\n- RESTEasy：RESTful Web 服务框架\n- Swagger UI：API 文档生成工具\n- JWT：身份认证机制\n- PostgreSQL：默认数据库（可根据需求更换）\n\n## 贡献指南\n\n我们欢迎并感谢所有形式的贡献，包括新功能、bug 修复、文档改进等。如果您想为项目做出贡献，请遵循以下步骤：\n\n1. 在 GitHub 上 Fork 本仓库\n2. 从您的 Fork 中克隆项目到本地\n3. 创建新的分支以进行更改 (`git checkout -b feature/YourFeatureName`)\n4. 提交您的更改 (`git commit -m 'Add some feature'`)\n5. 将更改推送到您的 Fork (`git push origin feature/YourFeatureName`)\n6. 在 GitHub 上从您的 Fork 创建一个新的 Pull Request\n\n请确保您的代码符合项目的编码规范，并附带适当的测试用例。\n\n## 许可证\n\n本项目采用 MIT 许可证。有关详细信息，请查看 [LICENSE](LICENSE) 文件。\n\n---\n\n如果您在使用过程中遇到任何问题或有任何建议，欢迎提出 Issue 或 Pull Request。我们期待您的反馈和贡献，共同改进 SoybeanAdmin Quarkus 项目！\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoybeanjs%2Fsoybean-admin-quarkus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsoybeanjs%2Fsoybean-admin-quarkus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoybeanjs%2Fsoybean-admin-quarkus/lists"}