# simple-share-ce **Repository Path**: 90sec/simple-share-ce ## Basic Information - **Project Name**: simple-share-ce - **Description**: 参考飞书编辑器的现代化风格知识管理平台,基于Spring Boot + Vue3构建,提供所见即所得的文本编辑体验,支持多租户SaaS架构、内容权限管控、复制权限控制、会员内容管理、AI教学等模块,具备完整的用户体系和响应式设计。 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: https://www.easyjx.cn - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 10 - **Created**: 2025-12-03 - **Last Updated**: 2025-12-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SimpleShare - 简享 一个参考飞书编辑器的现代化风格内容分享平台,基于Spring Boot + Vue3构建,提供所见即所得的文本编辑体验,支持多租户SaaS架构、内容权限管控、复制权限控制、会员内容管理、AI教学、文章审核、系统配置等模块,具备完整的用户体系和响应式设计。 ## 📋 目录 - [项目概述](#项目概述) - [技术架构](#技术架构) - [核心功能](#核心功能) - [项目结构](#项目结构) - [快速开始](#快速开始) - [本地开发](#本地开发) - [部署指南](#部署指南) - [环境配置](#环境配置) - [API文档](#api文档) - [贡献指南](#贡献指南) - [许可证](#许可证) ## 🎯 项目概述 SimpleShare是一个多租户(SaaS)化的内容分享平台,具有以下核心特性: - **多租户架构**:支持多个独立租户,数据严格隔离,通过域名区分不同租户 - **集中式安全策略**:租户管理员可全局控制内容复制权限和水印设置 - **现代化界面**:基于Vue 3 + Element Plus的响应式设计 - **强大的编辑器**:集成TipTap富文本编辑器,支持Markdown和富文本 - **灵活的权限系统**:基于角色的访问控制(RBAC) ## 项目预览 | | | | ---- | ---- | | | | | | | | | | | | | | | | | | | | | | | | | | | | ## 🏗️ 技术架构 ### 后端技术栈 - **框架**:Spring Boot 2.7.18 - **安全**:Spring Security + JWT - **数据库**:MySQL 8.0 + MyBatis-Plus + Druid - **构建工具**:Maven - **API文档**:Swagger + Knife4j - **多租户**:基于`tenant_id`字段的逻辑隔离 ### 前端技术栈 - **框架**:Vue 3.5.18 + TypeScript - **构建工具**:Vite 7.0.6 - **UI组件**:Element Plus 2.11.2 - **状态管理**:Pinia 3.0.3 - **路由**:Vue Router 4.5.1 - **样式**:Tailwind CSS 3.4.17 - **编辑器**:TipTap 3.4.4 + Vditor ### 部署架构 - **Web服务器**:Nginx - **应用服务器**:内嵌Tomcat(Spring Boot) - **数据库**:MySQL - **文件存储**:本地文件系统 ## ✨ 核心功能 ### 租户管理 - 租户创建和配置 - 域名绑定和访问控制 - 租户数据隔离 - 租户级别配置管理 ### 用户管理 - 用户注册和登录 - 基于角色的权限控制 - 用户资料管理 - 两步验证支持 ### 内容管理 - 富文本文章编辑 - Markdown支持 - 文章分类和标签 - 访问级别控制(公开/会员/隐私) - 文章审核流程 ### 安全策略 - 全局复制权限控制 - 水印功能 - IP黑白名单 - 登录失败锁定 - 操作日志记录 ### 其他功能 - 文章收藏 - 评论系统 - 点赞和统计 - SEO优化 - 响应式设计 ## 📁 项目结构 ``` simple-share/ ├── backend/ # 后端项目 │ ├── simpleshare-common/ # 通用模块 │ ├── simpleshare-framework/ # 核心框架模块 │ ├── simpleshare-module-system/ # 系统管理模块 │ ├── simpleshare-module-article/ # 文章管理模块 │ ├── simpleshare-module-infra/ # 基础设施模块 │ ├── simpleshare-server/ # 启动模块 │ ├── sql/ # 数据库脚本 │ ├── nginx202512/ # Nginx配置 │ └── pom.xml # 父POM文件 ├── frontend/ # 前端项目 │ ├── src/ │ │ ├── components/ # 通用组件 │ │ ├── views/ # 页面组件 │ │ │ ├── portal/ # 用户端页面 │ │ │ └── admin/ # 管理后台页面 │ │ ├── api/ # API接口 │ │ ├── stores/ # 状态管理 │ │ ├── router/ # 路由配置 │ │ └── utils/ # 工具函数 │ ├── public/ # 静态资源 │ ├── package.json # 依赖配置 │ └── vite.config.ts # Vite配置 ├── 需求文档.md # 需求文档 └── README.md # 项目说明 ``` ## 🚀 快速开始 ### 环境要求 - **Node.js**:^20.19.0 || >=22.12.0 - **Java**:JDK 8+ - **Maven**:3.6+ - **MySQL**:8.0+ - **Nginx**:1.18+ ### 1. 克隆项目 ```bash git clone https://gitee.com/GreenSoftware/simple-share.git cd simple-share ``` ### 2. 数据库初始化 ```bash # 创建数据库 mysql -u root -p CREATE DATABASE `simple-share` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; # 导入初始化脚本 mysql -u root -p simple-share < backend/sql/init.sql ``` ### 3. 后端启动 ```bash cd backend mvn clean package cd simpleshare-server java -jar target/simpleshare-server-1.0.0.jar ``` ### 4. 前端启动 ```bash cd frontend npm install npm run dev ``` ## 💻 本地开发 ### 后端开发环境配置 1. **IDE配置** - 推荐使用IntelliJ IDEA - 安装Lombok插件 - 配置Maven设置 2. **数据库配置** ```yaml # application.yml spring: datasource: url: jdbc:mysql://localhost:3306/simple-share?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai username: root password: your_password ``` 3. **启动类** ```java // SimpleShareApplication.java @SpringBootApplication public class SimpleShareApplication { public static void main(String[] args) { SpringApplication.run(SimpleShareApplication.class, args); } } ``` ### 前端开发环境配置 1. **环境变量配置** ```bash # .env.development VITE_API_BASE_URL=http://localhost:8080 VITE_PROXY_TARGET=http://localhost:8080 ``` 2. **开发命令** ```bash # 安装依赖 npm install # 启动开发服务器 npm run dev # 构建生产版本 npm run build # 代码检查 npm run lint # 格式化代码 npm run format ``` 3. **API代理配置** ```typescript // vite.config.ts server: { proxy: { '/api': { target: 'http://localhost:8080', changeOrigin: true, rewrite: (path) => path.replace(/^\/api/, '') } } } ``` ## 🚀 部署指南 ### 生产环境部署 #### 1. 后端部署 ```bash # 构建项目 cd backend mvn clean package -Dmaven.test.skip=true # 上传jar包到服务器 scp backend/simpleshare-server/target/simpleshare-server-1.0.0.jar user@server:/opt/simpleshare/ # 启动服务 nohup java -jar -Dspring.profiles.active=prod /opt/simpleshare/simpleshare-server-1.0.0.jar > /opt/simpleshare/logs/app.log 2>&1 & ``` #### 2. 前端部署 ```bash # 构建前端 cd frontend npm run build # 上传dist目录到服务器 scp -r dist/* user@server:/opt/simpleshare/web/dist/ ``` #### 3. Nginx配置 ```bash # 复制Nginx配置文件 sudo cp backend/nginx202512/nginx.conf /etc/nginx/sites-available/simpleshare sudo ln -s /etc/nginx/sites-available/simpleshare /etc/nginx/sites-enabled/ # 测试配置 sudo nginx -t # 重启Nginx sudo systemctl restart nginx ``` ## ⚙️ 环境配置 ### 后端配置项 | 配置项 | 说明 | 默认值 | |--------|------|--------| | `spring.datasource.url` | 数据库连接地址 | - | | `spring.datasource.username` | 数据库用户名 | - | | `spring.datasource.password` | 数据库密码 | - | | `server.port` | 服务端口 | 8080 | | `jwt.secret` | JWT密钥 | - | | `jwt.expiration` | JWT过期时间 | 86400秒 | ### 前端配置项 | 配置项 | 说明 | 默认值 | |--------|------|--------| | `VITE_APP_TITLE` | 应用标题 | 简享 | | `VITE_API_BASE_URL` | API基础地址 | /api | | `VITE_APP_WATERMARK_TEXT` | 水印文本 | 简享 | | `VITE_ENABLE_USER_REGISTRATION` | 是否允许用户注册 | true | ## 📚 API文档 ### 认证接口 ``` POST /api/auth/login # 用户登录 POST /api/auth/register # 用户注册 POST /api/auth/logout # 用户登出 POST /api/auth/refresh # 刷新Token ``` ### 文章接口 ``` GET /api/articles # 获取文章列表 POST /api/articles # 创建文章 GET /api/articles/{id} # 获取文章详情 PUT /api/articles/{id} # 更新文章 DELETE /api/articles/{id} # 删除文章 ``` ### 系统管理接口 ``` GET /api/system/users # 获取用户列表 GET /api/system/roles # 获取角色列表 GET /api/system/menus # 获取菜单列表 ``` 完整的API文档可通过Swagger UI访问: ``` http://localhost:8080/doc.html ``` ## 🤝 贡献指南 1. Fork 项目 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 打开 Pull Request ### 代码规范 - 后端遵循阿里巴巴Java开发手册 - 前端遵循ESLint配置 - 提交信息遵循Conventional Commits规范 ## 📄 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。 --- ## 📞 联系方式 ### 交流群汇总: **微信号:xmgcode、xmgcode88** | xmgcode | xmgcode88 | QQ群 | | :---: | :---: | :---: | | | | | **© 2025 小码哥. 保留所有权利.**