Files
NextEdu/docs/architecture/007_gap_audit_report.md

425 lines
26 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Next_Edu 差距审计报告v3 — 基于完整架构图 + 架构审查)
> 对照《企业级 K12 教务管理系统标准功能模块清单》(006),基于完整架构影响地图(004/005)与源码全量扫描
> 审计日期2026-06-17v3 更新)
> v3 变更P0 缺口大幅补齐、8 项 P2 功能新实现、新增架构审查发现(基于 audit/00_summary.md
---
## 一、总体完成度
| 维度 | P0 子功能总数 | 已完成 | 部分完成 | 未实现 | 完成率 |
|------|-------------|--------|---------|--------|--------|
| 核心业务 | 31 | 28 | 3 | 0 | **90%** |
| 平台基础 | 8 | 6 | 2 | 0 | **75%** |
| 非功能性 | 8 | 6 | 1 | 1 | **75%** |
| 合规安全 | 8 | 6 | 1 | 1 | **75%** |
| **合计** | **55** | **46** | **7** | **2** | **84%** |
> P1 完成率约 **55%**P2 完成率约 **33%**(总体)/ **57%**Phase 3 路线图 8/14 项)。
### v3 修复项(相对 v2
| 修复项 | v2 状态 | v3 状态 | 说明 |
|--------|---------|---------|------|
| 通知公告系统 | ❌ 完全缺失 | ✅ 已实现 | announcements 模块 + 三级发布 |
| 操作/登录日志 | ❌ 完全缺失 | ✅ 已实现 | audit 模块 + auditLogs/loginLogs/dataChangeLogs 表 |
| 成绩录入/统计报表 | ❌ 缺失 | ✅ 已实现 | grades 模块 + data-access-analytics + export |
| 文件上传 | ❌ 无 | ✅ 已实现 | files 模块 + /api/upload 路由 |
| 课程计划管理 | ❌ 无 | ✅ 已实现 | course-plans 模块 |
| 排课规则 + 自动排课 | ❌ 无 | ✅ 已实现 | scheduling 模块 + auto-scheduler.ts |
| 站内消息 | ❌ 无 | ✅ 已实现 | messaging 模块 |
| 站内通知系统 | ❌ 无 | ✅ 已实现 | notifications 模块 + 多渠道分发 |
| 用户批量导入 | ❌ 无 | ✅ 已实现 | users/import-export.ts |
| 学生/教师考勤 | ❌ 无 | ✅ 已实现 | attendance 模块 + 统计 |
| 选课管理 | ❌ 无 | ✅ 已实现 | elective 模块P2 |
| 考试监考 | ❌ 无 | ✅ 已实现 | proctoring 模块P2 |
| 学情诊断报告 | ❌ 无 | ✅ 已实现 | diagnostic 模块P2 |
| 短信/微信推送 | ❌ 无 | ✅ 已实现 | notifications/channelsP2 |
| 屏幕阅读器兼容 | ❌ 未测试 | ✅ 已实现 | shared/lib/a11y.ts + components/a11yP2 |
| 视觉回归测试 | ❌ 无 | ✅ 已实现 | tests/visual/ + PlaywrightP2 |
| 漏洞扫描 | ❌ 无 | ✅ 已实现 | scripts/security-scan.sh/ps1 |
| 灾备方案 | ❌ 无 | ✅ 已实现 | scripts/backup-offsite-sync.sh 等 |
| 幽灵导航路由 | ⚠️ 13 个 | ✅ 已修复 | navigation.ts 已清理无效路由 |
### 关键风险项v3 更新后)
> v2 的 5 个关键风险项中4 个已修复1 个仍存在。新增 5 个架构审查发现的风险。
**已修复的风险v2 → v3**
1. ~~通知公告系统完全缺失~~ → ✅ 已实现 announcements 模块
2. ~~操作/登录日志完全缺失~~ → ✅ 已实现 audit 模块
3. ~~成绩分析严重不足~~ → ✅ 已实现 grades 模块(录入/统计/导出)
4. ~~文件上传/权限控制缺失~~ → ✅ 已实现 files 模块 + /api/upload
5. ~~13 个幽灵导航路由~~ → ✅ 已修复
**当前关键风险项v3**
1. ~~**`classes/data-access.ts` 严重超标**~~ — ✅ 已修复2026-06-17 拆分为 5 个文件,均 ≤800 行)
2. **`shared/lib``auth` 循环依赖** — audit-logger/change-logger/auth-guard → @/auth → shared/lib/* 形成循环,影响构建稳定性
3. **dashboard 跨模块直接查询 11 张表** — getAdminDashboardData 直查 sessions/users/classes/textbooks 等 11 张表,严重违反模块封装
4. **messaging 绕过 notifications 直接写通知** — messaging/actions.ts 直接调用 createNotification导致用户通知偏好失效
5. **classSchedule 表三处写入口** — classes/scheduling 模块各自直接写入,数据完整性高风险
6. **proctoring 死代码** — exam-mode-config.tsx 组件已创建但未集成到考试表单DB schema 有 examMode 字段但表单不收集
7. **隐私合规 P0 缺口** — 隐私政策与用户协议、未成年人信息保护仍未实现K12 强制要求
---
## 二、功能差距明细表
> 图例:✅ 已完成 / ⚠️ 部分完成 / ❌ 未实现 / 🆕 v3 新实现
### 核心业务模块
| 标准模块 | 标准子功能 | 状态 | 项目现状说明 | 补齐建议 |
|----------|------------|------|-------------|----------|
| **用户与权限** | 用户注册/登录 | ✅ | NextAuth v5邮箱+OAuth 登录JWT 策略 | — |
| | 多角色体系 | ✅ | 6 角色usersToRoles 多对多 | — |
| | RBAC 权限模型 | ✅ | 54 个权限点ROLE_PERMISSIONS 映射 | — |
| | 数据范围控制 | ✅ | DataScope 6 种类型 | — |
| | 角色切换 | ❌ | JWT 存 roles[],但无主动切换 UI | 新增角色切换下拉组件 |
| | 用户档案管理 | ✅ | users 模块 updateUserProfile + getUserProfile | — |
| | 新手引导 | ✅ | OnboardingGate 组件 | — |
| | 组织架构管理 | ⚠️ | 部门/年级 CRUD 已有,但无教研组管理 | 新增 teachingGroups 表 |
| | 用户批量导入 | 🆕 ✅ | users/import-export.ts 实现 Excel 导入 | — |
| | 密码安全策略 | ⚠️ | NextAuth 默认 bcrypt有锁定策略但无强度校验 | 前端强度校验 |
| **学校管理** | 学校信息配置 | ✅ | schools 表 + CRUD | — |
| | 学年学期管理 | ✅ | academicYears 表 + CRUD | — |
| | 年级管理 | ✅ | grades 表 + CRUD | — |
| | 班级管理 | ✅ | classes 表 + 17 个 actions含邀请码 | — |
| | 学科管理 | ⚠️ | subjects 表存在,但仅有 name/order/code | 扩展学段归属字段 |
| | 部门管理 | ✅ | departments 表 + CRUD | — |
| | 校区管理 | ❌ | 无校区概念 | 新增 campuses 表 |
| | 学校参数配置 | ❌ | 无参数配置功能 | 新增 schoolSettings KV 表 |
| **教务排课** | 课程计划管理 | 🆕 ✅ | course-plans 模块已实现 | — |
| | 排课规则配置 | 🆕 ✅ | scheduling 模块 + SchedulingRule 类型 | — |
| | 自动排课引擎 | 🆕 ✅ | scheduling/auto-scheduler.ts 纯函数算法 | — |
| | 课表查看 | ✅ | 教师课表 + 学生课表 + 班级课表 | — |
| | 课表调整/代课 | ❌ | 仅 CRUD 课表项 | 新增 scheduleChanges 表 + 审批流 |
| | 教室资源管理 | ⚠️ | classrooms 表存在,但无管理 UI | 增加 CRUD 页面 |
| | 选课管理 | 🆕 ✅ | elective 模块CRUD + 选课 + 抽签) | — |
| **教材资源** | 教材库管理 | ✅ | textbooks 表 + createTextbookAction | — |
| | 章节结构管理 | ✅ | chapters 树形结构 + reorderChaptersAction | — |
| | 知识点图谱 | ⚠️ | knowledgePoints 有 CRUD + 章节关联,但无前置/后继关系 | 增加 prerequisiteEdges 表 |
| | 教材内容阅读 | ✅ | TextbookContentPanelMarkdown + rehype-sanitize | — |
| | 教材版本管理 | ❌ | 无版本概念 | 增加 version 字段 |
| | 资源附件管理 | 🆕 ✅ | files 模块 + fileAttachments 表 + /api/upload | — |
| | 教材审核流程 | ❌ | 无审核机制 | 新增 reviewWorkflow 表 |
| **题库与试卷** | 题目创建/编辑 | ✅ | 5 种题型支持子题目CreateQuestionDialog | — |
| | 题目分类标签 | ✅ | 知识点关联 + difficulty + type 多维标签 | — |
| | 题目批量导入 | ❌ | 无 | Excel 模板 + 批量解析 |
| | 题目版本管理 | ❌ | 无 | 增加 questionVersions 表 |
| | 试卷手动组卷 | ✅ | ExamAssembly 组件 + StructureEditor | — |
| | 试卷智能组卷 | ❌ | 无自动抽题 | 按知识点/难度分布随机抽题 |
| | AI 辅助出题 | ✅ | ai-pipeline.ts3 个 AI 生成函数 | — |
| | 试卷模板管理 | ❌ | 无 | 新增 examTemplates 表 |
| | 试卷预览/打印 | ⚠️ | ExamPreviewDialog 可预览,但无打印适配 | 增加 @media print |
| **作业与考试** | 作业布置 | ✅ | createHomeworkAssignmentAction | — |
| | 作业提交 | ✅ | startHomeworkSubmissionAction + submitHomeworkAction | — |
| | 作业批改评分 | ✅ | gradeHomeworkSubmissionAction + HomeworkGradingView | — |
| | 迟交/补交策略 | ⚠️ | allowLate/lateDueAt 字段存在,前端未暴露配置 | 作业创建表单增加开关 |
| | 多次提交/重做 | ⚠️ | maxAttempts 字段存在,有次数检查 | 前端暴露配置 + 重做入口 |
| | 作业统计分析 | ✅ | getHomeworkAssignmentAnalytics | — |
| | 作业归档 | ❌ | 无归档机制 | 增加 archivedAt 字段 |
| | 在线考试模式 | ⚠️ | examMode 字段存在,但 exam-mode-config.tsx 未集成 | 集成组件到考试表单 |
| | 考试监考 | 🆕 ✅ | proctoring 模块(事件上报 + 监考面板 + 防作弊) | — |
| **成绩分析** | 成绩录入 | 🆕 ✅ | grades 模块 + gradeRecords 表 + 批量录入 | — |
| | 成绩查询 | ⚠️ | grades/data-access 有查询,但无独立查询页 | 新增成绩查询页面 |
| | 成绩统计报表 | 🆕 ✅ | grades/data-access-analytics.ts 班级统计 + 排名 | — |
| | 成绩趋势分析 | ⚠️ | getTeacherGradeTrends 提供教师维度趋势 | 扩展为多维度 |
| | 成绩对比分析 | ❌ | 无班级间/学科间对比 | 新增对比查询 + 雷达图 |
| | 学情诊断报告 | 🆕 ✅ | diagnostic 模块(个人/班级诊断报告) | — |
| | 成绩导出 | 🆕 ✅ | grades/export.ts Excel 导出 | — |
| | 等第转换 | ❌ | 无 | 新增 gradeScale 配置 |
| **家校沟通** | 通知公告 | 🆕 ✅ | announcements 模块 + 三级发布 | — |
| | 站内消息 | 🆕 ✅ | messaging 模块 + 通知偏好 | — |
| | 家长端仪表盘 | ⚠️ | parent 模块有 data-access但组件不完整 | 接入子女数据查询 |
| | 家长会/约谈预约 | ❌ | 无 | 新增 appointments 表 |
| | 请假审批 | ❌ | 无 | 新增 leaveRequests 表 |
| | 校园动态/班级圈 | ❌ | 无 | 新增 posts 表 |
| **AI 赋能** | AI 对话助手 | ✅ | /api/ai/chat + createAiChatCompletion | — |
| | AI 辅助出题 | ✅ | exams/ai-pipeline.ts 完整实现 | — |
| | AI 批改辅助 | ❌ | 无 | 接入 AI 评分 prompt + 教师终审 |
| | AI 学情分析 | ❌ | 无 | 基于作业数据生成学习路径 |
| | AI 备课助手 | ❌ | 无 | 根据教材章节生成教案 |
| | AI 多模型配置 | ✅ | aiProviders 表 + upsertAiProviderAction | — |
| | AI API Key 加密 | ✅ | AES 加密 | — |
| **考勤管理** | 学生考勤 | 🆕 ✅ | attendance 模块 + 考勤登记 | — |
| | 教师考勤 | 🆕 ✅ | attendance 模块 | — |
| | 考勤统计 | 🆕 ✅ | attendance/data-access-stats.ts 月度汇总 | — |
| | 考勤规则配置 | ⚠️ | 有基础规则,但无完整配置 UI | 增加规则配置页面 |
### 平台基础能力
| 标准模块 | 标准子功能 | 状态 | 项目现状说明 | 补齐建议 |
|----------|------------|------|-------------|----------|
| **消息通知** | 站内通知 | 🆕 ✅ | notifications 模块 + dispatcher 多渠道分发 | — |
| | 邮件通知 | 🆕 ✅ | notifications/channels/email-channel.ts | — |
| | 短信通知 | 🆕 ✅ | notifications/channels/sms-channel.ts | — |
| | 微信/钉钉推送 | 🆕 ✅ | notifications/channels/wechat-channel.ts | — |
| | 通知偏好管理 | 🆕 ✅ | messaging/notification-preferences.ts | — |
| **日志审计** | 操作日志 | 🆕 ✅ | audit 模块 + auditLogs 表 + logAudit | — |
| | 登录日志 | 🆕 ✅ | audit 模块 + loginLogs 表 + NextAuth event | — |
| | 数据变更日志 | 🆕 ✅ | audit 模块 + dataChangeLogs 表 + change-logger | — |
| | 日志查询/导出 | ⚠️ | audit/data-access 有分页查询,但无导出 | 增加导出功能 |
| **文件管理** | 文件上传 | 🆕 ✅ | files 模块 + /api/upload + fileAttachments 表 | — |
| | 文件预览 | ❌ | 无 | 集成文件预览服务 |
| | 文件存储策略 | ⚠️ | 有本地存储,无 OSS/S3 抽象 | 抽象 StorageProvider 接口 |
| | 文件权限控制 | ⚠️ | 有基础鉴权,但不完整 | 完善文件访问鉴权 |
| **全局搜索** | 全文检索 | ⚠️ | global-search.tsx 组件 + /api/search 路由 | 集成 Meilisearch/Typesense |
| | 搜索建议 | ⚠️ | 有基础联想 | 搜索 API + 前端联想 |
| | 搜索过滤 | ❌ | 无 | 搜索结果筛选器 |
| **导入导出** | Excel 导入 | 🆕 ✅ | users/import-export.ts 实现 | — |
| | Excel/PDF 导出 | 🆕 ✅ | grades/export.ts + users/import-export.ts | — |
| | 导入校验与错误报告 | ⚠️ | 有基础校验,无错误报告下载 | 行级校验 + 错误报告 |
| **数据看板** | 管理员仪表盘 | ✅ | getAdminDashboardData + AdminDashboardView | — |
| | 教师仪表盘 | ✅ | TeacherDashboardView + 9 个子组件 | — |
| | 学生仪表盘 | ✅ | StudentDashboard + 5 个子组件 | — |
| | 家长仪表盘 | ⚠️ | parent 模块有 data-access组件不完整 | 接入子女数据 |
| | 自定义看板 | ❌ | 无 | 拖拽布局 + localStorage |
### 非功能性模块
| 标准模块 | 标准子功能 | 状态 | 项目现状说明 | 补齐建议 |
|----------|------------|------|-------------|----------|
| **国际化** | 多语言框架 | ❌ | 无 i18n 集成 | 集成 next-intl |
| | 语言切换 | ❌ | 无 | 语言选择器 + URL 前缀 |
| | 日期/数字本地化 | ⚠️ | formatDate 支持 locale 参数(默认 zh-CN) | 绑定用户语言偏好 |
| **多租户/多校区** | 租户隔离 | ❌ | 无 | 行级 tenantId 或 schema 隔离 |
| | 校区资源映射 | ❌ | 无 | 跨校区共享规则 |
| | 统一管理后台 | ❌ | 无 | 集团管理视图 |
| **深色主题** | 主题切换 | ✅ | ThemeProvider(next-themes) + ThemePreferencesCard | — |
| | 主题色定制 | ❌ | 无 | CSS 变量动态注入 |
| **无障碍访问** | 键盘导航 | ⚠️ | 部分组件支持,但非系统性 | 全面键盘测试 |
| | ARIA 标注 | ⚠️ | icon 按钮 aria-label 已加,非全覆盖 | 系统性 ARIA 审计 |
| | 屏幕阅读器兼容 | 🆕 ✅ | shared/lib/a11y.ts + components/a11y/ 4 组件 | — |
| | 跳转链接 | ✅ | layout.tsx 有 skip-link | — |
| **性能优化** | 页面懒加载 | ✅ | Next.js App Router 自动代码分割 | — |
| | 图片优化 | ✅ | next/image 使用 | — |
| | 缓存策略 | ⚠️ | 部分页面 SSR无系统性 ISR/SSG | 关键页面配置 revalidate |
| | 性能监控 | ❌ | 无 Web Vitals 采集 | 集成 next/web-vitals |
| **自动化测试** | 单元测试 | ✅ | Vitest 5 文件 19 用例 | 扩展覆盖率 |
| | 集成测试 | ✅ | Vitest 7 文件 38 用例 | 扩展覆盖率 |
| | E2E 测试 | ⚠️ | Playwright 3 个 spec需数据库环境 | 完善 CI 环境配置 |
| | 视觉回归测试 | 🆕 ✅ | tests/visual/ 4 个 spec + 多视口/主题 | — |
| **CI/CD** | 持续集成 | ✅ | .gitea/workflows/ci.yml | — |
| | 持续部署 | ✅ | Dockerfile + CI 自动构建部署 | — |
| | 预览环境 | ❌ | 无 | PR 预览部署 |
| **数据备份** | 数据库定时备份 | 🆕 ✅ | scripts/backup-db.sh | — |
| | 备份恢复演练 | 🆕 ✅ | scripts/backup-verify.sh + test-backup.sh | — |
| | 灾备方案 | 🆕 ✅ | scripts/backup-offsite-sync.sh 异地同步 | — |
### 合规与安全
| 标准模块 | 标准子功能 | 状态 | 项目现状说明 | 补齐建议 |
|----------|------------|------|-------------|----------|
| **隐私合规** | 隐私政策与用户协议 | ❌ | 无隐私政策页面 | 新增 consent 页 |
| | 未成年人信息保护 | ❌ | 无年龄判断、无监护人同意流程 | 注册时年龄校验 |
| | 数据保留策略 | ❌ | 无 | 新增 dataRetentionPolicies |
| | 用户数据导出/删除 | ❌ | 无 | GDPR 式数据操作 API |
| **数据加密** | 传输加密 | ✅ | Next.js 默认 HTTPS | 部署时配 HSTS |
| | 存储加密 | ✅ | AI API Key AES 加密,密码 bcrypt | — |
| | 密码哈希 | ✅ | NextAuth 默认 bcrypt | — |
| **操作安全** | CSRF 防护 | ✅ | NextAuth SameSite Cookie + Server Action | — |
| | XSS 防护 | ✅ | React 自动转义 + rehype-sanitize | — |
| | SQL 注入防护 | ✅ | Drizzle ORM 参数化查询 | — |
| | 速率限制 | ❌ | 无 | 集成 upstash/ratelimit |
| | 会话管理 | ✅ | JWT 过期策略 + NextAuth | — |
| | **Server Action 权限校验** | ✅ | **v2 修复:全部 54+ Server Action 均使用 requirePermission/requireAuth** | — |
| **敏感信息脱敏** | 日志脱敏 | ❌ | 无日志框架内置脱敏 | 日志框架内置脱敏 |
| | 前端脱敏 | ❌ | 无 | 手机号/邮箱掩码组件 |
| | 导出脱敏 | ❌ | 无导出脱敏 | 导出时可选脱敏 |
| **安全审计** | 漏洞扫描 | 🆕 ✅ | scripts/security-scan.sh + security-scan.ps1 | — |
| | 依赖审计 | ⚠️ | npm audit 可用但未集成 CI | CI 增加 npm audit |
| | 渗透测试 | ❌ | 无 | 上线前第三方测试 |
---
## 三、P2 实现进度表Phase 3 路线图)
> v3 新增章节:追踪 Phase 3 P2 迭代优化功能的实现进度
| P2 功能 | 状态 | 实现日期 | 实现模块/文件 |
|---------|------|---------|-------------|
| 选课管理 | ✅ | 2026-06-17 | src/modules/elective/ |
| 考试监考 | ✅ | 2026-06-17 | src/modules/proctoring/ |
| 学情诊断 | ✅ | 2026-06-17 | src/modules/diagnostic/ |
| 屏幕阅读器 | ✅ | 2026-06-17 | src/shared/lib/a11y.ts + components/a11y/ |
| 视觉回归 | ✅ | 2026-06-17 | tests/visual/ + visual.config.ts |
| 通知渠道 | ✅ | 2026-06-17 | src/modules/notifications/channels/ |
| 漏洞扫描 | ✅ | 2026-06-17 | scripts/security-scan.sh/ps1 |
| 灾备方案 | ✅ | 2026-06-17 | scripts/backup-offsite-sync.sh 等 |
| AI 批改辅助 | ❌ | - | — |
| AI 学情分析 | ❌ | - | — |
| AI 备课助手 | ❌ | - | — |
| 国际化 | ❌ | - | — |
| 多租户 | ❌ | - | — |
| 主题色定制 | ❌ | - | — |
**P2 路线图完成率8/14 = 57%**
---
## 四、架构技术债(基于架构审查 audit/00_summary.md
> v3 新增章节:基于 2026-06-17 架构审查发现的 P0/P1 问题
### 4.1 P0 严重问题(必须修复)
| 序号 | 问题 | 文件/位置 | 严重程度 | 说明 |
|------|------|----------|---------|------|
| 1 | ~~文件超 1000 行硬上限~~ | ~~`classes/data-access.ts` (2104 行)~~ ✅ | ~~🔴 严重~~ | ~~已修复:拆分为 5 个文件data-access 548行 + stats 531行 + schedule 194行 + students 244行 + admin 406行~~ |
| 2 | ~~文件超 1000 行硬上限~~ | ~~`homework/data-access.ts` (1038 行)~~ ✅ | ~~🔴 严重~~ | ~~已修复:拆分为 data-access.ts(598行) + stats-service.ts(425行)~~ |
| 3 | 文件超 1000 行硬上限 | `shared/db/schema.ts` (1111 行) | 🟡 需改进 | 54 张表混合,可接受但需按业务域分节 |
| 4 | 循环依赖 | `shared/lib``@/auth` | 🔴 严重 | audit-logger/change-logger/auth-guard → @/auth → shared/lib/* 形成循环 |
| 5 | dashboard 跨模块直查 11 张表 | `dashboard/data-access.ts` | 🔴 严重 | getAdminDashboardData 直查 sessions/users/classes 等 11 张表,违反模块封装 |
| 6 | messaging 绕过 notifications | `messaging/actions.ts` 第 66-72 行 | 🔴 严重 | 直接调用 createNotification导致通知偏好失效 |
| 7 | classSchedule 三处写入口 | classes/scheduling 模块 | 🔴 严重 | 数据完整性高风险,无统一入口 |
### 4.2 P1 较严重问题
| 序号 | 问题 | 说明 |
|------|------|------|
| 8 | 跨模块直接 DB 查询普遍 | classes(8+)/classEnrollments(6+)/users(6+)/subjects(6+)/exams(5+) 被跨模块直接访问 |
| ~~9~~ | ~~actions 层混入数据访问~~ ✅ 已修复 | ~~exams/homework/questions/announcements 的 actions.ts 直接 db.insert/update/delete~~ P1-2 已修复2026-06-17commit 84d66364 个模块 DB 操作全部下沉到 data-accessusers/scheduling 待处理 |
| 10 | auth.ts 混合 5 类职责 | NextAuth 配置 + 密码安全 DB + 角色规范化 + IP 解析 + 回调函数 |
| 11 | users/import-export.ts 四重职责 | 导入解析 + 导出 + 用户创建 + 班级注册(跨模块写) |
| 12 | proctoring 死代码 | exam-mode-config.tsx 未集成到考试表单 |
| 13 | messaging 与 notifications 边界模糊 | 双向依赖,类型系统不一致 |
| 14 | proctoring 事件双通道重复 | Server Action 与 REST API 同一逻辑两份代码 |
| 15 | proxy.ts 硬编码权限字符串 | 未复用 Permissions 常量,违反项目规则 |
### 4.3 架构文档问题
当前 004 架构影响地图存在的问题:
1. 按模块罗列函数签名,缺乏全局视角
2. 缺少模块依赖关系图
3. 缺少数据流向图
4. 缺少调用链路
5. 缺少分层架构说明
6. 未标注循环依赖
### 4.4 解耦优先级
**立即执行P0**
1. ~~拆分 `classes/data-access.ts`2104 行 → 按职责拆 3-4 个文件)~~ ✅ 已完成(拆为 5 个文件,均 ≤800 行)
2. ~~拆分 `homework/data-access.ts`1038 行 → 分离排名逻辑)~~ ✅ 已完成
3. 修复 shared/lib ↔ auth 循环依赖
4. dashboard 改为通过各模块 data-access 获取数据
5. messaging 写通知改为通过 notifications dispatcher
**短期执行P1**
6. 统一 classSchedule 写入口到 scheduling 模块
7. ~~actions 层移除直接 DB 操作~~ ✅ 部分完成P1-2 已修复 exams/homework/questions/announcementsusers/scheduling 待处理)
8. 拆分 auth.ts
9. 集成 proctoring/exam-mode-config 到考试表单
10. 拆分 users/import-export.ts
**中期执行P2**
11. ~~拆分 `shared/lib/ai.ts`~~ ✅ 已完成P2-2commit 6588f74拆分为 `ai/` 目录 6 个文件,原 ai.ts 保留为重导出)
12. schema.ts 按业务域分节
---
## 五、优先补齐路线图
### Phase 1: P0 缺口补齐MVP 必须项)
> v3 进度8 项中 6 项已完成,剩余 2 项
| 序号 | 功能 | 所属模块 | v2 状态 | v3 状态 | 工作量 |
|------|------|---------|---------|---------|--------|
| 1 | **通知公告系统** | 家校沟通 | ❌ | ✅ 已实现 | — |
| 2 | **操作日志 + 登录日志** | 日志审计 | ❌ | ✅ 已实现 | — |
| 3 | **成绩录入 + 查询 + 统计报表** | 成绩分析 | ❌ | ✅ 已实现 | — |
| 4 | **文件上传 + 权限控制** | 文件管理 | ❌ | ✅ 已实现 | — |
| 5 | **课程计划管理** | 教务排课 | ❌ | ✅ 已实现 | — |
| 6 | **隐私政策 + 用户同意** | 隐私合规 | ❌ | ❌ 未实现 | 小 |
| 7 | **未成年人信息保护** | 隐私合规 | ❌ | ❌ 未实现 | 小 |
| 8 | **修复 13 个幽灵导航路由** | 布局 | ❌ | ✅ 已修复 | — |
### Phase 2: P1 关键增强(上线前推荐)
> v3 进度20 项中约 11 项已完成
| 序号 | 功能 | 所属模块 | v2 状态 | v3 状态 |
|------|------|---------|---------|---------|
| 1 | 站内消息系统 | 家校沟通 | ❌ | ✅ 已实现 |
| 2 | 家长端仪表盘 | 家校沟通 | ⚠️ | ⚠️ 仍需完善 |
| 3 | Excel 批量导入 | 导入导出 | ❌ | ✅ 已实现 |
| 4 | Excel/PDF 导出 | 导入导出 | ❌ | ✅ 已实现 |
| 5 | 排课规则 + 自动排课 | 教务排课 | ❌ | ✅ 已实现 |
| 6 | 课表调整/代课 | 教务排课 | ❌ | ❌ 未实现 |
| 7 | 速率限制 | 操作安全 | ❌ | ❌ 未实现 |
| 8 | 成绩趋势 + 对比分析 | 成绩分析 | ⚠️ | ⚠️ 趋势已有,对比未实现 |
| 9 | 成绩导出 | 成绩分析 | ❌ | ✅ 已实现 |
| 10 | 学生考勤 | 考勤管理 | ❌ | ✅ 已实现 |
| 11 | 用户批量导入 | 用户与权限 | ❌ | ✅ 已实现 |
| 12 | 密码安全策略 | 用户与权限 | ⚠️ | ⚠️ 仍需完善 |
| 13 | 数据变更日志 | 日志审计 | ❌ | ✅ 已实现 |
| 14 | 日志查询/导出 | 日志审计 | ❌ | ⚠️ 查询已有,导出未实现 |
| 15 | 文件预览 + 存储策略 | 文件管理 | ❌ | ⚠️ 存储策略部分实现 |
| 16 | 全文检索 | 全局搜索 | ❌ | ⚠️ 基础实现 |
| 17 | 依赖审计集成 CI | 安全审计 | ⚠️ | ⚠️ 仍未集成 CI |
| 18 | 数据库定时备份 | 数据备份 | ❌ | ✅ 已实现 |
| 19 | E2E 测试完善 | 自动化测试 | ⚠️ | ⚠️ 仍需完善 |
| 20 | 通知偏好管理 | 消息通知 | ❌ | ✅ 已实现 |
### Phase 3: P2 迭代优化(竞争力提升)
> v3 进度14 项中 8 项已完成57%
| 序号 | 功能 | 所属模块 | v2 状态 | v3 状态 |
|------|------|---------|---------|---------|
| 1 | 国际化(i18n) | 非功能性 | ❌ | ❌ 未实现 |
| 2 | 多租户/多校区 | 非功能性 | ❌ | ❌ 未实现 |
| 3 | 主题色定制 | 深色主题 | ❌ | ❌ 未实现 |
| 4 | 屏幕阅读器兼容 | 无障碍 | ❌ | ✅ 已实现 |
| 5 | 视觉回归测试 | 自动化测试 | ❌ | ✅ 已实现 |
| 6 | AI 批改辅助 | AI 赋能 | ❌ | ❌ 未实现 |
| 7 | AI 学情分析 | AI 赋能 | ❌ | ❌ 未实现 |
| 8 | AI 备课助手 | AI 赋能 | ❌ | ❌ 未实现 |
| 9 | 选课管理 | 教务排课 | ❌ | ✅ 已实现 |
| 10 | 考试监考 | 作业与考试 | ❌ | ✅ 已实现 |
| 11 | 学情诊断报告 | 成绩分析 | ❌ | ✅ 已实现 |
| 12 | 短信/微信推送 | 消息通知 | ❌ | ✅ 已实现 |
| 13 | 漏洞扫描 + 渗透测试 | 安全审计 | ❌ | ⚠️ 漏洞扫描已实现,渗透测试未实现 |
| 14 | 灾备方案 | 数据备份 | ❌ | ✅ 已实现 |
---
## 六、差距统计摘要
| 状态 | P0 | P1 | P2 | 合计 |
|------|-----|-----|-----|------|
| ✅ 已完成 | 46 | 31 | 12 | **89** |
| ⚠️ 部分完成 | 7 | 11 | 6 | **24** |
| ❌ 未实现 | 2 | 11 | 17 | **30** |
| **合计** | **55** | **53** | **35** | **143** |
| 完成率 | P0 | P1 | P2 | 总体 |
|--------|-----|-----|-----|------|
| 按已完成计 | 84% | 58% | 34% | **62%** |
| 含部分完成 | 96% | 79% | 51% | **79%** |
### v2 → v3 改善
| 指标 | v2 | v3 | 变化 |
|------|-----|-----|------|
| P0 完成率(严格) | 69% | 84% | **+15%** |
| P0 完成率(含部分) | 87% | 96% | **+9%** |
| P1 完成率(严格) | 25% | 58% | **+33%** |
| P2 完成率(严格) | 7% | 34% | **+27%** |
| P2 路线图完成率 | 0% | 57% (8/14) | **+57%** |
| 总体完成率(严格) | 39% | 62% | **+23%** |
| 总体完成率(含部分) | 53% | 79% | **+26%** |
| 幽灵路由 | 13 个 | 0 | **全部修复** |
| 架构技术债 | 未审查 | 7 P0 + 8 P1 | **新发现** |
> **结论**:项目 P0 核心功能完成度达 84%(严格)/ 96%(含部分),较 v2 大幅提升 15%。P2 路线图完成 8/1457%)。主要剩余缺口:
> 1. **隐私合规 P0**隐私政策、未成年人信息保护2 项)
> 2. **P2 路线图**AI 批改/学情/备课、国际化、多租户、主题色定制6 项)
> 3. **架构技术债**7 项 P0 严重问题需修复classes/data-access 超标、循环依赖、跨模块直查等)
>
> 建议优先:① 补齐 2 项 P0 隐私合规缺口;② 修复 7 项 P0 架构技术债;③ 推进 P2 路线图剩余 6 项。