Files
NextEdu/docs/architecture/007_gap_audit_report.md
SpecialX 125f7ec54c
Some checks failed
CI / build-deploy (push) Has been cancelled
refactor: RBAC权限系统重构 + UI组件拆分 + 测试修复 + 架构文档
- RBAC: 新增30个权限点、DataScope行级权限、requirePermission守卫,所有57+ Server Action接入权限校验
- UI拆分: exam-form(1623行→11文件)、textbook-reader(744行→7文件),均降至300行以内
- 测试: 新增5个单元测试文件(19用例),修复4个集成测试文件(38用例全部通过)
- 架构文档: 新增架构影响地图(004/005)、标准功能清单(006)、差距审计报告(007)
- 项目规则: 架构图优先规则,改码必同步图
- 安全: rehype-sanitize净化、AES加密API Key、权限路由守卫
- 无障碍: skip-link、aria-label、prefers-reduced-motion
- 性能: next/font优化、next/image、代码分割
2026-06-16 23:38:33 +08:00

19 KiB
Raw Blame History

Next_Edu 差距审计报告

对照《企业级 K12 教务管理系统标准功能模块清单》(006),基于架构影响地图(004/005)与源码扫描 审计日期2026-06-16


一、总体完成度

维度 P0 子功能总数 已完成 部分完成 未实现 完成率
核心业务 31 22 5 4 71%
平台基础 8 3 2 3 38%
非功能性 8 5 2 1 63%
合规安全 8 6 1 1 75%
合计 55 36 10 9 65%

P1 完成率约 25%P2 完成率约 5%

关键风险项

  1. 通知公告系统完全缺失 — P0 级功能,家校沟通核心载体,无任何代码实现
  2. 操作/登录日志完全缺失 — P0 级功能,合规审计基础,无 DB 表、无代码
  3. 成绩分析严重不足 — 仅有作业维度的分数趋势,缺少独立的成绩录入/统计报表/查询模块
  4. 文件上传/权限控制缺失 — 当前无文件上传能力,题目/教材无法关联附件
  5. 排课仅手动录入 — 无排课规则引擎,无自动排课,无冲突检测

二、功能差距明细表

核心业务模块

