docs: requirements status tracking, dev progress archive and quick-start guide
This commit is contained in:
@@ -1,43 +1,109 @@
|
||||
这是一个 基于IM的OA客户端工具,项目名称叫ChatOA,通过即时通讯的方式实现对话、文件互传,表单签批等,用户为办公室人员,与微信电脑端类似,功能包含 1即时通讯对话 2联系人 3日程 4表单 5笔记 6应用 7网盘
|
||||
功能不需要一次性完成,单1 2 3 优先 ,5和4先做Demo 6 7属于扩展。
|
||||
整体结构参考微信电脑端,分三列,第一列为功能图标导航按钮 第二列为功能区:例如联系人列表等,第三列为主要工作区。
|
||||
# ChatOA 项目要求与完成状态
|
||||
|
||||
技术路线:
|
||||
**客户端**:Electron + React/Vue + TypeScript
|
||||
**服务端**:Node.js + TypeScript(NestJS 或 Express)
|
||||
**数据库**:MongoDB + Redis
|
||||
**通信**:Socket.IO(WebSocket 封装)
|
||||
> 本文档为 ChatOA 客户端的需求基线。原需求逐条保留,每条后标注当前完成状态。
|
||||
> 更新日期:2026-08-23 | 当前版本:v0.1.0
|
||||
|
||||
前端:
|
||||
- 支持 Windows
|
||||
- 包含登录页、聊天列表页、聊天窗口页的路由
|
||||
- 联系人页
|
||||
- 日程页
|
||||
- 表单页(自定义表单,支持创建、管理、填写,表单存储为Json格式)
|
||||
- 集成 Socket.IO 客户端
|
||||
## 一、项目概述
|
||||
|
||||
服务端:
|
||||
用 Node.js + NestJS + TypeScript 写 IM 服务端,
|
||||
模块包括:
|
||||
- 用户认证(JWT)
|
||||
- WebSocket 网关(Socket.IO)
|
||||
- 消息存储(MongoDB)
|
||||
- 在线状态管理(Redis)
|
||||
- 离线消息推送
|
||||
这是一个基于 IM 的 OA 客户端工具,项目名称叫 ChatOA,通过即时通讯的方式实现对话、文件互传、表单签批等,用户为办公室人员,与微信电脑端类似。
|
||||
|
||||
如果还有问题,请及时提出。
|
||||
功能优先级:1 即时通讯对话、2 联系人、3 日程 优先完成;5 笔记、4 表单先做 Demo;6 应用、7 网盘属于扩展。
|
||||
|
||||
- [x] 整体结构参考微信电脑端,分三列:第一列为功能图标导航按钮,第二列为功能区(如联系人列表),第三列为主要工作区 —— **✅ 已完成**
|
||||
|
||||
## 二、技术路线
|
||||
|
||||
知识库的设计逻辑为:笔记,分左右结构,左边为多级目录,支持搜索,左侧区域的宽度等于聊天界面对话列表区域的宽度(1-7个模块,需要全局统一宽度),右侧为笔记编辑界面。
|
||||
- [x] **客户端**:Electron + React + TypeScript —— **✅ 已完成**(Electron + Vite + React 18 + TS + Ant Design 5 + Zustand)
|
||||
- [x] **服务端**:Node.js + TypeScript(NestJS)—— **✅ 已完成**(NestJS 11 + Socket.IO + JWT)
|
||||
- [ ] **数据库**:MongoDB + Redis —— **⏳ 预留**(当前 JSON 文件持久化,`server/src/config.ts` 已留 Mongo/Redis 配置位)
|
||||
- [x] **通信**:Socket.IO(WebSocket 封装)—— **✅ 已完成**
|
||||
|
||||
应用页面:分左右结构,左边为两个Tab,一个为我的应用,另一个为应用市场,支持搜索,右侧为应用的展示、操作区,模拟几个应用。
|
||||
网盘页面:先做Demo,分左右结构,左边为 搜索结果,本机文件,我的文件,团队文件,系统文件,分享文件,回收站 几个导航菜单,底部显示云盘的容量和使用情况。右侧为文件夹显示区域。
|
||||
日程页面:分左右结果,左侧区域上面一个小型月历视图,用点标记日程、生日、纪念日等,左侧下方显示 分多个tab页:今日(默认)、明日、一周内等信息。右侧为大型月历视图。
|
||||
## 三、前端要求
|
||||
|
||||
知识库(笔记)页面调整项:1图标和文字需要保持在同一行。2左边文件夹目录后面显示笔记条数。3右侧编辑区需要支持多页签。4笔记编辑组件采用html富文本编辑器。
|
||||
- [x] 支持 Windows —— **✅ 已完成**(Electron 便携版)
|
||||
- [x] 包含登录页、聊天列表页、聊天窗口页的路由 —— **✅ 已完成**
|
||||
- [x] 联系人页 —— **✅ 已完成**
|
||||
- [x] 日程页 —— **✅ 已完成**
|
||||
- [x] 表单页(自定义表单,支持创建、管理、填写,表单存储为 JSON 格式)—— **✅ 已完成**
|
||||
- [x] 集成 Socket.IO 客户端 —— **✅ 已完成**
|
||||
|
||||
联系人页面:新增分组:同事(组织内好友)|AI助手(AI助手工具:单击后进入AI对话聊天界面,模型支持多种模型可选)|朋友(指非组织内朋友,通过添加好友的) 。
|
||||
## 四、服务端要求
|
||||
|
||||
系统框架:
|
||||
首页左下角个人头像图标,单击后 进行显示个人信息并修改签名、设置状态(内置 上班、外出、出差、请假、学习、休假等状态)
|
||||
- [x] 用户认证(JWT)—— **✅ 已完成**(`server/src/auth`,JWT 7 天有效)
|
||||
- [x] WebSocket 网关(Socket.IO)—— **✅ 已完成**(`server/src/chat`)
|
||||
- [ ] 消息存储(MongoDB)—— **⏳ 预留**(当前 JSON 存储)
|
||||
- [ ] 在线状态管理(Redis)—— **⏳ 预留**(当前 `presence` 模块 JSON 模拟)
|
||||
- [ ] 离线消息推送 —— **⏳ 预留**
|
||||
|
||||
## 五、各模块细化需求与状态
|
||||
|
||||
### 5.1 知识库(笔记)
|
||||
- [x] 分左右结构,左边为多级目录,支持搜索,左侧区域宽度与聊天对话列表区域一致(1-7 个模块全局统一宽度)—— **✅ 已完成**
|
||||
- [x] 右侧为笔记编辑界面 —— **✅ 已完成**
|
||||
- [x] 图标和文字保持在同一行 —— **✅ 已完成**
|
||||
- [x] 左边文件夹目录后面显示笔记条数 —— **✅ 已完成**
|
||||
- [x] 右侧编辑区支持多页签 —— **✅ 已完成**(KeepAlive 多页签)
|
||||
- [x] 笔记编辑组件采用 HTML 富文本编辑器 —— **✅ 已完成**
|
||||
|
||||
### 5.2 应用页面
|
||||
- [x] 分左右结构,左边为两个 Tab:「我的应用」与「应用市场」,支持搜索 —— **✅ 已完成**
|
||||
- [x] 右侧为应用的展示、操作区,模拟几个应用 —— **✅ 已完成**
|
||||
- [x] 应用市场上架了「极简日历」应用(参考 calendarlite.bbitcn.net 产品)—— **✅ 已完成**(2026-08-21 新增)
|
||||
- [x] 应用分组折叠 —— **✅ 已完成**(2026-08-22 新增)
|
||||
|
||||
### 5.3 网盘页面
|
||||
- [x] 先做 Demo,分左右结构:左边为 搜索结果、本机文件、我的文件、团队文件、系统文件、分享文件、回收站 导航菜单,底部显示云盘容量与使用情况 —— **✅ 已完成**
|
||||
- [x] 右侧为文件夹显示区域 —— **✅ 已完成**
|
||||
|
||||
### 5.4 日程页面
|
||||
- [x] 分左右结构,左侧区域上面一个小型月历视图,用点标记日程、生日、纪念日等 —— **✅ 已完成**
|
||||
- [x] 左侧下方分多个 Tab:今日(默认)、明日、一周内等 —— **✅ 已完成**
|
||||
- [x] 右侧为大型月历视图 —— **✅ 已完成**
|
||||
|
||||
### 5.5 联系人页面
|
||||
- [x] 新增分组:同事(组织内好友)| AI 助手(单击后进入 AI 对话界面,模型支持多种可选)| 朋友(非组织内朋友,通过添加好友)—— **✅ 已完成**
|
||||
|
||||
### 5.6 系统框架
|
||||
- [x] 首页左下角个人头像图标,单击后显示个人信息并修改签名、设置状态(内置 上班、外出、出差、请假、学习、休假等状态)—— **✅ 已完成**(`client/src/components/ProfileModal.tsx`)
|
||||
|
||||
## 六、迭代变更记录
|
||||
|
||||
| 日期 | 变更 |
|
||||
|------|------|
|
||||
| 2026-08-21 | 应用市场上架「极简日历」应用(market-calendar-lite),含功能预览卡片、EXTERNAL_PROJECTS 与市场应用 id 对齐 |
|
||||
| 2026-08-22 | 应用分组折叠功能;顶部标题栏新增版本编号 `ChatOA v0.1.0`(版本号唯一来源 `client/package.json`,经 Vite define 注入 `__APP_VERSION__`) |
|
||||
| 2026-08-23 | 首次提交并推送远程仓库;本文档更新为需求+完成状态双轨制;新增 `开发进度存档.md` |
|
||||
|
||||
## 七、后续待办(Roadmap)
|
||||
|
||||
- [ ] 接入真实大模型 API(OpenAI / Claude / 豆包等)
|
||||
- [ ] 表单流程接入后端实例审批链路
|
||||
- [ ] 网盘接入 OSS / 本地文件同步
|
||||
- [ ] 消息已读回执、撤回、引用
|
||||
- [ ] 接入 MongoDB / Redis 生产级存储
|
||||
- [ ] 移动端响应式适配
|
||||
|
||||
## 八、快速启动(新环境省积分指南)
|
||||
|
||||
> 更换文件夹路径 / 重新安装 CodeBuddy 后,按此快速恢复开发环境。完整细节见 `开发进度存档.md`。
|
||||
|
||||
```powershell
|
||||
# 1. 安装依赖(首次)
|
||||
cd server; npm install
|
||||
cd ..\client; npm install
|
||||
|
||||
# 2. 启动服务端(端口 3000)
|
||||
cd server; npm run start:dev
|
||||
|
||||
# 3. 启动客户端(Vite 5173,Electron 桌面窗口)
|
||||
cd client; npm run dev
|
||||
|
||||
# 4. 浏览器调试版(不带 Electron,最省资源)
|
||||
cd client; npm run dev:web
|
||||
|
||||
# 5. 打包便携版 exe
|
||||
cd client; npm run build:portable
|
||||
```
|
||||
|
||||
- 演示账号:`demo / 123456`(另含 alice / bob / carol,密码同 123456)
|
||||
- 客户端启动方式详见 `开发进度存档.md` 第二节。
|
||||
|
||||
Reference in New Issue
Block a user