You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
ccicnce113424 22e2c47609
fix: sequence call
1 month ago
app fix: sequence call 1 month ago
.env.example feat: init flask skeleton with auth and pages 1 month ago
.envrc feat: init flask skeleton with auth and pages 1 month ago
.gitignore feat: init flask skeleton with auth and pages 1 month ago
README.md feat: student management 1 month ago
requirements.txt chore: fix environment 1 month ago
run.py feat: create table at start 1 month ago
shell.nix chore: fix environment 1 month ago

README.md

课堂点名系统

开发环境与依赖

cd class-random-caller

# 创建虚拟环境(默认 .venv 目录)
python -m venv

# 激活虚拟环境Linux/macOS
source .venv/bin/activate

# 如在 Windows PowerShell 下:
# .venv\\Scripts\\Activate.ps1

# 安装依赖
pip install -r requirements.txt

配置数据库

在项目根目录创建 .env 文件,内容示例:

SECRET_KEY=your-secret-key
DATABASE_URL=mysql+pymysql://user:password@host:3306/dbname

请将 user/password/host/dbname 替换为你在 MySQL 服务上的实际信息。 开发阶段推荐使用本地 MySQL 或 Docker 启动的 MySQL 实例,例如:

docker run --name class-random-mysql \
    -e MYSQL_ROOT_PASSWORD=devpass \
    -e MYSQL_DATABASE=class_random \
    -p 3306:3306 -d mysql:8

对应的 .env 配置示例:

SECRET_KEY=dev-secret
DATABASE_URL=mysql+pymysql://root:devpass@127.0.0.1:3306/class_random

运行项目

cd class-random-caller
source .venv/bin/activate  # 或激活你创建的虚拟环境
python run.py

浏览器打开 http://127.0.0.1:5000/auth/login

  • 第一次可以点击“注册”链接创建一个新账号;
  • 之后使用新账号登录即可使用点名、统计和管理功能。

功能概览

  • 账号管理:
    • 登录/登出。
    • 登录页提供注册新账号入口。
    • 管理页支持删除当前账号及其所有学生和点名数据。
  • 学生管理:
    • 在“管理”页上传 Excel包含学号、姓名、专业列导入学生名单。
    • 每个账号的学生数据隔离存储。
  • 点名:
    • 支持随机点名和按学号顺序点名。
    • 随机点名时,总积分越高被点到概率越低;在一轮内尽量不重复点到同一学生。
    • 支持缺勤、走神、加分三种打分方式,自动累计积分、出勤和随机点名次数。
  • 统计与导出:
    • 展示积分排行榜和最近点名记录。
    • 提供前几名同学积分随时间的折线图,并支持按时间范围和前 N 名过滤。
    • 支持导出学生积分详单和点名记录CSV