标准模块 标准子功能 状态 项目现状说明 补齐建议
用户与权限 用户注册/登录 NextAuth v5邮箱+OAuth 登录JWT 策略
多角色体系 6 角色(admin/teacher/student/parent/grade_head/teaching_head)usersToRoles 多对多
RBAC 权限模型 30 个 resource:action 权限点ROLE_PERMISSIONS 映射
数据范围控制 DataScope 6 种类型(all/owned/class_taught/grade_managed/class_members/children)
角色切换 JWT 存 roles[],但无主动切换 UI 新增角色切换下拉组件,切换后重写 JWT
用户档案管理 ⚠️ profile 页可编辑姓名/邮箱,但无头像上传、地址编辑 增加 avatar 字段 + 图片上传
新手引导 OnboardingGate 组件,角色选择→学校/班级配置
组织架构管理 ⚠️ 部门/年级 CRUD 已有(school 模块),但无教研组管理 新增 teachingGroups 表 + CRUD
用户批量导入 无导入功能 新增 Excel 解析 + 批量 insert 事务
密码安全策略 ⚠️ NextAuth 默认 bcrypt但无强度校验、无锁定策略 前端强度校验 + 后端失败计数锁定
学校管理 学校信息配置 schools 表 + createSchoolAction/updateSchoolAction
学年学期管理 academicYears 表 + CRUD actionsisActive 标记
年级管理 grades 表 + CRUDgradeHeadId/teachingHeadId 指派
班级管理 classes 表 + 17 个 actions含邀请码、学生注册
学科管理 ⚠️ subjects 表存在,但仅有 name/order无代码/学段归属字段 扩展 subjects 表字段
部门管理 departments 表 + CRUD actions
校区管理 无校区概念 新增 campuses 表schools 关联 campusId
学校参数配置 无参数配置功能 新增 schoolSettings KV 表
教务排课 课程计划管理 classSchedule 表仅存单条课表项,无课程计划概念 新增 coursePlans 表 + 管理界面
排课规则配置 无规则引擎 新增 schedulingRules 表 + 约束求解器
自动排课引擎 集成开源排课算法或自研 CSP 求解器
课表查看 ⚠️ 教师班级课表 + 学生课表已有,但无教室维度 增加 classroom 维度查询
课表调整/代课 仅 CRUD 课表项,无调课/代课流程 新增 scheduleChanges 表 + 审批流
教室资源管理 ⚠️ classrooms 表存在(字段: location, capacity),但无管理 UI 增加 CRUD 页面 + 设备标签
选课管理 新增 electiveCourses + studentSelections 表
教材资源 教材库管理 textbooks 表 + createTextbookAction含 subject/grade/publisher
章节结构管理 chapters 树形结构 + reorderChaptersAction 拖拽排序
知识点图谱 ⚠️ knowledgePoints 有 CRUD + 章节关联,但无前置/后继关系 增加 prerequisiteEdges 表
教材内容阅读 textbook-content-panel.tsxMarkdown 渲染 + rehype-sanitize
教材版本管理 无版本概念 增加 textbookVersions 表或 version 字段
资源附件管理 无文件上传能力 新增 attachments 表 + 文件上传服务
教材审核流程 无审核机制 新增 reviewWorkflow 表 + 状态机
题库与试卷 题目创建/编辑 5 种题型(single_choice/multiple_choice/text/judgment/composite),支持子题目
题目分类标签 知识点关联 + difficulty + type 多维标签
题目批量导入 Excel 模板 + 批量解析
题目版本管理 增加 questionVersions 表
试卷手动组卷 exams 表 structure 字段examQuestions 关联
试卷智能组卷 无自动抽题 按知识点/难度分布约束随机抽题算法
AI 辅助出题 ai-pipeline.tsgenerateAiPreviewData/generateAiCreateDraftFromSource/regenerateAiQuestionByInstruction
试卷模板管理 新增 examTemplates 表
试卷预览/打印 ⚠️ exam-preview-dialog.tsx 可预览,但无打印适配 增加打印 CSS @media print
作业与考试 作业布置 createHomeworkAssignmentAction关联 sourceExamId + classId
作业提交 startHomeworkSubmissionAction + saveHomeworkAnswerAction + submitHomeworkAction
作业批改评分 gradeHomeworkSubmissionAction逐题评分 + feedback
迟交/补交策略 ⚠️ homeworkAssignments 表有 allowLate/lateDueAt 字段,但前端未暴露配置 作业创建表单增加迟交开关
多次提交/重做 ⚠️ maxAttempts 字段存在startHomeworkSubmissionAction 有次数检查 前端暴露配置 + 重做入口
作业统计分析 ⚠️ getHomeworkAssignmentAnalytics 存在,但仅限单次作业维度 增加班级/时间维度汇总
作业归档 无归档机制 增加 archivedAt 字段 + 归档 API
在线考试模式 无限时/防切屏/乱序/自动交卷 新增 examMode 字段 + 前端计时器 + 乱序逻辑
考试监考 新增实时提交进度 WebSocket 推送
成绩分析 成绩录入 无独立成绩录入功能,仅作业自动同步分数 新增 gradeRecords 表 + 手动录入 UI
成绩查询 ⚠️ 学生可查作业分数(getStudentDashboardGrades),但无独立成绩查询页 新增成绩查询页面
成绩统计报表 无班级/年级均分、中位数、标准差、及格率统计 新增统计聚合查询 + 图表组件
成绩趋势分析 ⚠️ getTeacherGradeTrends 提供教师维度趋势,学生有 trend 数据 扩展为多维度趋势
成绩对比分析 无班级间/学科间对比 新增对比查询 + 雷达图
学情诊断报告 基于知识点掌握度生成诊断
成绩导出 无导出功能 ExcelJS/PDFKit 导出
等第转换 新增 gradeScale 配置 + 转换函数
家校沟通 通知公告 完全缺失,无 DB 表、无 API、无 UI 新增 announcements 表 + 三级发布 + 已读回执
站内消息 新增 messages 表 + 实时通知
家长端仪表盘 ⚠️ /parent/dashboard 路由存在但组件为空壳 接入子女数据查询
家长会/约谈预约 新增 appointments 表
请假审批 新增 leaveRequests 表 + 审批流
校园动态/班级圈 新增 posts 表 + 评论/点赞
AI 赵能 AI 对话助手 /api/ai/chat 路由 + createAiChatCompletionZod 校验
AI 辅助出题 exams/ai-pipeline.ts 完整实现
AI 批改辅助 接入 AI 评分 prompt + 教师终审
AI 学情分析 基于作业数据生成学习路径
AI 备课助手 根据教材章节生成教案
AI 多模型配置 aiProviders 表 + upsertAiProviderAction支持多 provider
AI API Key 加密 encryptAiApiKey/decryptAiApiKeyAES 加密
考勤管理 学生考勤 新增 attendanceRecords 表 + 登记界面
教师考勤 同上
考勤统计 聚合查询 + 报表
考勤规则配置 新增 attendanceRules 配置

