# porpoise-one **Repository Path**: CrazyAirhead/porpoise-one ## Basic Information - **Project Name**: porpoise-one - **Description**: 一个基于 Solon 和 SoybeanAdmin 的管理后端,是 《Solon 实战教程》的完整示例系统。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2025-04-18 - **Last Updated**: 2026-01-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # porpoise-one porpoise-one 是《Solon 实战教程》的示例系统。 本示例系统,基于 porpoise 的多模块版本抽取,完全基于 Solon 及官网提供相关的插件,取消了多模块和定制化的插件,去除了 AI模块(尝试性的)和内容管理(定制内容比较多)这两个模块,但前端页面都是有保留的。 前端基于 [SoybeanAdmin](https://docs.soybeanjs.cn/zh/),并做了一些基础组件调用后端接口的封装。 如果喜欢,欢迎 Start,如果有问题,请提 Issues。 因为是示例系统,如果用于正式环境请慎重。 ## 功能 - 系统管理 - 用户管理 - 角色管理 - 权限管理 - 配置管理 - 字典管理 - 基础设施 - 存储管理 - [] 任务调度 (暂无界面) - 开发管理 - 代码生成 ## 技术栈 - 前端 - Node 18.19.0+ - pnpm 8.7.0+ - Vue 3 - Vite 4 - TypeScript - alovajs - 后端 - JDK 17 - Gradle - Solon 3.5.2 - Easy-query 3.1.24 - lombok 8.10 - Mapstruct 1.6.3 - Hutool 7.0.0-M1 - MySQL 8+ - Redis 6+ ## 运行 ### 数据库 - 创建数据库 - 执行doc/sql/porpoise-one.sql ### Redis - 无初始化 ### 后端 - 默认开启了solon.env=dev, 屏蔽掉。 - 修改配置app.yaml,修复数据库和 redis 配置。 - 运行 PorpoiseApp。 ### 前端 ```shell pnpm install pnpm run dev ``` ## 系统截图 ### 登录 ![登录](doc/images/31217588-90c9-4a1d-b0ac-9973e4eaa38d.png) ### 首页 ![首页](doc/images/48ee377c-d82b-4978-b673-8e08381e8242.png) ### 系统管理 ![用户管理](doc/images/b350b295-cd80-4daf-bce8-959835c7a2ec.png) ![用户管理](doc/images/3df42ca2-1de9-4391-a51f-29bef93ba605.png) ![角色管理](doc/images/369159c1-1149-498a-874e-33beac01be88.png) ![权限管理](doc/images/d9cebc9f-92ee-4023-bf24-11f0bdd52bf7.png) ![配置管理](doc/images/43e2b8ae-dcdf-4cb1-867f-3dd2b8098c64.png) ![字典管理](doc/images/34dd0542-d3da-4e82-86dc-83502159c2c5.png) ### 基础设施 ![存储配置](doc/images/cacbe9d7-82dc-46ed-b9bd-f695f3358cf3.png) ![存储文件](doc/images/6beb4671-de2c-4dc5-afa3-4b1f843f12d6.png) ### 开发管理 ![数据源配置](doc/images/4ae390ed-e731-4e16-a494-45e415fb1847.png) ![代码生成](doc/images/42b50b7a-80f5-4342-a1e0-d2738e7117ee.png) ![生成配置](doc/images/37693507-aa8f-4ae9-80fc-99996db5665b.png)