功能模块化与课程开放策略
本方案将平台能力拆分为“通用能力”和“课程专属模块”,用于支持多学科、多课程的统一教学平台。
1. 模块分类
1.1 通用能力(默认全员可用)
- 课程管理(课程/章节/成员)
- 作业与测验
- 资源中心
- 公告与考勤
- AI 答疑
- 代码编辑(若启用)
- 学情分析(学习统计、学习事件、全局画像)
1.2 课程专属模块(按选课开放)
- 仿真与数值计算(如物理/工程类课程)
- 学术写作分析与润色(如写作类课程)
- 学科知识包(如专业术语、课程教材 RAG)
- 实验/实训工具(如编程实验、数据分析、语言实验)
课程专属模块仅对“已选修该课程”的用户开放,避免跨课程误用。
2. 开放策略(功能门控)
2.1 核心规则
- 用户必须属于课程才可访问课程专属模块。
- 通用能力对所有已登录用户开放(受 RBAC 权限控制)。
- 课程模块由课程配置决定(课程级开关)。
2.2 课程配置建议
建议在课程层保存模块配置,例如:
json
{
"enabled_modules": [
"core.ai",
"core.analytics",
"course.simulation",
"course.domain_pack.emfield"
],
"module_settings": {
"course.simulation": { "max_runtime_sec": 5 },
"course.writing": { "min_word_count": 50 }
}
}如果暂未扩展数据库字段,可先通过后台配置或课程扩展表实现。
3. 前端与后端门控要求
3.1 前端展示
- 侧边栏按
enabled_modules渲染课程菜单。 - 未开放模块隐藏入口,并在直接访问时提示“课程未开通该功能”。
3.2 后端校验
- API 层在 RBAC 校验后增加“模块开关校验”。
- 通用能力仅做权限校验,不做课程模块校验。
4. 示例
- 物理仿真课程:
course.simulation+course.domain_pack.physics - 研究生英文写作课程:
course.writing+course.domain_pack.academic_writing - 通识课程:仅保留通用能力
5. 落地步骤(建议)
- 增加课程模块配置字段或配置表。
- 后端 API 添加模块校验中间件。
- 前端侧边栏与路由按模块配置渲染。
- 文档统一引用本模块化策略。