平台基础能力

标准模块 标准子功能 状态 项目现状说明 补齐建议
消息通知 站内通知 无通知系统 新增 notifications 表 + 轮询/WebSocket 推送
邮件通知 集成 nodemailer/Resend
短信通知 集成短信网关 SDK
微信/钉钉推送 集成 webhook
通知偏好管理 新增 notificationPreferences 表
日志审计 操作日志 完全缺失 新增 auditLogs 表 + action 拦截器
登录日志 新增 loginLogs 表 + NextAuth event 回调
数据变更日志 Drizzle middleware 或 trigger
日志查询/导出 管理员日志查询页面
文件管理 文件上传 无文件上传能力 新增 upload API + 本地/OSS 存储
文件预览 集成文件预览服务
文件存储策略 抽象 StorageProvider 接口
文件权限控制 文件访问鉴权中间件
全局搜索 全文检索 集成 Meilisearch/Typesense
搜索建议 搜索 API + 前端联想
搜索过滤 搜索结果筛选器
导入导出 Excel 导入 ExcelJS 解析 + 校验
Excel/PDF 导出 ExcelJS/PDFKit 生成
导入校验与错误报告 行级校验 + 错误报告下载
数据看板 管理员仪表盘 getAdminDashboardDatauserCount/classCount/activeSessions/userRoleCounts
教师仪表盘 TeacherDashboardDataclasses/schedule/assignments/submissions/gradeTrends
学生仪表盘 StudentDashboardPropsdueSoonCount/overdueCount/gradedCount/todaySchedule/grades
家长仪表盘 ⚠️ 路由存在但组件为空壳 接入子女数据
自定义看板 拖拽布局 + localStorage 持久化

非功能性模块

标准模块 标准子功能 状态 项目现状说明 补齐建议
国际化 多语言框架 无 i18n 集成 集成 next-intl
语言切换 语言选择器 + URL 前缀
日期/数字本地化 ⚠️ formatDate 支持 locale 参数(默认 zh-CN),但无用户偏好 绑定用户语言偏好
多租户/多校区 租户隔离 行级 tenantId 或 schema 隔离
校区资源映射 跨校区共享规则
统一管理后台 集团管理视图
深色主题 主题切换 ThemeProvider(next-themes) + theme-preferences-card
主题色定制 CSS 变量动态注入
无障碍访问 键盘导航 ⚠️ 部分组件支持,但非系统性 全面键盘测试 + 修复
ARIA 标注 ⚠️ icon 按钮 aria-label 已加,但非全覆盖 系统性 ARIA 审计
屏幕阅读器兼容 未测试 NVDA/VoiceOver 测试
跳转链接 layout.tsx 有 skip-link + id="main-content"
性能优化 页面懒加载 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 环境配置
视觉回归测试 集成 Chromatic
CI/CD 持续集成 .gitea/workflows/ci.ymllint + typecheck + test
持续部署 Dockerfile + CI 自动构建部署
预览环境 PR 预览部署
数据备份 数据库定时备份 cron + mysqldump 脚本
备份恢复演练 定期恢复测试
灾备方案 异地容灾规划

合规与安全

标准模块 标准子功能 状态 项目现状说明 补齐建议
隐私合规 隐私政策与用户协议 无隐私政策页面,注册无同意勾选 新增 consent 页 + 注册流程集成
未成年人信息保护 无年龄判断、无监护人同意流程 注册时年龄校验 + 监护人字段
数据保留策略 新增 dataRetentionPolicies 配置
用户数据导出/删除 GDPR 式数据操作 API
数据加密 传输加密 Next.js 默认 HTTPS生产环境应配 HSTS 部署时配置 HSTS 头
存储加密 AI API Key AES 加密,密码 bcrypt 哈希
密码哈希 NextAuth 默认 bcrypt
操作安全 CSRF 防护 NextAuth SameSite Cookie + Server Action CSRF 保护
XSS 防护 React 自动转义 + rehype-sanitize 净化 HTML
SQL 注入防护 Drizzle ORM 参数化查询
速率限制 集成 next-rate-limit 或 upstash/ratelimit
会话管理 JWT 过期策略 + NextAuth session 管理
敏感信息脱敏 日志脱敏 无日志系统 日志框架内置脱敏
前端脱敏 手机号/邮箱掩码组件
导出脱敏 无导出功能 导出时可选脱敏
安全审计 漏洞扫描 集成 OWASP ZAP 或 Snyk
依赖审计 ⚠️ npm audit 可用但未集成 CI CI 增加 npm audit 步骤
渗透测试 上线前第三方测试

