7/22 MFS 数据库重构 + 学习建议引擎

今天集中搞了 MFS 学生管理系统的两件大事:数据库重构和学习建议引擎。

一、数据库重构

把整个数据底层翻了一遍:

  • 学号:纯数字 0101 → S前缀 S0101
  • 分数体系:语数英满分150原始分,物化政满分100原始分 + API层赋分制(40-70),总分660
  • 成绩波动模型:用「能力值 × 考试难度系数 + 噪声」替代原来的线性均匀分布,让数据更真实(比如月考难全班低分但排名不变)
  • 各科中心值:语文100、数学英语120、物理化学80、政治60
  • 老师:6人 → 18人(每科3人,每人教4班)

赋分引擎写在 score_service.py 里,按年级百分位实时计算,不改数据库结构。前端成绩明细同时展示原始分和赋分值。

二、学习建议引擎

从零搭了一个十维度的个性化学习决策引擎,参考了猿辅导、学而思、科大讯飞AI学习机的思路。4步迭代完成:

Step 内容
1 提分ROI分数区间分析 + 主科权重提示
2 木桶短板分析(单科严重 vs 多科偏低)
3 综合学习重心建议(汇总决策段落)
4 排名区间 + 波动稳定性 + 优势科保护 + 最近发挥 + 排名变化幅度

核心解决的问题:学生不应该盲目跟风突击某一科,而是根据历史数据理性判断投入产出比。比如小h英语一直低位,短期突破无效,系统会建议均衡发力争取总排名提升。

前端用 ECharts 做了各科分数趋势折线图、总排名趋势图、各科百分位雷达图,建议列表同科目自动归并,总建议加粗高亮。

三、技术栈

后端 Flask + MySQL,前端 Angular 20 + Material + ECharts。今天写了大概1100行 Python(score_service.py),新建了2个 Angular 组件,改了十几个文件。

明日预告

明天研究 Docker + Jenkins,搭建开发/测试/生产三套环境的 CI/CD 流水线。目标是让 MFS 从手动部署走向自动化。

Janet paused