基于React+Flask的班级积分管理系统
一个基于React + Flask的班级积分管理系统,支持班级管理、学生积分跟踪、兑换物品管理、排行榜展示等功能。
项目地址:https://github.com/atuo-200/classMaster
安装与运行
后端
cd backend
pip install -r requirements.txt
python app.py
前端
cd frontend
npm install
npm start
一键式运行
在安装好后端(pip install -r requirements.txt)及前端所需依赖包(npm install)之后,也可双击项目文件夹里的start.bat运行该项目,班级积分管理页面会自动打开。
使用说明
1.班级管理
- 创建班级:快速创建新的班级。
- 批量导入学生名单:点击“下载模板”下载Excel模板文件,填写学生学号、姓名,然后点击“导入学生”上传填写好的学生名单文件,即可完成导入。
- 删除班级:安全删除班级(为防止误触,需要密钥验证,密钥默认为123456,如需修改可在项目文件夹下的backend\app.py中修改app.config[‘SECRET_KEY’]字段)。
- 班级列表:查看所有班级及学生数量统计。

2.学生管理
-
学生列表:查看班级学生信息及积分状态

-
单个添加/删除学生:支持手动添加单个学生信息以及手动删除单个学生信息。
-
加分/扣分:可为每个学生加扣分,可默认加/扣1分,或者根据“加/扣分规则”中设置的规则来进行加/扣分。

-
兑换奖品:可根据学生的兑换币数量为其兑换奖品,需要在“兑换设置”中设置兑奖的项目。

3.加/扣分规则管理
为加/扣分添加、编辑、删除规则。

4.兑换设置
设置兑奖项目:名称、描述以及所需兑换币数量等。

5.段位管理
设置段位名称、段位代表颜色、所需积分区间等等。以下是简单的段位设置参考:
| 段位名称 | 积分区间 | 段位描述 |
|---|---|---|
| 最强学霸 | 180~200分 | 每节课近乎满分,额外挑战全部完成! |
| 荣耀学尊 | 160~179分 | 稳定高效完成任务,积极参与所有环节 |
| 永恒钻石 | 140~159分 | 作业全勤+高质量,纪律优异,主动回答问题 |
| 尊贵铂金 | 110~139分 | 按时完成任务,遵守纪律,偶尔回答问题(达标中上水平) |
| 荣耀黄金 | 80~109分 | 基础任务完成,纪律合格(中等努力即可达到) |
| 秩序白银 | 50~79分 | 缺勤部分任务或纪律分,需加强参与 |
| 倔强青铜 | 20~49分 | 任务漏交较多,课堂参与度低 |

6.排行榜
积分排行榜、兑换币排行榜、段位统计数据实时显示。

7.随机点名
随机从班级中抽取学生。

开发说明
技术栈
前端:React + TypeScript + Ant Design
后端:Flask + SQLAlchemy + SQLite
文件处理:openpyxl (Excel处理)
数据库数据模型
1. 班级表(Class)
| 字段名 | 类型 | 是否必填 | 默认值 | 说明 |
|---|---|---|---|---|
| id | Integer | 是 | - | 主键 |
| name | String(100) | 是 | - | 班级名称 |
| created_at | DateTime | 否 | 当前时间 | 创建时间 |
2.学生表(Student)
| 字段名 | 类型 | 是否必填 | 默认值 | 说明 |
|---|---|---|---|---|
| id | Integer | 是 | - | 主键 |
| name | String(100) | 是 | - | 学生姓名 |
| student_id | String(50) | 是 | - | 学号 |
| points | Integer | 否 | 0 | 当前积分 |
| exchange_coins | Integer | 否 | 0 | 可兑换的硬币数 |
| class_id | Integer | 是 | - | 所属班级ID |
| created_at | DateTime | 否 | 当前时间 | 创建时间 |
3. 兑换物品表(ExchangeItem)
| 字段名 | 类型 | 是否必填 | 默认值 | 说明 |
|---|---|---|---|---|
| id |

最低0.47元/天 解锁文章
1422

被折叠的 条评论
为什么被折叠?