三、优先补齐路线图

Phase 1: P0 缺口补齐MVP 必须项)

目标:将 P0 完成率从 65% 提升到 100%

序号 功能 所属模块 工作量 理由
1 通知公告系统 家校沟通 P0 缺失最严重项,学校运营核心需求;需 DB 表 + API + 三级发布 + 已读回执
2 操作日志 + 登录日志 日志审计 P0 合规底线,无日志则无法追溯问题;需 DB 表 + action 拦截 + NextAuth event
3 成绩录入 + 查询 + 统计报表 成绩分析 P0 教务核心闭环缺失;需 gradeRecords 表 + 录入 UI + 聚合查询 + 图表
4 文件上传 + 权限控制 文件管理 P0 基础能力,题目/教材/通知均需附件;需 upload API + 存储抽象 + 鉴权
5 课程计划管理 教务排课 P0 排课前置条件;需 coursePlans 表 + 管理界面
6 隐私政策 + 用户同意 隐私合规 P0 合规底线;需 consent 页面 + 注册流程集成
7 未成年人信息保护 隐私合规 P0 K12 强制要求;需年龄校验 + 监护人字段

Phase 2: P1 关键增强(上线前推荐)

目标:产品达到可上线标准

序号 功能 所属模块 理由
1 站内消息系统 家校沟通 教师与家长沟通核心渠道
2 家长端仪表盘 家校沟通 家长核心入口,当前为空壳
3 Excel 批量导入 导入导出 开学季批量导入学生/教师刚需
4 Excel/PDF 导出 导入导出 成绩单/名单导出刚需
5 排课规则 + 自动排课 教务排课 手动排课效率极低,自动排课是核心竞争力
6 课表调整/代课 教务排课 日常调课是高频操作
7 速率限制 操作安全 防暴力破解API 安全基线
8 成绩趋势 + 对比分析 成绩分析 教学质量分析核心
9 成绩导出 成绩分析 家长会/教研会必备
10 学生考勤 考勤管理 日常管理刚需
11 用户批量导入 用户与权限 开学季批量注册
12 密码安全策略 用户与权限 安全基线
13 数据变更日志 日志审计 争议追溯
14 日志查询/导出 日志审计 管理员日常使用
15 文件预览 + 存储策略 文件管理 用户体验提升
16 全文检索 全局搜索 题库/教材量大后必须
17 依赖审计集成 CI 安全审计 安全基线
18 数据库定时备份 数据备份 数据安全底线
19 E2E 测试完善 自动化测试 上线前回归保障
20 通知偏好管理 消息通知 用户体验

Phase 3: P2 迭代优化(竞争力提升)

目标:差异化竞争力与用户体验精细化

序号 功能 所属模块 理由
1 国际化(i18n) 非功能性 海外学校/国际学校市场
2 多租户/多校区 非功能性 集团化办学市场
3 主题色定制 深色主题 学校品牌化
4 屏幕阅读器兼容 无障碍 合规 + 社会责任
5 视觉回归测试 自动化测试 UI 变更质量保障
6 AI 批改辅助 AI 赋能 教师效率提升
7 AI 学情分析 AI 赋能 个性化学习差异化
8 AI 备课助手 AI 赋能 教师备课效率
9 选课管理 教务排课 高中选修课场景
10 考试监考 作业与考试 在线考试完整性
11 学情诊断报告 成绩分析 精准教学
12 短信/微信推送 消息通知 紧急事件触达
13 漏洞扫描 + 渗透测试 安全审计 上线后安全验证
14 灾备方案 数据备份 业务连续性

四、差距统计摘要

状态 P0 P1 P2 合计
已完成 36 12 2 50
⚠️ 部分完成 10 8 1 19
未实现 9 28 27 64
合计 55 48 30 133
完成率 P0 P1 P2 总体
按已完成计 65% 25% 7% 38%
含部分完成 83% 42% 10% 51%

结论:项目 P0 核心功能完成度约 65%(严格)/ 83%(含部分),主要缺口集中在家校沟通(通知公告)日志审计成绩分析三个 P0 模块。建议优先补齐 Phase 1 的 7 项 P0 缺口,再推进 Phase 2 的 P1 增强。