Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

数智学情平台

面向中小学课堂的班级管理、学情分析、错题答疑一体化系统。支持课后分层作业推送、课堂实时答题(扫码进入)、学情可视化分析。


功能概览

教师端

  • 班级管理 — 创建班级、管理学生账号、查看每位学生档位
  • 题库管理 — 按科目/难度/知识点管理题目(单选题),支持多科目
  • 作业管理 — 发布分层作业,一档学生(正确率≥70%)做进阶题,二档学生做基础题,学生自动收到对应版本
  • 课堂实时答题 — 一键发起课堂答题,大屏展示二维码,学生扫码进入,实时统计各题正确率
  • 学情分析 — 班级整体看板(平均分、档位分布、知识点掌握热力图)+ 单生详情(趋势折线图、雷达图)
  • 闯关任务 — 三关闯关模式:第一关在线自动批改、第二关拍照提交教师批注、第三关跨学科抢答

学生端

  • 我的作业 — 查看并完成教师布置的作业,提交后立即显示得分和解析
  • 错题本 — 自动收录所有做错的题目,显示正确答案和解析
  • 我的学情 — 个人正确率、当前档位、知识点雷达图、超过班级百分比

技术栈

层次 技术
前端 Vue 3 + Element Plus + ECharts
后端 Python FastAPI
数据库 SQLite(本地)/ 可迁移 MySQL(云端)
鉴权 JWT Token

快速开始

环境要求

  • Python 3.10+
  • Node.js 18+

1. 克隆项目

git clone https://github.com/LYL-8bit/suhua-dati.git
cd suhua-dati

2. 启动后端

cd backend
pip install -r requirements.txt
python seed.py          # 初始化数据库和假数据
python -m uvicorn main:app --host 0.0.0.0 --port 8001 --reload

3. 启动前端

cd frontend
npm install
npm run dev

4. 访问系统

打开浏览器访问:http://localhost:5173

角色 账号 密码
教师 teacher 123456
学生 s01 ~ s20 123456

Windows 用户可直接双击根目录下的 start.bat 一键启动。


项目结构

suhua-dati/
├── backend/                # FastAPI 后端
│   ├── main.py             # 入口,注册路由
│   ├── models.py           # 数据库模型
│   ├── database.py         # SQLite 连接
│   ├── auth.py             # JWT 鉴权
│   ├── seed.py             # 假数据初始化脚本
│   ├── requirements.txt
│   └── routers/
│       ├── auth.py         # 登录接口
│       ├── classes.py      # 班级 & 学生管理
│       ├── subjects.py     # 科目管理
│       ├── questions.py    # 题库管理
│       ├── assignments.py  # 作业管理
│       ├── submissions.py  # 答题提交 & 错题本
│       ├── classroom.py    # 课堂实时答题
│       ├── analysis.py     # 学情分析
│       └── challenge.py    # 闯关任务(三关 + WebSocket)
│
├── frontend/               # Vue 3 前端
│   └── src/
│       ├── views/
│       │   ├── teacher/    # 教师端页面
│       │   ├── student/    # 学生端页面
│       │   ├── classroom/  # 扫码答题页
│       │   └── challenge/  # 学生闯关页
│       ├── layouts/        # 布局组件
│       ├── router/         # 路由配置
│       ├── stores/         # Pinia 状态管理
│       └── api/            # Axios 封装
│
├── start.bat               # Windows 一键启动脚本
├── reset-data.bat          # 重置假数据脚本
└── README.md

数据库说明

默认使用 SQLite,数据库文件位于 backend/data/db.sqlite3,无需额外安装数据库软件。

如需迁移到 MySQL(云部署),修改 backend/database.py 中的连接字符串即可:

SQLALCHEMY_DATABASE_URL = "mysql+pymysql://user:password@host/dbname"

档位逻辑说明

系统根据学生历史答题的综合正确率自动判定档位,并在每次推送作业时动态计算:

档位 条件 推送题目
一档(优秀) 综合正确率 ≥ 70% 进阶题(difficulty = 2)
二档(需加强) 综合正确率 < 70% 基础题(difficulty = 1)

学生只看到自己的那份作业,不感知分档。


课堂实时答题流程

  1. 教师在「课堂答题」页点击「发起课堂答题」,选择班级、科目和题目
  2. 系统生成二维码,显示在大屏
  3. 学生用手机扫码,输入账号密码后进入答题页
  4. 学生提交后,教师端实时显示每道题的班级正确率
  5. 教师点击「结束」关闭本次课堂会话

API 文档

后端启动后访问:http://localhost:8001/docs

自动生成的 Swagger 交互文档,可直接在页面测试所有接口。


闯关任务使用说明

闯关任务是专为课堂设计的三关互动模式,教师主导节奏,学生扫码参与。

整体流程

教师新建会话 → 显示二维码 → 学生扫码登录 → 三关依次进行

教师操作步骤

  1. 登录教师账号,点击左侧菜单「闯关任务
  2. 点击右上角「新建闯关会话」,填写标题并选择班级,点击确认
  3. 系统自动生成二维码并弹出,将二维码投屏/展示给学生扫码

学生参与步骤

  1. 用手机扫描教师展示的二维码
  2. 在打开的页面输入自己的账号和密码(账号格式 s01s20,密码均为 123456
  3. 登录后即可看到三关任务卡片,按照教师节奏依次完成

第一关 · 在线作答(自动批改)

题目内容(固定):

# 题型 题目
1 填空 嫦娥号环月轨道半径 1000 公里,直径是多少?
2 填空 嫦娥号环月轨道直径 3000 公里,半径是多少?
3 判断 圆的直径是半径的 2 倍。(对/错)

学生端: 填写答案后点击「提交」,立即显示每题对错和得分。

教师端: 切换到「第一关」标签页,实时查看每道题的班级正确率(圆形进度条)和所有提交明细,可随时点「刷新」更新。


第二关 · 拍照提交 + 教师批注

学生端:

  1. 点击「拍照上传」按钮,选择相机拍摄或从相册选取手写解题过程的照片
  2. 预览无误后点击「上传」,等待教师批注

教师端:

  1. 切换到「第二关」标签页,已上传的作品以卡片形式展示
  2. 点击任意卡片进入批注界面:
    • 顶部工具栏选择画笔颜色(红/橙/绿/蓝/黑)和画笔粗细
    • 在图片上直接涂抹画线标注错误或重点
    • 点击「添加文字」可在图片上叠加文字说明
    • 右侧选择标签:优秀待改进
  3. 点击「保存批注」,批注结果保存到服务器

第三关 · 跨学科抢答

题目内容(固定,4道跨学科问题):

# 联动学科 题目摘要
1 科学 八大行星公转轨道为何近似圆形?
2 语文 与圆相关的诗词及其情感
3 道法 从墨子"一中同长"到嫦娥探月的感受
4 生活 车轮和井盖为什么是圆的?

教师端操作:

  1. 切换到「第三关」标签页
  2. 点击任意题目卡片,题目会实时推送到所有学生手机屏幕
  3. 学生抢答后,教师在「抢答排行榜」中点击某位学生名字旁的「正确」或「错误」按钮完成评分
  4. 点击「清空抢答」可重置本题,进行下一题

学生端操作:

  1. 看到题目后点击红色「🔔 我来回答!」大按钮抢答
  2. 按钮变灰后显示自己的抢答名次(第 1 名 / 第 2 名……)
  3. 等待教师点名,被叫到的学生口头作答

提示: 闯关任务数据保存在服务器内存中,重启后端服务后数据会清空,每次开课前新建会话即可。


API 文档

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages