学生成绩分析与学业预警系统 · 可配置规则引擎 预览图

学生成绩分析与学业预警系统 · 可配置规则引擎

挂科门数与 GPA 线等阈值全部存库在线可调,含退步型预警、Excel 批量导入与成绩单导出

源码/项目包 v1.0 # Python# Django# Web全栈

这个项目解决什么问题

学业预警的真实痛点不是"算出谁挂科"——那是 Excel 就能干的事。真正的难点是:规则会变、数据靠导入、学生要知情。本项目把这三件事都做进了系统:预警阈值不写死、Excel 一键批量导入、触发预警自动通知学生本人。它是少数能把"业务自动化闭环"讲完整的毕设选题。

核心亮点

  • 可配置预警规则引擎:挂科门数、GPA 线等阈值全部存数据库,管理员可在线调整——下学期政策变了不用改一行代码。规则引擎的"配置化"思路,是本项目最值得课程汇报时展开的部分。
  • 退步型预警:本学期 GPA 比上学期降幅超过 0.5 也触发预警。系统关注的不是"已经挂科",而是"正在下滑"——比传统的事后报警更早发现问题,这一条足以在课程汇报中讲出一个完整的故事。
  • Excel 批量导入:pandas 解析 + 失败行明细反馈 + 增量覆盖,导入完成自动触发预警重算并通过站内信通知相关学生。一条链路走完,人工干预为零。
  • 三角色权限隔离:管理员管全局、教师管自己的课、学生只能看到自己的成绩和预警。权限边界怎么划、越权访问怎么防,代码里都有交代。
  • 成绩多维分析:GPA 4.0 制加权、班级排名、班级对比雷达图、各科及格率柱线图,分析页信息密度拉满。
  • 一键演示数据:Faker 生成 5 个班级 200 名学生 3200 条成绩,init_data 跑完系统立刻"活"起来。

效果预览

成绩分析页——各科平均分/及格率、GPA 分布直方图、班级对比雷达图,成绩全貌一图看清:

成绩分析

预警名单——红色/黄色预警分色展示,触发原因与命中规则一目了然:

预警名单

Excel 批量导入页——模板格式说明与历史导入日志,失败行有明细反馈:

批量导入

你将学到

  • 多角色权限系统的设计模式(角色、隔离、越权防护)
  • Excel 导入导出的工程实践:模板、校验、失败反馈缺一不可
  • 复杂聚合查询:GPA 加权、排名计算、跨学期对比
  • 规则引擎思想:把业务规则从代码里抽出来变成数据
  • 业务自动化闭环:导入 → 计算 → 预警 → 通知,全链路自动衔接

适合谁

需要一个"业务逻辑扎实、课程汇报有话讲"的管理类 Web 毕设的学生——它不靠界面炫技,靠的是规则引擎和自动化闭环这些"内功"。难度 ★★★,适合已掌握 Django 基础、想挑战业务设计的学习者。


交付内容:完整可运行源码、README.md(逐步运行方法与实现说明)、requirements.txt。

许可:个人使用,可用于自己的学习、课程实验与研究报告,请勿转售或公开传播。

Django 4
pandas
openpyxl
SQLite
ECharts
Bootstrap 5

环境与步骤

pip install -r requirements.txt
pip install -r requirements.txt
python manage.py migrate
python manage.py init_data   # 生成 5 班 200 人 3200 条成绩
python manage.py runserver

Q:Excel 导入格式有要求吗?

A:有。必需列是「学号、姓名、课程、学期、学分、分数」,缺列时导入会直接报“缺少必需列:…(需要:…)”并指出是哪几列,不会静默丢数据。README 第六节有模板说明。

Q:预警规则改了要改代码重新发布吗?

A:不用。挂科门数、GPA 线、降幅阈值全部存在数据库里,管理员在后台在线调整,下次计算就按新规则走。

Q:只盯已经挂科的学生吗?

A:还有“退步型预警”:本学期 GPA 相比上学期降幅超过阈值即触发。它关注的是正在下滑的人,比事后报警更早一步。

Q:能立刻看到效果吗?

A:能。依赖里有 faker,README 给了造数据与 runserver 的步骤,登录后管理员与学生两种角色各自的页面都能看到。

购买评价(0)

暂无评价,购买后第一个来评价吧
相关商品
🍪 隐私提示 我们仅收集提供服务所必需的信息(详见《隐私政策》),不出售、不追踪。
¥69
立即购买