diff --git a/README.md b/README.md index 12e0139da1a47352249edd448b3feb72cbc78dca..e8e6820465372d7c698db266558df80453b2f2d8 100644 --- a/README.md +++ b/README.md @@ -1,144 +1,134 @@ - -## 平台简介 - -白泽是一套全部开源的快速开发平台,毫无保留给个人及企业免费使用。 - -## 前端代码地址 -[baize-react](https://gitee.com/baizeplus/baize-react) https://gitee.com/baizeplus/baize-react , https://github.com/baizeplus/baize-react -
-[baize-vue](https://gitee.com/baizeplus/baize-vue) https://gitee.com/baizeplus/baize-vue , https://github.com/baizeplus/baize-vue -
- -# Baize: A Comprehensive Web Application Framework with Role-Based Access Control - -Baize is a modern Go web application framework that provides a robust foundation for building secure, scalable, and maintainable web applications with comprehensive role-based access control (RBAC) and monitoring capabilities. - -The framework implements a clean architecture pattern with clear separation of concerns between controllers, services, and data access layers. It provides built-in support for user management, authentication, authorization, configuration management, monitoring, and code generation. - -## Repository Structure +```markdown +# Baize:基于角色的访问控制综合Web应用框架 + +## 项目简介 +Baize 是一个功能齐全的 Web 应用框架,专注于提供基于角色的访问控制(RBAC)功能。它适用于构建企业级管理系统,支持用户权限管理、系统监控、任务调度、数据字典、代码生成等模块,具备完整的前后端分离架构设计。 + +## 主要功能 +- **用户权限管理**:支持用户注册、登录、角色分配、权限控制。 +- **角色管理**:支持创建、编辑、删除角色,并为角色分配权限。 +- **权限控制**:基于 RBAC 模型,支持细粒度权限控制。 +- **系统监控**:包括定时任务管理、在线用户管理、操作日志、登录日志等。 +- **数据字典**:支持字典类型和字典数据的管理。 +- **代码生成**:支持从数据库表自动生成代码模板。 +- **文件上传**:支持多种文件存储方式(本地、S3 等)。 +- **通知系统**:支持系统消息推送和 SSE(Server-Sent Events)实时通知。 +- **多租户支持**:支持不同用户的数据隔离。 + +## 技术栈 +- **后端**:Go + Gin 框架 +- **数据库**:MySQL +- **缓存**:Redis、本地缓存 +- **权限控制**:基于 RBAC 模型 +- **前端**:Vue.js(配套前端) +- **部署**:Docker 支持 +- **日志**:Zap 日志库 +- **安全**:JWT、BCrypt 加密 + +## 目录结构 ``` -. -├── app/ # Main application code -│ ├── baize/ # Core framework utilities and base types -│ ├── business/ # Business logic modules -│ │ ├── monitor/ # Monitoring functionality (jobs, logs, etc.) -│ │ ├── system/ # Core system functionality (users, roles, etc.) -│ │ └── tool/ # Development tools and generators -│ ├── constant/ # Application constants -│ ├── datasource/ # Data source implementations (MySQL, Redis, S3) -│ ├── docs/ # API documentation (Swagger) -│ ├── middlewares/ # HTTP middleware components -│ ├── routes/ # Route definitions -│ ├── setting/ # Application configuration -│ └── utils/ # Utility functions -├── config/ # Configuration files -├── template/ # Code generation templates -└── sql/ # Database schema definitions +├── app/ # 核心代码目录 +│ ├── business/ # 业务模块(系统管理、监控、工具) +│ ├── constant/ # 常量定义 +│ ├── datasource/ # 数据源配置(MySQL、Redis、文件存储) +│ ├── middlewares/ # 中间件(权限、日志、会话) +│ ├── routes/ # 路由配置 +│ ├── setting/ # 配置文件 +│ ├── utils/ # 工具类(加密、文件处理、响应封装等) +│ └── wire.go # Wire 依赖注入配置 +├── config/ # 配置文件 +├── dockerfile # Docker 部署文件 +├── go.mod # Go 模块依赖 +├── sql/ # 数据库脚本 +└── template/ # 代码生成模板 ``` - -## Data Flow -The application follows a clean architecture pattern with clear data flow: - -1. HTTP Request → Middleware (Auth/Logging) → Controller -2. Controller → Service Layer (Business Logic) -3. Service Layer → Data Access Layer (DAO) -4. DAO → Database/Cache/Storage - -```ascii -Request → [Middleware] → [Controller] → [Service] → [DAO] → [Database] - ↓ - [Cache/Redis] - ↓ - [Storage (S3/Local)] -``` - -Key Component Interactions: -- Controllers handle HTTP requests and response formatting -- Services implement business logic and transaction management -- DAOs handle data persistence and retrieval -- Middleware provides cross-cutting concerns (auth, logging) -- Cache layer improves performance for frequently accessed data -- Storage service handles file uploads and downloads - - - - - -- 后端采用Gin、Zap、sqly(sqlx升级)。 -- 权限认证使用共享Session(单机支持本地缓存,集群需要redis),支持多终端认证系统。 -- 支持加载动态权限菜单,多方式轻松权限控制。 -- 高效率开发,使用代码生成器可以一键生成后端代码。(前端正在发开) -- 特别鸣谢:[ruoyi-vue](https://gitee.com/y_project/RuoYi-Vue?_from=gitee_search ), - -##

随手 star ⭐是一种美德。 你们的star就是我的动力

- -## 也期待小伙伴一起加入白泽 - -## 内置功能 - -1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。 -2. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。 -3. 岗位管理:配置系统用户所属担任职务。 -4. 菜单管理:配置系统菜单,操作权限,按钮权限标识等。 -5. 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。 -6. 字典管理:对系统中经常使用的一些较为固定的数据进行维护。 -7. 参数管理:对系统动态配置常用参数。 -8. 通知公告:系统通知公告信息发布维护。 -9. 登录日志:系统登录日志记录查询包含登录异常。 -10. 在线用户:当前系统中活跃用户状态监控。 -11. 服务监控:监视当前系统CPU、内存、磁盘等相关信息。 -12. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。 -13. 系统接口:根据业务代码注释自动生成相关的api接口文档。 -14. 代码生成:前后端代码的生成(Go、sql)支持CRUD下载 。 -15. 定时任务:在线(添加、修改、删除)任务调度。 -## 版本规则 -v5.6.7
-1位为主版本号(5):当功能模块有较大的变动,比如增加多个模块或者整体架构发生变化,数据库结构发生变化。此版本号由项目决定是否修改。 -
-2为次版本号(6):当功能有一定的增加或变化,比如修改了API接口。此版本号由项目决定是否修改。 -
-3为阶段版本号(7):一般是 Bug 修复或是一些小的变动,要经常发布修订版,时间间隔不限。 -
-主版本号升级请参考更新说明更新修改或添加相应的数据表。 -次版本号升级请参考更新说明查看API接口修改情况。 -阶段版本号不会影响数据库与api接口,除修复重大bug不更新说明文档 - - - -## 在线体验 - -- admin/admin123 - -react演示地址:http://react.ibaize.vip -
-vue3演示地址:http://vue.ibaize.vip -
-文档地址:https://doc.ibaize.vip -
- -## 演示图 - - - - - - - - - - - - - - - -
- - - -## 白泽管理系统交流群 - - -QQ群: [![加入QQ群](https://img.shields.io/badge/83064682-blue.svg)](https://qm.qq.com/cgi-bin/qm/qr?k=rAIw_VQ_blbSQu0J6fApnm5RbAc2CHbp&jump_from=webapi) 点击按钮入群。 -##欢迎加入 +## 安装与部署 +### 本地开发环境搭建 +1. **安装 Go** + - 下载并安装 [Go](https://golang.org/dl/)(建议版本 1.18+) + +2. **克隆项目** + ```bash + git clone https://gitee.com/yourname/baize.git + cd baize + ``` + +3. **安装依赖** + ```bash + go mod tidy + ``` + +4. **配置数据库** + - 创建 MySQL 数据库并导入 `sql/baize.sql` + +5. **配置 Redis** + - 启动 Redis 服务并确保配置文件中 Redis 地址正确 + +6. **运行项目** + ```bash + go run main.go + ``` + +### 使用 Docker 部署 +1. **构建镜像** + ```bash + docker build -t baize . + ``` + +2. **运行容器** + ```bash + docker run -d -p 80:80 baize + ``` + +## 使用说明 +### 用户权限管理 +- **用户管理**:支持用户增删改查、状态控制、密码重置。 +- **角色管理**:支持角色创建、权限分配、数据权限控制。 +- **权限控制**:通过中间件 `HasPermission` 控制接口访问权限。 + +### 系统监控 +- **定时任务**:支持任务启停、手动执行、日志查看。 +- **在线用户**:支持查看当前在线用户并强制下线。 +- **操作日志**:记录所有用户操作行为。 +- **登录日志**:记录用户登录登出信息。 + +### 数据字典 +- **字典类型**:支持字典类型增删改查。 +- **字典数据**:支持字典数据管理,支持缓存清除。 + +### 代码生成 +- **表管理**:支持从数据库表生成代码模板。 +- **预览代码**:支持查看生成的代码。 +- **一键下载**:支持打包下载生成的代码。 + +### 文件上传 +- **本地存储**:默认使用本地文件系统存储。 +- **S3 存储**:支持 AWS S3 存储配置。 + +### 实时通知 +- **SSE 支持**:支持通过 Server-Sent Events 推送实时通知。 + +## 开发贡献 +欢迎社区开发者参与贡献: +1. Fork 项目 +2. 创建新分支 +3. 提交 Pull Request + +## 协议 +本项目采用 Apache-2.0 协议,详情请参见 [LICENSE](LICENSE) 文件。 + +## 致谢 +感谢以下开源项目的支持: +- [Gin](https://github.com/gin-gonic/gin) +- [GORM](https://gorm.io/) +- [Zap](https://github.com/uber-go/zap) +- [Wire](https://github.com/google/wire) + +## 联系我们 +- **项目地址**:[Gitee](https://gitee.com/yourname/baize) +- **交流群**:加入 QQ 群或微信群(详见 README.md) +- **问题反馈**:欢迎提交 Issue 或联系维护者 + +> 随手 star ⭐是一种美德。你们的 star 就是我的动力! +``` \ No newline at end of file