collabdocchat 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,521 +1,521 @@
1
- # CollabDocChat
2
-
3
- <div align="center">
4
-
5
- ![CollabDocChat Logo](https://img.shields.io/badge/CollabDocChat-v1.0.0-blue)
6
- ![License](https://img.shields.io/badge/license-MIT-green)
7
- ![Node](https://img.shields.io/badge/node-%3E%3D16.0.0-brightgreen)
8
- ![MongoDB](https://img.shields.io/badge/MongoDB-%3E%3D5.0-green)
9
-
10
- **开源的实时协作文档聊天平台**
11
-
12
- 集成任务管理 · 多人文档编辑 · 智能点名 · 即时通讯
13
-
14
- [快速开始](#快速开始) · [功能特性](#功能特性) · [技术栈](#技术栈) · [贡献指南](#贡献指南)
15
-
16
- </div>
17
-
18
- ---
19
-
20
- ## 📖 项目简介
21
-
22
- **CollabDocChat** 是一个轻量级的开源协作平台,专为学习和办公场景设计。它将即时通讯、多人实时文档编辑、任务管理和互动点名功能整合在一起,提供一站式的群体协作解决方案。
23
-
24
- ### 🎯 核心定位
25
-
26
- - **轻量级**:相比飞书、钉钉等重型工具,更加简洁易用
27
- - **开源免费**:完全开源,可自由部署和定制
28
- - **实时协作**:基于 WebSocket 的实时同步技术
29
- - **双端权限**:管理员和用户角色分离,权限清晰
30
-
31
- ---
32
-
33
- ## ✨ 功能特性
34
-
35
- ### 👨‍💼 管理员端
36
-
37
- - **群组管理**
38
- - 创建/管理群组
39
- - 添加/移除成员
40
- - 查看成员在线状态
41
-
42
- - **任务管理**
43
- - 发布/编辑/终止任务
44
- - 关联文档到任务
45
- - 查看任务完成进度
46
-
47
- - **文档管理**
48
- - 上传/共享文档
49
- - 设置文档权限(只读/可编辑)
50
- - 查看文档编辑日志
51
-
52
- - **随机点名**
53
- - 单次/批量随机点名
54
- - 查看点名历史记录
55
- - 实时响应提醒
56
-
57
- ### 👥 用户端
58
-
59
- - **任务接收**
60
- - 实时接收任务通知
61
- - 查看待完成/已完成任务
62
- - 更新任务状态
63
-
64
- - **文档协作**
65
- - 多人实时编辑文档
66
- - 自动同步内容
67
- - 查看版本历史
68
- - 显示其他用户编辑状态
69
-
70
- - **即时通讯**
71
- - 群组聊天
72
- - 实时消息推送
73
- - 点名响应
74
-
75
- - **个人中心**
76
- - 查看个人任务
77
- - 编辑记录
78
- - 群组列表
79
-
80
- ---
81
-
82
- ## 🛠 技术栈
83
-
84
- ### 后端
85
- - **Node.js** + **Express** - 服务器框架
86
- - **MongoDB** + **Mongoose** - 数据库
87
- - **WebSocket (ws)** - 实时通信
88
- - **JWT** - 身份认证
89
- - **Yjs** - CRDT 实时协作算法
90
-
91
- ### 前端
92
- - **原生 JavaScript** - 无框架依赖
93
- - **Vite** - 构建工具
94
- - **CSS3** - 现代化 UI 设计
95
- - **WebSocket API** - 实时通信
96
-
97
- ### 核心技术
98
- - **CRDT (Conflict-free Replicated Data Type)** - 无冲突文档同步
99
- - **WebSocket** - 双向实时通信
100
- - **JWT** - 无状态身份验证
101
-
102
- ---
103
-
104
- ## 🚀 快速开始
105
-
106
- ### 环境要求
107
-
108
- - Node.js >= 16.0.0
109
- - MongoDB >= 5.0
110
- - npm 或 yarn
111
-
112
- ### 安装步骤
113
-
114
- #### 方式一:通过 npm 安装(推荐)
115
-
116
- ```bash
117
- # 安装包
118
- npm install collabdocchat
119
-
120
- # 进入安装目录
121
- cd node_modules/collabdocchat
122
-
123
- # 启动应用(自动打开浏览器)
124
- npm start
125
- ```
126
-
127
- #### 方式二:从源码安装
128
-
129
- 1. **克隆项目**
130
-
131
- ```bash
132
- git clone https://github.com/shijinghao/collabdocchat.git
133
- cd collabdocchat
134
- ```
135
-
136
- 2. **安装依赖**
137
-
138
- ```bash
139
- npm install
140
- ```
141
-
142
- 3. **配置环境变量**
143
-
144
- 复制 `.env.example` 为 `.env` 并修改配置:
145
-
146
- ```bash
147
- cp .env.example .env
148
- ```
149
-
150
- 编辑 `.env` 文件:
151
-
152
- ```env
153
- PORT=3000
154
- MONGODB_URI=mongodb://localhost:27017/collabdocchat
155
- JWT_SECRET=your_super_secret_jwt_key_change_this
156
- CLIENT_URL=http://localhost:5173
157
- ```
158
-
159
- 4. **启动 MongoDB**
160
-
161
- ```bash
162
- # Windows
163
- mongod
164
-
165
- # macOS/Linux
166
- sudo systemctl start mongod
167
- ```
168
-
169
- 5. **启动项目**
170
-
171
- ```bash
172
- # 一键启动(推荐)- 自动启动服务器和客户端,并打开浏览器
173
- npm start
174
-
175
- # 开发模式(同时启动前后端,使用 nodemon 自动重启)
176
- npm run dev
177
-
178
- # 或分别启动
179
- npm run server # 后端服务器
180
- npm run client # 前端开发服务器
181
- ```
182
-
183
- 6. **访问应用**
184
-
185
- 运行 `npm start` 后,浏览器会自动打开并访问 `http://localhost:5173`
186
-
187
- 或手动访问:`http://localhost:5173`
188
-
189
- ---
190
-
191
- ## 📁 项目结构
192
-
193
- ```
194
- CollabDocChat/
195
- ├── server/ # 后端代码
196
- │ ├── models/ # 数据模型
197
- │ │ ├── User.js
198
- │ │ ├── Group.js
199
- │ │ ├── Document.js
200
- │ │ └── Task.js
201
- │ ├── routes/ # API 路由
202
- │ │ ├── auth.js
203
- │ │ ├── groups.js
204
- │ │ ├── documents.js
205
- │ │ └── tasks.js
206
- │ ├── middleware/ # 中间件
207
- │ │ └── auth.js
208
- │ ├── websocket/ # WebSocket 处理
209
- │ │ └── index.js
210
- │ └── index.js # 服务器入口
211
- ├── src/ # 前端代码
212
- │ ├── pages/ # 页面组件
213
- │ │ ├── login.js
214
- │ │ ├── admin-dashboard.js
215
- │ │ └── user-dashboard.js
216
- │ ├── services/ # 服务层
217
- │ │ ├── api.js
218
- │ │ ├── auth.js
219
- │ │ └── websocket.js
220
- │ ├── styles/ # 样式文件
221
- │ │ └── main.css
222
- │ └── main.js # 前端入口
223
- ├── package.json
224
- ├── vite.config.js
225
- ├── .env.example
226
- └── README.md
227
- ```
228
-
229
- ---
230
-
231
- ## 🔌 API 文档
232
-
233
- ### 认证接口
234
-
235
- #### 注册
236
- ```http
237
- POST /api/auth/register
238
- Content-Type: application/json
239
-
240
- {
241
- "username": "string",
242
- "email": "string",
243
- "password": "string",
244
- "role": "admin" | "user"
245
- }
246
- ```
247
-
248
- #### 登录
249
- ```http
250
- POST /api/auth/login
251
- Content-Type: application/json
252
-
253
- {
254
- "email": "string",
255
- "password": "string"
256
- }
257
- ```
258
-
259
- ### 群组接口
260
-
261
- #### 获取群组列表
262
- ```http
263
- GET /api/groups
264
- Authorization: Bearer {token}
265
- ```
266
-
267
- #### 创建群组(管理员)
268
- ```http
269
- POST /api/groups
270
- Authorization: Bearer {token}
271
- Content-Type: application/json
272
-
273
- {
274
- "name": "string",
275
- "description": "string",
276
- "members": ["userId1", "userId2"]
277
- }
278
- ```
279
-
280
- #### 随机点名(管理员)
281
- ```http
282
- POST /api/groups/:id/call
283
- Authorization: Bearer {token}
284
- Content-Type: application/json
285
-
286
- {
287
- "count": 1
288
- }
289
- ```
290
-
291
- ### 文档接口
292
-
293
- #### 获取群组文档
294
- ```http
295
- GET /api/documents/group/:groupId
296
- Authorization: Bearer {token}
297
- ```
298
-
299
- #### 创建文档
300
- ```http
301
- POST /api/documents
302
- Authorization: Bearer {token}
303
- Content-Type: application/json
304
-
305
- {
306
- "title": "string",
307
- "content": "string",
308
- "groupId": "string",
309
- "permission": "readonly" | "editable"
310
- }
311
- ```
312
-
313
- #### 更新文档
314
- ```http
315
- PATCH /api/documents/:id
316
- Authorization: Bearer {token}
317
- Content-Type: application/json
318
-
319
- {
320
- "content": "string"
321
- }
322
- ```
323
-
324
- ### 任务接口
325
-
326
- #### 获取我的任务
327
- ```http
328
- GET /api/tasks/my
329
- Authorization: Bearer {token}
330
- ```
331
-
332
- #### 创建任务(管理员)
333
- ```http
334
- POST /api/tasks
335
- Authorization: Bearer {token}
336
- Content-Type: application/json
337
-
338
- {
339
- "title": "string",
340
- "description": "string",
341
- "groupId": "string",
342
- "assignedTo": ["userId1"],
343
- "relatedDocument": "documentId",
344
- "deadline": "2024-12-31"
345
- }
346
- ```
347
-
348
- ---
349
-
350
- ## 🔄 WebSocket 事件
351
-
352
- ### 客户端发送
353
-
354
- ```javascript
355
- // 认证
356
- { type: 'auth', token: 'jwt_token' }
357
-
358
- // 加入群组
359
- { type: 'join_group', groupId: 'group_id' }
360
-
361
- // 发送聊天消息
362
- { type: 'chat_message', groupId: 'group_id', username: 'user', content: 'message' }
363
-
364
- // 同步文档
365
- { type: 'document_sync', documentId: 'doc_id', content: 'text', cursorPosition: 0 }
366
-
367
- // 响应点名
368
- { type: 'call_response', groupId: 'group_id', username: 'user' }
369
-
370
- // 输入状态
371
- { type: 'typing', documentId: 'doc_id', username: 'user', isTyping: true }
372
- ```
373
-
374
- ### 服务器推送
375
-
376
- ```javascript
377
- // 认证成功
378
- { type: 'auth_success', userId: 'user_id', role: 'admin' }
379
-
380
- // 聊天消息
381
- { type: 'chat_message', groupId: 'group_id', userId: 'user_id', username: 'user', content: 'message', timestamp: 'ISO8601' }
382
-
383
- // 文档更新
384
- { type: 'document_update', documentId: 'doc_id', content: 'text', userId: 'user_id', timestamp: 'ISO8601' }
385
-
386
- // 用户离线
387
- { type: 'user_offline', userId: 'user_id' }
388
- ```
389
-
390
- ---
391
-
392
- ## 🎨 界面预览
393
-
394
- ### 登录页面
395
- - 现代化渐变背景
396
- - 流畅的动画效果
397
- - 登录/注册切换
398
-
399
- ### 管理员仪表板
400
- - 群组管理面板
401
- - 任务发布界面
402
- - 文档权限控制
403
- - 随机点名功能
404
-
405
- ### 用户仪表板
406
- - 任务列表
407
- - 实时文档编辑器
408
- - 群组聊天
409
- - 在线状态显示
410
-
411
- ---
412
-
413
- ## 🤝 贡献指南
414
-
415
- 我们欢迎所有形式的贡献!
416
-
417
- ### 如何贡献
418
-
419
- 1. Fork 本项目
420
- 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
421
- 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
422
- 4. 推送到分支 (`git push origin feature/AmazingFeature`)
423
- 5. 开启 Pull Request
424
-
425
- ### 代码规范
426
-
427
- - 使用 ES6+ 语法
428
- - 遵循 ESLint 规则
429
- - 添加必要的注释
430
- - 编写清晰的提交信息
431
-
432
- ---
433
-
434
- ## 📦 发布到 npm
435
-
436
- ### 准备发布
437
-
438
- 1. **更新版本号**
439
-
440
- ```bash
441
- npm version patch # 1.0.0 -> 1.0.1
442
- npm version minor # 1.0.0 -> 1.1.0
443
- npm version major # 1.0.0 -> 2.0.0
444
- ```
445
-
446
- 2. **登录 npm**
447
-
448
- ```bash
449
- npm login
450
- ```
451
-
452
- 3. **发布包**
453
-
454
- ```bash
455
- npm publish
456
- ```
457
-
458
- ### 使用 npm 包
459
-
460
- ```bash
461
- npm install collabdocchat
462
- ```
463
-
464
- ---
465
-
466
- ## 📄 开源协议
467
-
468
- 本项目采用 [MIT License](LICENSE) 开源协议。
469
-
470
- ---
471
-
472
- ## 🙏 致谢
473
-
474
- 感谢以下开源项目:
475
-
476
- - [Express](https://expressjs.com/) - Web 框架
477
- - [MongoDB](https://www.mongodb.com/) - 数据库
478
- - [Yjs](https://github.com/yjs/yjs) - CRDT 算法
479
- - [Vite](https://vitejs.dev/) - 构建工具
480
-
481
- ---
482
-
483
- ## 📞 联系方式
484
-
485
- - **项目主页**: [https://github.com/yourusername/collabdocchat](https://github.com/yourusername/collabdocchat)
486
- - **问题反馈**: [Issues](https://github.com/yourusername/collabdocchat/issues)
487
- - **邮箱**: your.email@example.com
488
-
489
- ---
490
-
491
- ## 🗺 路线图
492
-
493
- ### v1.1.0 (计划中)
494
- - [ ] 文件上传功能
495
- - [ ] 富文本编辑器
496
- - [ ] 消息通知系统
497
- - [ ] 移动端适配
498
-
499
- ### v1.2.0 (计划中)
500
- - [ ] 视频会议集成
501
- - [ ] 屏幕共享
502
- - [ ] 白板功能
503
- - [ ] 插件系统
504
-
505
- ### v2.0.0 (未来)
506
- - [ ] 微服务架构
507
- - [ ] Docker 部署
508
- - [ ] 多语言支持
509
- - [ ] AI 助手集成
510
-
511
- ---
512
-
513
- <div align="center">
514
-
515
- **⭐ 如果这个项目对你有帮助,请给我们一个 Star!⭐**
516
-
517
- Made with ❤️ by CollabDocChat Team
518
-
519
- </div>
520
-
521
-
1
+ # CollabDocChat
2
+
3
+ <div align="center">
4
+
5
+ ![CollabDocChat Logo](https://img.shields.io/badge/CollabDocChat-v1.0.0-blue)
6
+ ![License](https://img.shields.io/badge/license-MIT-green)
7
+ ![Node](https://img.shields.io/badge/node-%3E%3D16.0.0-brightgreen)
8
+ ![MongoDB](https://img.shields.io/badge/MongoDB-%3E%3D5.0-green)
9
+
10
+ **开源的实时协作文档聊天平台**
11
+
12
+ 集成任务管理 · 多人文档编辑 · 智能点名 · 即时通讯
13
+
14
+ [快速开始](#快速开始) · [功能特性](#功能特性) · [技术栈](#技术栈) · [贡献指南](#贡献指南)
15
+
16
+ </div>
17
+
18
+ ---
19
+
20
+ ## 📖 项目简介
21
+
22
+ **CollabDocChat** 是一个轻量级的开源协作平台,专为学习和办公场景设计。它将即时通讯、多人实时文档编辑、任务管理和互动点名功能整合在一起,提供一站式的群体协作解决方案。
23
+
24
+ ### 🎯 核心定位
25
+
26
+ - **轻量级**:相比飞书、钉钉等重型工具,更加简洁易用
27
+ - **开源免费**:完全开源,可自由部署和定制
28
+ - **实时协作**:基于 WebSocket 的实时同步技术
29
+ - **双端权限**:管理员和用户角色分离,权限清晰
30
+
31
+ ---
32
+
33
+ ## ✨ 功能特性
34
+
35
+ ### 👨‍💼 管理员端
36
+
37
+ - **群组管理**
38
+ - 创建/管理群组
39
+ - 添加/移除成员
40
+ - 查看成员在线状态
41
+
42
+ - **任务管理**
43
+ - 发布/编辑/终止任务
44
+ - 关联文档到任务
45
+ - 查看任务完成进度
46
+
47
+ - **文档管理**
48
+ - 上传/共享文档
49
+ - 设置文档权限(只读/可编辑)
50
+ - 查看文档编辑日志
51
+
52
+ - **随机点名**
53
+ - 单次/批量随机点名
54
+ - 查看点名历史记录
55
+ - 实时响应提醒
56
+
57
+ ### 👥 用户端
58
+
59
+ - **任务接收**
60
+ - 实时接收任务通知
61
+ - 查看待完成/已完成任务
62
+ - 更新任务状态
63
+
64
+ - **文档协作**
65
+ - 多人实时编辑文档
66
+ - 自动同步内容
67
+ - 查看版本历史
68
+ - 显示其他用户编辑状态
69
+
70
+ - **即时通讯**
71
+ - 群组聊天
72
+ - 实时消息推送
73
+ - 点名响应
74
+
75
+ - **个人中心**
76
+ - 查看个人任务
77
+ - 编辑记录
78
+ - 群组列表
79
+
80
+ ---
81
+
82
+ ## 🛠 技术栈
83
+
84
+ ### 后端
85
+ - **Node.js** + **Express** - 服务器框架
86
+ - **MongoDB** + **Mongoose** - 数据库
87
+ - **WebSocket (ws)** - 实时通信
88
+ - **JWT** - 身份认证
89
+ - **Yjs** - CRDT 实时协作算法
90
+
91
+ ### 前端
92
+ - **原生 JavaScript** - 无框架依赖
93
+ - **Vite** - 构建工具
94
+ - **CSS3** - 现代化 UI 设计
95
+ - **WebSocket API** - 实时通信
96
+
97
+ ### 核心技术
98
+ - **CRDT (Conflict-free Replicated Data Type)** - 无冲突文档同步
99
+ - **WebSocket** - 双向实时通信
100
+ - **JWT** - 无状态身份验证
101
+
102
+ ---
103
+
104
+ ## 🚀 快速开始
105
+
106
+ ### 环境要求
107
+
108
+ - Node.js >= 16.0.0
109
+ - MongoDB >= 5.0
110
+ - npm 或 yarn
111
+
112
+ ### 安装步骤
113
+
114
+ #### 方式一:通过 npm 安装(推荐)
115
+
116
+ ```bash
117
+ # 安装包
118
+ npm install collabdocchat
119
+
120
+ # 进入安装目录
121
+ cd node_modules/collabdocchat
122
+
123
+ # 启动应用(自动打开浏览器)
124
+ npm start
125
+ ```
126
+
127
+ #### 方式二:从源码安装
128
+
129
+ 1. **克隆项目**
130
+
131
+ ```bash
132
+ git clone https://github.com/shijinghao/collabdocchat.git
133
+ cd collabdocchat
134
+ ```
135
+
136
+ 2. **安装依赖**
137
+
138
+ ```bash
139
+ npm install
140
+ ```
141
+
142
+ 3. **配置环境变量**
143
+
144
+ 复制 `.env.example` 为 `.env` 并修改配置:
145
+
146
+ ```bash
147
+ cp .env.example .env
148
+ ```
149
+
150
+ 编辑 `.env` 文件:
151
+
152
+ ```env
153
+ PORT=3000
154
+ MONGODB_URI=mongodb://localhost:27017/collabdocchat
155
+ JWT_SECRET=your_super_secret_jwt_key_change_this
156
+ CLIENT_URL=http://localhost:5173
157
+ ```
158
+
159
+ 4. **启动 MongoDB**
160
+
161
+ ```bash
162
+ # Windows
163
+ mongod
164
+
165
+ # macOS/Linux
166
+ sudo systemctl start mongod
167
+ ```
168
+
169
+ 5. **启动项目**
170
+
171
+ ```bash
172
+ # 一键启动(推荐)- 自动启动服务器和客户端,并打开浏览器
173
+ npm start
174
+
175
+ # 开发模式(同时启动前后端,使用 nodemon 自动重启)
176
+ npm run dev
177
+
178
+ # 或分别启动
179
+ npm run server # 后端服务器
180
+ npm run client # 前端开发服务器
181
+ ```
182
+
183
+ 6. **访问应用**
184
+
185
+ 运行 `npm start` 后,浏览器会自动打开并访问 `http://localhost:5173`
186
+
187
+ 或手动访问:`http://localhost:5173`
188
+
189
+ ---
190
+
191
+ ## 📁 项目结构
192
+
193
+ ```
194
+ CollabDocChat/
195
+ ├── server/ # 后端代码
196
+ │ ├── models/ # 数据模型
197
+ │ │ ├── User.js
198
+ │ │ ├── Group.js
199
+ │ │ ├── Document.js
200
+ │ │ └── Task.js
201
+ │ ├── routes/ # API 路由
202
+ │ │ ├── auth.js
203
+ │ │ ├── groups.js
204
+ │ │ ├── documents.js
205
+ │ │ └── tasks.js
206
+ │ ├── middleware/ # 中间件
207
+ │ │ └── auth.js
208
+ │ ├── websocket/ # WebSocket 处理
209
+ │ │ └── index.js
210
+ │ └── index.js # 服务器入口
211
+ ├── src/ # 前端代码
212
+ │ ├── pages/ # 页面组件
213
+ │ │ ├── login.js
214
+ │ │ ├── admin-dashboard.js
215
+ │ │ └── user-dashboard.js
216
+ │ ├── services/ # 服务层
217
+ │ │ ├── api.js
218
+ │ │ ├── auth.js
219
+ │ │ └── websocket.js
220
+ │ ├── styles/ # 样式文件
221
+ │ │ └── main.css
222
+ │ └── main.js # 前端入口
223
+ ├── package.json
224
+ ├── vite.config.js
225
+ ├── .env.example
226
+ └── README.md
227
+ ```
228
+
229
+ ---
230
+
231
+ ## 🔌 API 文档
232
+
233
+ ### 认证接口
234
+
235
+ #### 注册
236
+ ```http
237
+ POST /api/auth/register
238
+ Content-Type: application/json
239
+
240
+ {
241
+ "username": "string",
242
+ "email": "string",
243
+ "password": "string",
244
+ "role": "admin" | "user"
245
+ }
246
+ ```
247
+
248
+ #### 登录
249
+ ```http
250
+ POST /api/auth/login
251
+ Content-Type: application/json
252
+
253
+ {
254
+ "email": "string",
255
+ "password": "string"
256
+ }
257
+ ```
258
+
259
+ ### 群组接口
260
+
261
+ #### 获取群组列表
262
+ ```http
263
+ GET /api/groups
264
+ Authorization: Bearer {token}
265
+ ```
266
+
267
+ #### 创建群组(管理员)
268
+ ```http
269
+ POST /api/groups
270
+ Authorization: Bearer {token}
271
+ Content-Type: application/json
272
+
273
+ {
274
+ "name": "string",
275
+ "description": "string",
276
+ "members": ["userId1", "userId2"]
277
+ }
278
+ ```
279
+
280
+ #### 随机点名(管理员)
281
+ ```http
282
+ POST /api/groups/:id/call
283
+ Authorization: Bearer {token}
284
+ Content-Type: application/json
285
+
286
+ {
287
+ "count": 1
288
+ }
289
+ ```
290
+
291
+ ### 文档接口
292
+
293
+ #### 获取群组文档
294
+ ```http
295
+ GET /api/documents/group/:groupId
296
+ Authorization: Bearer {token}
297
+ ```
298
+
299
+ #### 创建文档
300
+ ```http
301
+ POST /api/documents
302
+ Authorization: Bearer {token}
303
+ Content-Type: application/json
304
+
305
+ {
306
+ "title": "string",
307
+ "content": "string",
308
+ "groupId": "string",
309
+ "permission": "readonly" | "editable"
310
+ }
311
+ ```
312
+
313
+ #### 更新文档
314
+ ```http
315
+ PATCH /api/documents/:id
316
+ Authorization: Bearer {token}
317
+ Content-Type: application/json
318
+
319
+ {
320
+ "content": "string"
321
+ }
322
+ ```
323
+
324
+ ### 任务接口
325
+
326
+ #### 获取我的任务
327
+ ```http
328
+ GET /api/tasks/my
329
+ Authorization: Bearer {token}
330
+ ```
331
+
332
+ #### 创建任务(管理员)
333
+ ```http
334
+ POST /api/tasks
335
+ Authorization: Bearer {token}
336
+ Content-Type: application/json
337
+
338
+ {
339
+ "title": "string",
340
+ "description": "string",
341
+ "groupId": "string",
342
+ "assignedTo": ["userId1"],
343
+ "relatedDocument": "documentId",
344
+ "deadline": "2024-12-31"
345
+ }
346
+ ```
347
+
348
+ ---
349
+
350
+ ## 🔄 WebSocket 事件
351
+
352
+ ### 客户端发送
353
+
354
+ ```javascript
355
+ // 认证
356
+ { type: 'auth', token: 'jwt_token' }
357
+
358
+ // 加入群组
359
+ { type: 'join_group', groupId: 'group_id' }
360
+
361
+ // 发送聊天消息
362
+ { type: 'chat_message', groupId: 'group_id', username: 'user', content: 'message' }
363
+
364
+ // 同步文档
365
+ { type: 'document_sync', documentId: 'doc_id', content: 'text', cursorPosition: 0 }
366
+
367
+ // 响应点名
368
+ { type: 'call_response', groupId: 'group_id', username: 'user' }
369
+
370
+ // 输入状态
371
+ { type: 'typing', documentId: 'doc_id', username: 'user', isTyping: true }
372
+ ```
373
+
374
+ ### 服务器推送
375
+
376
+ ```javascript
377
+ // 认证成功
378
+ { type: 'auth_success', userId: 'user_id', role: 'admin' }
379
+
380
+ // 聊天消息
381
+ { type: 'chat_message', groupId: 'group_id', userId: 'user_id', username: 'user', content: 'message', timestamp: 'ISO8601' }
382
+
383
+ // 文档更新
384
+ { type: 'document_update', documentId: 'doc_id', content: 'text', userId: 'user_id', timestamp: 'ISO8601' }
385
+
386
+ // 用户离线
387
+ { type: 'user_offline', userId: 'user_id' }
388
+ ```
389
+
390
+ ---
391
+
392
+ ## 🎨 界面预览
393
+
394
+ ### 登录页面
395
+ - 现代化渐变背景
396
+ - 流畅的动画效果
397
+ - 登录/注册切换
398
+
399
+ ### 管理员仪表板
400
+ - 群组管理面板
401
+ - 任务发布界面
402
+ - 文档权限控制
403
+ - 随机点名功能
404
+
405
+ ### 用户仪表板
406
+ - 任务列表
407
+ - 实时文档编辑器
408
+ - 群组聊天
409
+ - 在线状态显示
410
+
411
+ ---
412
+
413
+ ## 🤝 贡献指南
414
+
415
+ 我们欢迎所有形式的贡献!
416
+
417
+ ### 如何贡献
418
+
419
+ 1. Fork 本项目
420
+ 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
421
+ 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
422
+ 4. 推送到分支 (`git push origin feature/AmazingFeature`)
423
+ 5. 开启 Pull Request
424
+
425
+ ### 代码规范
426
+
427
+ - 使用 ES6+ 语法
428
+ - 遵循 ESLint 规则
429
+ - 添加必要的注释
430
+ - 编写清晰的提交信息
431
+
432
+ ---
433
+
434
+ ## 📦 发布到 npm
435
+
436
+ ### 准备发布
437
+
438
+ 1. **更新版本号**
439
+
440
+ ```bash
441
+ npm version patch # 1.0.0 -> 1.0.1
442
+ npm version minor # 1.0.0 -> 1.1.0
443
+ npm version major # 1.0.0 -> 2.0.0
444
+ ```
445
+
446
+ 2. **登录 npm**
447
+
448
+ ```bash
449
+ npm login
450
+ ```
451
+
452
+ 3. **发布包**
453
+
454
+ ```bash
455
+ npm publish
456
+ ```
457
+
458
+ ### 使用 npm 包
459
+
460
+ ```bash
461
+ npm install collabdocchat
462
+ ```
463
+
464
+ ---
465
+
466
+ ## 📄 开源协议
467
+
468
+ 本项目采用 [MIT License](LICENSE) 开源协议。
469
+
470
+ ---
471
+
472
+ ## 🙏 致谢
473
+
474
+ 感谢以下开源项目:
475
+
476
+ - [Express](https://expressjs.com/) - Web 框架
477
+ - [MongoDB](https://www.mongodb.com/) - 数据库
478
+ - [Yjs](https://github.com/yjs/yjs) - CRDT 算法
479
+ - [Vite](https://vitejs.dev/) - 构建工具
480
+
481
+ ---
482
+
483
+ ## 📞 联系方式
484
+
485
+ - **项目主页**: [https://github.com/yourusername/collabdocchat](https://github.com/yourusername/collabdocchat)
486
+ - **问题反馈**: [Issues](https://github.com/yourusername/collabdocchat/issues)
487
+ - **邮箱**: your.email@example.com
488
+
489
+ ---
490
+
491
+ ## 🗺 路线图
492
+
493
+ ### v1.1.0 (计划中)
494
+ - [ ] 文件上传功能
495
+ - [ ] 富文本编辑器
496
+ - [ ] 消息通知系统
497
+ - [ ] 移动端适配
498
+
499
+ ### v1.2.0 (计划中)
500
+ - [ ] 视频会议集成
501
+ - [ ] 屏幕共享
502
+ - [ ] 白板功能
503
+ - [ ] 插件系统
504
+
505
+ ### v2.0.0 (未来)
506
+ - [ ] 微服务架构
507
+ - [ ] Docker 部署
508
+ - [ ] 多语言支持
509
+ - [ ] AI 助手集成
510
+
511
+ ---
512
+
513
+ <div align="center">
514
+
515
+ **⭐ 如果这个项目对你有帮助,请给我们一个 Star!⭐**
516
+
517
+ Made with ❤️ by CollabDocChat Team
518
+
519
+ </div>
520
+
521
+