Features - User Management (Phase 4.1): - Database: Add user_modules table for fine-grained module permissions - Database: Add 4 user permissions (view/create/edit/delete) to role_permissions - Backend: UserService (780 lines) - CRUD with tenant isolation - Backend: UserController + UserRoutes (648 lines) - 13 API endpoints - Backend: Batch import users from Excel - Frontend: UserListPage (412 lines) - list/filter/search/pagination - Frontend: UserFormPage (341 lines) - create/edit with module config - Frontend: UserDetailPage (393 lines) - details/tenant/module management - Frontend: 3 modal components (592 lines) - import/assign/configure - API: GET/POST/PUT/DELETE /api/admin/users/* endpoints Architecture Upgrade - Module Permission System: - Backend: Add getUserModules() method in auth.service - Backend: Login API returns modules array in user object - Frontend: AuthContext adds hasModule() method - Frontend: Navigation filters modules based on user.modules - Frontend: RouteGuard checks requiredModule instead of requiredVersion - Frontend: Remove deprecated version-based permission system - UX: Only show accessible modules in navigation (clean UI) - UX: Smart redirect after login (avoid 403 for regular users) Fixes: - Fix UTF-8 encoding corruption in ~100 docs files - Fix pageSize type conversion in userService (String to Number) - Fix authUser undefined error in TopNavigation - Fix login redirect logic with role-based access check - Update Git commit guidelines v1.2 with UTF-8 safety rules Database Changes: - CREATE TABLE user_modules (user_id, tenant_id, module_code, is_enabled) - ADD UNIQUE CONSTRAINT (user_id, tenant_id, module_code) - INSERT 4 permissions + role assignments - UPDATE PUBLIC tenant with 8 module subscriptions Technical: - Backend: 5 new files (~2400 lines) - Frontend: 10 new files (~2500 lines) - Docs: 1 development record + 2 status updates + 1 guideline update - Total: ~4900 lines of code Status: User management 100% complete, module permission system operational
5.4 KiB
5.4 KiB
智能期刊审稿系统 MVP 产品需求文档
| 项目属性 | 内容 |
|---|---|
| 项目名称 | 智能期刊审稿辅助系统 (SmartReview MVP) |
| 文档版本 | V1.0 (MVP) |
| 优先级 | P0 (核心功能闭环) |
| 目标用户 | 期刊初审编辑 |
1. 产品目标 (Product Goal)
打造一个**“开箱即用”**的智能审稿工具。编辑上传稿件,系统自动运行双重检查(规范性+方法学),输出可供参考的审稿报告。
核心指标:上传到出报告 < 2分钟;规范性问题检出率 > 80%。
2. 功能范围 (Scope)
✅ MVP 包含 (In Scope)
- 账户体系:简单的账号登录,支持期刊 Logo 定制。
- 文件处理:批量上传 Word/PDF,列表展示状态。
- 审查流程:用户手动选择智能体发起审查,后台异步运行。
- 规范性审查:覆盖字数、摘要结构、参考文献、图片DPI等硬指标。
- 方法学审查:PICO 提取、研究类型识别、基础统计逻辑校验。
- 报告与导出:双视图报告展示,支持 PDF 导出。
❌ MVP 不包含 (Out of Scope)
- 在线文档编辑器 (Web Office)。
- 复杂的角色权限管理系统。
- 邮件自动发送功能。
- 高级历史归档与检索系统。
- 前端可视化的 Prompt 配置后台。
3. 详细功能需求 (Requirements)
3.1 登录页 (Login)
- 功能:账号密码验证。
- UI:
- 左/上侧展示期刊 Logo 与名称(支持配置)。
- 输入框:账号、密码。
- 登录按钮:点击校验,失败提示“账号或密码错误”。
- 逻辑:Session 保持 24 小时,避免频繁登录。
3.2 审稿工作台 (Dashboard)
这是系统的主界面,采用**“宽表”**布局。
3.2.1 顶部操作区
- 品牌区:展示“XX杂志社智能审稿系统”。
- 筛选栏:
- 状态 (全部/待处理/已完成)。
- 时间 (今天/近7天)。
- 上传按钮:
- 点击触发文件选择器。
- 支持多选。
- 支持扩展名:.docx, .pdf。
- 限制:单文件 < 50MB。
3.2.2 稿件列表
列表包含以下列:
- 复选框:用于批量操作。
- 文件信息:文件名(点击进入详情)、大小、上传时间。
- 审稿维度:展示 Tags(规范性、方法学)。
- 状态:
- 待处理:刚上传,未运行。
- 运行中:展示动态 Loading 图标。
- 已完成:
- 若跑了规范性,显示分数(如:绿色 "90分")。
- 若跑了方法学,显示结论(如:黄色 "存疑")。
- 操作列:
- [开始审查]:针对待处理状态。
- [查看报告]:针对已完成状态。
3.2.3 任务发起弹窗 (The Launcher)
- 触发:点击列表中的“开始审查”或底部批量操作栏的“运行”。
- 内容:
- 标题:“发起智能审查”。
- 复选框组:
- [x] 稿约规范性智能体 (默认选中)。
- [ ] 方法学统计智能体。
- 逻辑:点击确定后,后端创建任务,列表状态变为“运行中”。
3.3 审稿详情页 (Report Detail)
3.3.1 头部信息
- 展示文件名、作者(若能提取)、版本标签(MVP可暂不显示)。
- 按钮:[下载原稿]、[导出报告PDF]。
3.3.2 视图 A:稿约规范性报告
- 总评卡片:展示总分 (0-100) 和 结论 (Pass/Fail)。
- 检查项列表:
- 文题字数:提取字数,对比标准(如 <20字)。
- 摘要结构:正则匹配“目的/方法/结果/结论”关键词。
- 参考文献:识别引用格式错误。
- 图片质量:显示低分辨率图片的页码和 DPI 值。
- 交互:每个报错项下方提供“建议修改意见”,支持点击复制。
3.3.3 视图 B:方法学评估报告
- PICO 卡片:结构化展示提取出的 P/I/C/O 内容。
- 逻辑推理区:
- 展示模型对“研究类型”的判断(如:回顾性队列研究)。
- 展示“统计方法”的合理性分析(如:发现多组比较未用 ANOVA)。
- 红绿灯:
- 🔴 错误:明确的逻辑硬伤。
- 🟡 存疑:模型不确定,需人工复核。
- 🟢 通过:逻辑自洽。
4. 技术与性能要求 (Non-functional)
- 响应速度:
- 列表加载 < 1秒。
- 文件上传速度取决于带宽,需有进度反馈。
- 并发处理:
- 支持至少 5 个任务并发运行(不需要排队太久)。
- 兼容性:
- 优先支持 Chrome / Edge 浏览器。
- 数据安全:
- 稿件文件存储需加密或隔离。
- 审稿报告仅授权账号可见。
5. 验收标准 (Acceptance Criteria)
- 流程通:用户能成功上传 5 个 PDF,勾选双模型运行,等待 3 分钟内,状态全部变为“已完成”。
- 报告准:
- 上传一篇故意删掉“摘要结论”的稿件,规范性智能体必须报错。
- 上传一篇故意混淆“t检验”和“卡方检验”的稿件,方法学智能体必须报“存疑”或“错误”。
- 无崩溃:连续上传 20 个文件,系统不卡死,不白屏。