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.
|
|
1 month ago | |
|---|---|---|
| app | 1 month ago | |
| .env.example | 1 month ago | |
| .envrc | 1 month ago | |
| .gitignore | 1 month ago | |
| README.md | 1 month ago | |
| requirements.txt | 1 month ago | |
| run.py | 1 month ago | |
| shell.nix | 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)。