EnableForge 在既有 Online MOOC 学习底座上,把学习事实连接到可证明能力。
问题与定位
很多客户教育系统能完成课程浏览,却难以回答“某个角色是否真正具备能力”。
EnableForge 的定位不是把原有 MOOC 平台简单改名,而是在保留上游课程、订单、课表和学习记录的前提下,旁挂一组客户赋能领域:组织与学院、角色路径、批量入学、AI 挑战、人工复核、路径认证和公开验证。
这样既复用既有学习底座,又把“学习事实”和“能力证明”连接起来。
从入学到认证的主链路
- 创建试点组织与学院,编排角色路径、课程和挑战。
- 通过 CSV 批量入学并幂等授权,学员提交实训。
- 系统创建持久评估任务,边界结果进入人工复核。
- Learning Service 重算路径资格,最后签发长期有效证书,并提供撤销、验证和运营导出。
核心方案
领域边界与状态所有权
tj-learning负责组织、学院、路径、成员、权益、评估任务、复核与认证的最终状态。tj-aigc只负责模型调用和结构化评估结果,不直接签发证书。tj-api承担 Feign DTO 与服务间契约。- Gateway 仅匿名放行公共证书验证,其余请求继续登录并逐级校验组织、学院和路径关系。
路径、权益与证书
角色路径支持课程与挑战有序编排、必修/选修和多路径分配,发布后保留不可变规则版本。
权益按 PURCHASE、ACADEMY、LEGACY 分开管理,撤销或退款只处理对应来源,避免误删其他有效学习权限。
证书保持唯一且不可物理删除,复核改分、路径变更和撤销都保留历史审计。
关键工程实现
持久评估与内部鉴权
AI 评分没有被设计成一次同步 HTTP 调用,而是落库为 evaluation job。
worker 通过 CAS 领取任务,使用租约恢复和三次退避处理暂时失败,并以 leaseOwner + attemptCount fencing 防止过期 worker 覆盖新租约结果。
边界结果不直接改变认证,而是进入人工复核;最终资格由 Learning Service 统一 reconciliation。
Learning 到 AIGC 的内部调用使用 HMAC-SHA256。tj-api 将 method、path、timestamp、nonce 与 body SHA-256 组成 canonical string,tj-aigc 验签。
nonce 通过 Redis SETNX + TTL 防重放,密钥或重放存储不可用时失败关闭。这样模型服务是执行面,业务服务才是认证事实源。
迁移、灰度与前端
数据库采用 tj_learning_enableforge.sql、tj_learning_enableforge_v002_upgrade.sql 和 postcheck 的增量顺序。
v002 在创建证书唯一约束前检查重复 (path_id, user_id),发现冲突以 SQLSTATE 45000 阻断,不静默覆盖。
Nacos 提供 OFF / PILOT / VERIFY_ONLY 三档运行配置;Vue 前端覆盖学院工作台、路径、挑战、复核、进度、认证和公共验证。
边界与验证
当前可核验的是私有仓库中的 EnableForge 增量代码、SQL、配置、Vue 页面,以及 README 和提交记录中的 38 个定向测试、Maven Reactor、Vue 构建和多档浏览器检查。
上述测试与构建记录本轮未现场复跑,不能写成当前环境结果。真实 MySQL、Redis、Nacos、DashScope 端到端、部署和单组织试点仍需独立证据。
- 项目不把上游 Online MOOC 的课程、交易、课表和通用微服务底座归为个人原创。
- v1 面向单组织受控试点,不包含 SAML/SCIM、企业席位计费、代码执行 sandbox 或开放市场。
- 未有组织数、学员数、通过率、性能、收入等可公开指标,文章不作推断。
总结
EnableForge 的工程价值在于把 AI 评估放进可恢复、可审计的业务闭环:AIGC 负责给出结构化结果,Learning 负责权益、资格和证书事实,人工复核处理不确定性,HMAC、防重放、租约 fencing 和增量迁移守住系统边界。
对招聘者而言,它体现的是在既有微服务底座上做清晰增量建模,并用证据等级约束技术表达。
评论