# doc-editor-server **Repository Path**: xtfge0915/doc-editor-server ## Basic Information - **Project Name**: doc-editor-server - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-09 - **Last Updated**: 2026-03-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Doc Editor Server ## 项目简介 Doc Editor Server 是一个基于 Spring Boot 的在线文档编辑器后端服务,提供了文档管理、用户管理、协作编辑、版本控制等核心功能,为前端应用提供完整的API支持。 ## 功能特性 - **文档管理**:创建、更新、删除文档,支持文档内容存储和检索 - **用户管理**:用户注册、登录、权限管理 - **协作编辑**:基于 WebSocket 和 Yjs 实现的实时协作编辑 - **版本控制**:自动创建文档快照,支持版本历史查询和恢复 - **批注系统**:支持文档批注的创建和管理 - **模板管理**:文档模板的创建和使用 - **文件上传**:支持图片等文件的上传和管理 - **导出功能**:支持文档导出为 PDF、Word 等格式 - **权限管理**:基于角色的权限控制 ## 技术栈 - **后端框架**:Spring Boot 2.7.18 - **数据库**:MySQL - **ORM**:Spring Data JPA - **WebSocket**:Spring WebSocket - **安全**:Spring Security - **API文档**:SpringDoc OpenAPI - **文件处理**:Apache POI、Jsoup - **PDF转换**:Playwright - **协作编辑**:Yjs ## 项目结构 ``` doc-editor-server/ ├── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/doceditor/backend/ │ │ │ ├── config/ # 配置类 │ │ │ ├── controller/ # 控制器 │ │ │ ├── model/ # 数据模型 │ │ │ ├── repository/ # 数据访问层 │ │ │ ├── service/ # 业务逻辑层 │ │ │ └── BackendApplication.java # 应用入口 │ │ └── resources/ │ │ ├── static/ # 静态资源 │ │ └── application.properties # 应用配置 │ └── test/ # 测试代码 ├── uploads/ # 上传文件存储目录 ├── pom.xml # Maven 配置 └── .gitignore # Git 忽略文件 ``` ## 核心模块 ### 1. 配置模块 (config/) - **CorsConfig**:跨域配置 - **SecurityConfig**:安全配置 - **SpringDocConfig**:API文档配置 - **WebSocketConfig**:WebSocket配置 - **YjsWebSocketHandler**:Yjs协作编辑处理器 ### 2. 控制器模块 (controller/) - **DocumentController**:文档管理API - **UserController**:用户管理API - **SnapshotController**:版本快照API - **AnnotationController**:批注管理API - **ExportController**:导出功能API - **FileController**:文件上传API - **TemplateController**:模板管理API - **WebSocketController**:WebSocket连接管理 ### 3. 模型模块 (model/) - **Document**:文档模型 - **User**:用户模型 - **Snapshot**:版本快照模型 - **Annotation**:批注模型 - **DocumentUser**:文档用户关联模型 - **Template**:模板模型 ### 4. 服务模块 (service/) - **DocumentService**:文档业务逻辑 - **UserService**:用户业务逻辑 - **SnapshotService**:版本管理业务逻辑 - **AnnotationService**:批注业务逻辑 - **YjsService**:协作编辑业务逻辑 - **OnlineUserService**:在线用户管理 ## API文档 项目使用 SpringDoc OpenAPI 生成 API 文档,可通过以下地址访问: ``` http://localhost:8080/swagger-ui.html ``` ## 配置说明 主要配置文件为 `src/main/resources/application.properties`,包含以下关键配置: - 数据库连接配置 - 服务器端口配置 - 文件上传配置 - WebSocket配置 ## 安装和运行 ### 前置条件 - JDK 8 或更高版本 - Maven 3.6 或更高版本 - MySQL 5.7 或更高版本 ### 数据库配置 1. 创建 MySQL 数据库 2. 在 `application.properties` 中配置数据库连接信息 ### 构建和运行 #### 构建项目 ```bash mvn clean package ``` #### 运行项目 ```bash mvn spring-boot:run # 或 java -jar target/doc-editor-server-0.0.1-SNAPSHOT.jar ``` ### 开发模式运行 ```bash mvn spring-boot:run -Dspring-boot.run.profiles=dev ``` ## 协作编辑原理 项目使用 Yjs 实现实时协作编辑,原理如下: 1. 前端通过 WebSocket 连接到后端 2. 后端使用 `YjsWebSocketHandler` 处理连接 3. 编辑操作通过 Yjs 协议在用户之间同步 4. 后端维护文档的最新状态 ## 版本控制实现 1. 每次文档保存时自动创建快照 2. 快照包含文档内容和元数据 3. 支持按时间查看历史版本 4. 支持版本对比和恢复 ## 安全机制 - 使用 Spring Security 进行身份验证和授权 - 基于角色的权限控制 - API 访问控制 - 密码加密存储 ## 测试 项目包含单元测试和集成测试,位于 `src/test` 目录。 ### 运行测试 ```bash mvn test ``` ## 部署 ### 生产环境部署 1. 构建生产版本:`mvn clean package -Pprod` 2. 部署 jar 文件到服务器 3. 配置环境变量和数据库连接 4. 启动服务:`java -jar doc-editor-server-0.0.1-SNAPSHOT.jar` ### Docker 部署 (可选)创建 Dockerfile 进行容器化部署。 ## 监控和日志 - 使用 Spring Boot Actuator 进行应用监控 - 日志配置在 `application.properties` 中设置 ## 贡献指南 1. Fork 项目 2. 创建功能分支 3. 提交更改 4. 推送到分支 5. 开启 Pull Request ## 许可证 ISC License