diff --git a/README.md b/README.md index 78c007e..664584a 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ - 学生管理:新增/编辑/删除学生、批量导入学生(JSON) - 操行分管理:对学生进行加减分、撤销任何扣分记录、查看全班历史记录、导出德育分记录 - 作业管理:发布作业、查看提交情况 -- 考勤管理:查看全班考勤记录、自定义考勤扣分值 +- 考勤管理:按时段(早上 7:15/中午 14:00/晚修 19:30)记录考勤、自定义考勤扣分值 - 科目管理:动态增删学科 - 管理员管理:添加/编辑/删除/重置密码班长/科代表/考勤委员/劳动委员/志愿委员 - 学期管理:创建/编辑/删除学期、激活学期、归档学期(含考勤/作业统计快照)、关联历史记录、归档后可选重置分数 @@ -40,7 +40,7 @@ - 历史记录:仅查看自己提交的操作记录 **考勤委员权限:** -- 考勤管理:记录考勤状态、关联扣分(仅扣分,按规则) +- 考勤管理:按时段(早上 7:15/中午 14:00/晚修 19:30)记录考勤状态、关联扣分(仅扣分,按规则) - 历史记录:仅查看自己提交的操作记录 **劳动委员权限:** @@ -51,6 +51,16 @@ - 操行分管理:以服务时长为由进行加分(仅加分) - 历史记录:仅查看自己提交的操作记录 +## 技术栈 +## 安全特性 + +- JWT Token + PHP Session 双轨制认证 +- Redis 管理登录态,支持空闲超时自动失效 +- 全链路输入校验:Pydantic Schema 层(正则/长度/范围约束)+ Service 层(业务逻辑校验) +- 输入过滤中间件(XSS/SQL 注入防护) +- 密码 bcrypt 加密存储 +- 操作日志记录 + ## 技术栈 | 层级 | 技术 | 版本 | @@ -60,7 +70,6 @@ | 缓存 | Redis | 7.x | | 前端 | PHP | 8.0 | | Web服务器 | Nginx | 1.28+ | - ## 文件结构 ``` @@ -255,6 +264,7 @@ classmanager/ | v1.0 | 2026.4.19 | 初始版本发布,包含基础功能 | | v1.1 | 2026.4.20 | 更新家长端查看加减分记录功能 | | v1.2 | 2026.4.22 | 学期管理、env配置加减分上限、排行榜百分比筛选、撤销操作日志、调试入口开关 | +| v1.3 | 2026.4.27 | 考勤时段系统(早上/中午/晚修三时段)、历史记录扣分类型筛选、管理员/科目信息编辑、全链路输入安全校验 | ## 许可证 diff --git a/docs/cadre.md b/docs/cadre.md index 0d12097..99dae92 100644 --- a/docs/cadre.md +++ b/docs/cadre.md @@ -87,22 +87,23 @@ #### 考勤管理 (attendance.php) +考勤按**时段**管理,每日分三个时段独立记录:早上(7:15)、中午(14:00)、晚修(19:30)。 + **添加考勤记录**: -1. 点击"添加考勤"按钮 -2. 选择学生(支持多选) -3. 选择日期 -4. 选择考勤状态:正常 / 迟到 / 缺勤 / 请假 -5. 填写备注(可选) -6. 设置是否关联扣分(默认开启) -7. 点击"确认提交" +1. 选择**日期**和**时段**(早上/中午/晚修) +2. 在状态按钮组中选择考勤状态:缺勤 / 迟到 / 请假 +3. 可选填写自定义扣分值(留空使用默认值) +4. 可选填写原因 +5. 在学生方格中**点击选择**有考勤异常的学生 +6. 点击"提交考勤"批量提交 **默认扣分规则**: | 考勤状态 | 默认扣分 | |---------|---------| -| 缺勤 | 5分 | -| 迟到 | 2分 | -| 请假 | 1分 | +| 缺勤 | 3分 | +| 迟到 | 1分 | +| 请假 | 0分 | #### 历史记录 diff --git a/docs/guide/cadre.md b/docs/guide/cadre.md index 47149e0..d17b6b7 100644 --- a/docs/guide/cadre.md +++ b/docs/guide/cadre.md @@ -34,8 +34,8 @@ - **科目管理**:添加/编辑/删除科目 ### 考勤委员 -- **添加考勤**:选择学生 → 选择日期和状态 → 填写备注 → 确认提交 -- 默认扣分:缺勤5分、迟到2分、请假1分 +- **添加考勤**:选择日期和时段(早上7:15/中午14:00/晚修19:30)→ 选择状态 → 点击选择异常学生 → 提交考勤 +- 默认扣分:缺勤3分、迟到1分、请假0分 ### 劳动委员 - **加减分**:以卫生值日为由进行 ±1 分操作 diff --git a/docs/guide/teacher.md b/docs/guide/teacher.md index 2c6cb5e..746672f 100644 --- a/docs/guide/teacher.md +++ b/docs/guide/teacher.md @@ -20,12 +20,12 @@ |------|------| | 首页 | 查看学生总数、排行榜、快捷入口 | | 操行分管理 | 对学生加减分(无限制)、导出德育分记录 | -| 历史记录 | 查看/导出/撤销全班记录 | +| 历史记录 | 查看/导出/撤销全班记录,支持按扣分类型筛选 | | 作业管理 | 发布缺交作业记录、关联扣分 | -| 考勤管理 | 添加考勤记录、自定义扣分值 | +| 考勤管理 | 按时段(早上/中午/晚修)记录考勤、自定义扣分值 | | 学生管理 | 新增/编辑/删除/批量导入学生 | -| 科目管理 | 增删改科目 | -| 管理员管理 | 添加/编辑/删除/重置密码班干部账号 | +| 科目管理 | 增删改科目信息 | +| 管理员管理 | 添加/编辑姓名和角色/删除/重置密码班干部账号 | | 学期管理 | 创建/编辑/删除/归档学期、关联历史记录、归档重置分数 | | 修改密码 | 修改登录密码 | diff --git a/docs/student.md b/docs/student.md index f93d4de..e99d092 100644 --- a/docs/student.md +++ b/docs/student.md @@ -52,7 +52,8 @@ 查看个人考勤记录: -- 按月份显示考勤记录 +- 考勤按**时段**记录:早上(7:15)、中午(14:00)、晚修(19:30) +- 统计卡片显示出勤、缺勤、迟到、请假次数 - 每条记录包含: - 日期 - 考勤状态(正常/迟到/缺勤/请假) diff --git a/docs/teacher.md b/docs/teacher.md index d0b3f12..107d73a 100644 --- a/docs/teacher.md +++ b/docs/teacher.md @@ -59,7 +59,9 @@ - 支持筛选条件: - **开始日期** / **结束日期**:按时间范围筛选 - **学生**:按学生筛选 + - **扣分类型**:按来源筛选(手动加减分 / 作业 / 考勤) - 点击"查询"按钮刷新列表 +- 已撤销的记录会显示"由 XXX 撤销"标记 #### 导出历史记录 1. 设置筛选条件(可选) @@ -99,27 +101,36 @@ ### 5. 考勤管理 (attendance.php) +考勤按**时段**管理,每日分三个时段独立记录: + +| 时段 | 标识 | 时间点 | +|------|------|--------| +| 早上 | morning | 7:15 | +| 中午 | afternoon | 14:00 | +| 晚修 | evening | 19:30 | + +每个学生每天每个时段最多一条考勤记录。 + #### 添加考勤记录 -1. 点击"添加考勤"按钮 -2. 选择学生(支持多选) -3. 选择日期 -4. 选择考勤状态:正常 / 迟到 / 缺勤 / 请假 -5. 填写备注(可选) -6. 设置是否关联扣分(默认开启) -7. 可自定义扣分值 -8. 点击"确认提交" +1. 选择**日期**和**时段**(早上/中午/晚修) +2. 在状态按钮组中选择考勤状态:缺勤 / 迟到 / 请假 +3. 可选填写自定义扣分值(留空使用默认值) +4. 可选填写原因 +5. 在学生方格中**点击选择**有考勤异常的学生(已记录的时段会显示为虚线框) +6. 点击"全选"可快速选中所有未记录的学生 +7. 点击"提交考勤"批量提交 #### 查看考勤记录 -- 按日期和学生筛选考勤记录 -- 每条记录显示:学号、姓名、日期、考勤状态、备注 +- 按日期筛选考勤记录 +- 每条记录显示:学号、姓名、状态、原因、记录人、扣分情况 **默认扣分规则**: | 考勤状态 | 默认扣分 | |---------|---------| -| 缺勤 | 5分 | -| 迟到 | 2分 | -| 请假 | 1分 | +| 缺勤 | 3分 | +| 迟到 | 1分 | +| 请假 | 0分 | --- @@ -177,7 +188,7 @@ 4. 添加成功后会显示管理员信息和初始密码(请妥善保存) #### 编辑管理员 -- 点击"编辑"按钮修改角色类型 +- 点击"编辑"按钮可修改**姓名**和**角色类型** #### 重置密码 1. 点击"重置密码"按钮