# note-server **Repository Path**: dravenlove/note-server ## Basic Information - **Project Name**: note-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-07-31 - **Last Updated**: 2026-07-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 智能文档笔记平台(note-server) > 企业级知识管理解决方案,集文档管理、笔记记录、智能搜索、协作编辑、文件处理于一体。 --- ## 一、项目简介 智能文档笔记平台面向个人、团队及企业用户,提供: - 多人实时协同编辑(Tiptap + Yjs/CRDT) - 全文检索与语义搜索(Elasticsearch + IK 分词) - 文件分片上传与在线预览(MinIO) - RBAC + ABAC 细粒度权限控制 - 消息通知、审计日志、数据统计 --- ## 二、技术栈 ### 后端 | 技术 | 版本 | 说明 | |------|------|------| | Spring Boot | 3.2.x | 应用框架 | | MyBatis Plus | 3.5.x | ORM 数据访问 | | MySQL | 8.0+ | 关系型数据库 | | Redis | 7.x | 缓存 / 会话 / 限流 | | Elasticsearch | 8.x | 全文检索与向量搜索 | | RabbitMQ | 3.12+ | 异步消息总线 | | MinIO | latest | 对象存储,兼容 S3 API | ### 前端 | 技术 | 版本 | 说明 | |------|------|------| | Vue | 3.4+ | 前端框架 | | TypeScript | 5.x | 类型系统 | | Vite | 5.x | 构建工具 | | Pinia | 2.x | 状态管理 | | Element Plus | 2.5+ | UI 组件库 | | Tiptap | 2.x | 富文本/Markdown 编辑器 | --- ## 三、模块说明 ``` note-server/ ├── note-common # 公共模块:常量、枚举、工具类、异常 ├── note-framework # 框架层:统一响应、全局异常、拦截器、MyBatis Plus 配置 ├── note-system # 用户、角色、权限、部门、团队、审计日志 ├── note-document # 文档、目录、版本、标签、收藏、回收站 ├── note-collaboration # 实时协作、分享、评论 ├── note-search # ES 索引、全文搜索、搜索建议 ├── note-file # 文件上传、预览、解析、MinIO 交互 ├── note-notification # 站内信、邮件、WebSocket 推送 ├── note-statistics # 数据统计、数据看板 ├── note-admin # 系统配置、审计日志、运维监控 └── note-server-web # Web 启动模块(聚合所有业务模块) ``` --- ## 四、环境准备 ### 1. 安装基础工具 - JDK 21+ - Maven 3.9+ - Docker & Docker Compose - Node.js 20+ / pnpm 9+ ### 2. 启动基础设施 在项目根目录执行: ```bash docker compose up -d ``` 启动后会暴露以下端口: | 服务 | 端口 | 管理控制台 | |------|------|-----------| | MySQL | 3306 | - | | Redis | 6379 | - | | Elasticsearch | 9200 / 9300 | http://127.0.0.1:9200 | | RabbitMQ | 5672 / 15672 | http://127.0.0.1:15672 | | MinIO | 9000 / 9001 | http://127.0.0.1:9001 | 默认账号: - MySQL:`root` / `root` - RabbitMQ:`admin` / `admin` - MinIO:`minioadmin` / `minioadmin123` > 如需中文分词,请将 Elasticsearch IK 分词器插件解压到 `docs/elasticsearch/plugins`,并取消 `docker-compose.yml` 中对应挂载注释。 --- ## 五、数据库初始化 1. 连接 MySQL(默认已创建 `note_server` 库)。 2. 执行建表脚本: ```bash mysql -h 127.0.0.1 -P 3306 -u root -p note_server < docs/sql/schema.sql ``` 3. 执行初始化数据: ```bash mysql -h 127.0.0.1 -P 3306 -u root -p note_server < docs/sql/data.sql ``` 默认管理员账号:`admin` / `123456`(密码为占位符,生产环境请替换为 bcrypt 密文)。 --- ## 六、启动后端 进入后端启动模块(`note-server-web`),执行: ```bash mvn clean install mvn spring-boot:run -pl note-server-web ``` 或直接在 IDE 中运行 `com.note.web.NoteServerApplication`。 后端默认地址:`http://127.0.0.1:8080` API 基础路径:`/api/v1` --- ## 七、启动前端 进入前端项目目录 `note-web`: ```bash cd note-web pnpm install pnpm dev ``` 前端默认地址:`http://127.0.0.1:5173` --- ## 八、Elasticsearch 索引初始化 使用 `docs/elasticsearch/` 目录下的 mapping 文件创建索引: ```bash # 创建文档索引 curl -X PUT "http://127.0.0.1:9200/note_document" \ -H "Content-Type: application/json" \ -d @docs/elasticsearch/note_document.json # 创建评论索引 curl -X PUT "http://127.0.0.1:9200/note_comment" \ -H "Content-Type: application/json" \ -d @docs/elasticsearch/note_comment.json # 创建搜索建议索引 curl -X PUT "http://127.0.0.1:9200/note_search_suggest" \ -H "Content-Type: application/json" \ -d @docs/elasticsearch/note_search_suggest.json ``` --- ## 九、目录结构速览 ``` note-server/ ├── docs/ │ ├── 智能文档笔记平台-需求功能文档.md │ ├── 智能文档笔记平台-详细设计文档.md │ ├── sql/ │ │ ├── schema.sql │ │ └── data.sql │ └── elasticsearch/ │ ├── note_document.json │ ├── note_comment.json │ └── note_search_suggest.json ├── note-server-web/ │ └── src/main/resources/ │ ├── application.yml │ └── application-dev.yml ├── docker-compose.yml └── README.md ``` --- ## 十、开发规范 - 数据库字段使用下划线命名,Java 实体使用驼峰命名,MyBatis Plus 自动映射。 - Service 层接口与实现分离,方法不超过 50 行。 - Controller 层禁止编写业务逻辑,统一返回 `Result`。 - 使用构造器注入,禁止字段注入。 - 关键操作记录审计日志,敏感信息脱敏。 --- ## 十一、许可证 本项目仅用于学习与交流,未经授权不得用于商业用途。