2025-06-12 10:41:08 +08:00
2025-06-12 10:41:08 +08:00
2025-06-11 19:56:34 +08:00
2025-06-11 19:56:34 +08:00
2025-06-11 19:56:34 +08:00
2025-06-11 19:56:34 +08:00
2025-06-11 19:56:34 +08:00
2025-06-12 10:41:08 +08:00
2025-06-11 19:56:34 +08:00
2025-06-11 19:58:35 +08:00
2025-06-11 19:56:34 +08:00
2025-06-12 00:38:27 +08:00

校园考勤打卡系统

一个基于Flask的校园考勤打卡管理系统支持学生考勤数据的录入、管理、统计和可视化展示。

📋 项目简介

本系统是为校园环境设计的考勤打卡管理平台,能够处理学生的日常打卡数据,提供完整的考勤统计分析功能。系统支持管理员和学生两种角色,实现了考勤数据的全生命周期管理。

主要功能

👨‍💼 管理员功能

  • 学生管理:添加、编辑、删除学生信息
  • 考勤数据导入支持CSV/XLSX格式的批量数据导入
  • 考勤数据管理:查看、编辑、删除考勤记录
  • 统计分析:生成各类考勤统计报表
  • 权限管理:用户角色和权限控制
  • 数据修正:修正错误的考勤时间和状态

👨‍🎓 学生功能

  • 个人考勤查询:查看个人从入学以来的所有考勤记录
  • 考勤统计:按周统计个人出勤时长、迟到、缺勤次数
  • 请假管理:提交请假申请,查看请假记录
  • 个人信息:查看和修改个人基本信息
  • 密码管理:修改登录密码

📊 数据展示

  • 可视化界面:直观的数据展示界面
  • 多维度查询:按年级、学号、姓名进行查询
  • 实时统计:实时显示各类考勤统计数据
  • 历史记录:完整的考勤历史记录追踪

🛠 技术栈

  • 后端框架Flask
  • 数据库MySQL
  • 前端技术HTML5, CSS3, JavaScript
  • 数据处理PandasCSV/XLSX处理
  • 认证授权Flask-Login
  • 模板引擎Jinja2

📁 项目结构

.
├── app/                    # 应用主目录
│   ├── models/            # 数据模型
│   │   ├── user.py        # 用户模型
│   │   ├── student.py     # 学生模型
│   │   └── attendance.py  # 考勤模型
│   ├── routes/            # 路由控制器
│   │   ├── auth.py        # 认证路由
│   │   ├── admin.py       # 管理员路由
│   │   └── student.py     # 学生路由
│   ├── templates/         # 前端模板
│   │   ├── auth/          # 认证相关页面
│   │   ├── admin/         # 管理员页面
│   │   ├── student/       # 学生页面
│   │   └── layout/        # 布局模板
│   ├── static/            # 静态资源
│   │   ├── css/           # 样式文件
│   │   ├── js/            # JavaScript文件
│   │   └── images/        # 图片资源
│   └── utils/             # 工具函数
│       ├── database.py    # 数据库操作
│       ├── auth_helpers.py # 认证辅助函数
│       └── attendance_importer.py # 考勤数据导入
├── config/                # 配置文件
├── tests/                 # 测试文件
├── logs/                  # 日志文件
├── requirements.txt       # 依赖包列表
├── run.py                 # 应用启动文件
└── init_db.py            # 数据库初始化脚本

⚙️ 考勤规则

工作日打卡时段

  • 早上时段6:00-12:00 可打卡要求9:45-11:30
  • 下午时段13:30-18:30 可打卡要求14:45-17:30
  • 晚上时段19:00-23:30 可打卡(非强制)

考勤计算规则

  • 迟到计算:超过规定上班时间即为迟到
  • 缺卡处理:未在规定时间内打卡视为缺卡
  • 时长统计
    • 工作日有效打卡计入实际出勤时长班内工作时长
    • 休息日打卡计入实际出勤时长加班总时长

🚀 安装部署

环境要求

  • Python 3.8+
  • MySQL 5.7+
  • pip

安装步骤

  1. 克隆项目
git clone <repository-url>
cd attendance-system
  1. 创建虚拟环境
python -m venv venv
source venv/bin/activate  # Linux/Mac
# venv\Scripts\activate   # Windows
  1. 安装依赖
pip install -r requirements.txt
  1. 配置数据库
# 创建数据库
mysql -u root -p
CREATE DATABASE attendance_system;
  1. 配置环境变量
# 创建 .env 文件
cp .env.example .env
# 编辑数据库连接信息
  1. 初始化数据库
python init_db.py
  1. 启动应用
python run.py

环境变量配置

.env 文件中配置以下变量:

# 数据库配置
DB_HOST=localhost
DB_USER=your_username
DB_PASSWORD=your_password
DB_NAME=attendance_system

# Flask配置
SECRET_KEY=your_secret_key
DEBUG=True

📖 使用说明

首次使用

  1. 创建管理员账户
python init_db.py --create-admin
  1. 导入学生数据

    • 登录管理员账户
    • 进入"学生管理"页面
    • 使用"批量导入"功能导入学生信息
  2. 上传考勤数据

    • 进入"考勤管理"页面
    • 使用"数据导入"功能上传CSV/XLSX文件

数据导入格式

学生信息CSV格式

学号,姓名,性别,年级,专业,导师,学院,学位类型
2021001,张三,,2021,计算机科学,李教授,计算机学院,学硕

考勤数据CSV格式

学号,姓名,日期,签到时间,签退时间,状态
2021001,张三,2024-01-15,09:30,11:45,正常

👥 用户角色

管理员权限

  • 查看所有学生信息和考勤数据
  • 管理学生账户(增删改查)
  • 导入和管理考勤数据
  • 生成统计报表
  • 系统配置管理

学生权限

  • 查看个人考勤记录
  • 查看个人统计数据
  • 申请请假
  • 修改个人信息
  • 修改登录密码

📊 数据统计

系统提供多维度的数据统计功能:

  • 个人统计:个人出勤时长、迟到次数、缺勤次数
  • 年级统计:按年级汇总的考勤数据
  • 时间统计:按周、月、学期的考勤趋势
  • 排行榜:出勤时长排名、迟到次数排名等

🔧 开发说明

添加新功能

  1. 在对应的模型文件中添加数据模型
  2. 在路由文件中添加业务逻辑
  3. 创建相应的HTML模板
  4. 更新CSS和JavaScript文件

数据库迁移

# 备份数据库
mysqldump -u username -p attendance_system > backup.sql

# 修改数据库结构后重新初始化
python init_db.py --reset

📄 许可证

MIT License

🤝 贡献指南

  1. Fork 本项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 创建 Pull Request

📞 联系我们

如有问题或建议,请通过以下方式联系:

🎯 Todo List

  • 移动端适配
  • 数据导出功能
  • 邮件通知功能
  • 更多统计图表
  • API接口文档
  • 单元测试覆盖

如果这# 校园考勤打卡系统

一个基于Flask的校园考勤打卡管理系统支持学生考勤数据的录入、管理、统计和可视化展示。

📋 项目简介

本系统是为校园环境设计的考勤打卡管理平台,能够处理学生的日常打卡数据,提供完整的考勤统计分析功能。系统支持管理员和学生两种角色,实现了考勤数据的全生命周期管理。

主要功能

👨‍💼 管理员功能

  • 学生管理:添加、编辑、删除学生信息
  • 考勤数据导入支持CSV/XLSX格式的批量数据导入
  • 考勤数据管理:查看、编辑、删除考勤记录
  • 统计分析:生成各类考勤统计报表
  • 权限管理:用户角色和权限控制
  • 数据修正:修正错误的考勤时间和状态

👨‍🎓 学生功能

  • 个人考勤查询:查看个人从入学以来的所有考勤记录
  • 考勤统计:按周统计个人出勤时长、迟到、缺勤次数
  • 个人信息:查看和修改个人基本信息
  • 密码管理:修改登录密码

📊 数据展示

  • 可视化界面:直观的数据展示界面
  • 多维度查询:按年级、学号、姓名进行查询
  • 实时统计:实时显示各类考勤统计数据
  • 历史记录:完整的考勤历史记录追踪

🛠 技术栈

  • 后端框架Flask
  • 数据库MySQL
  • 前端技术HTML5, CSS3, JavaScript
  • 数据处理PandasCSV/XLSX处理
  • 认证授权Flask-Login
  • 模板引擎Jinja2

📁 项目结构

.
├── app/                    # 应用主目录
│   ├── models/            # 数据模型
│   │   ├── user.py        # 用户模型
│   │   ├── student.py     # 学生模型
│   │   └── attendance.py  # 考勤模型
│   ├── routes/            # 路由控制器
│   │   ├── auth.py        # 认证路由
│   │   ├── admin.py       # 管理员路由
│   │   └── student.py     # 学生路由
│   ├── templates/         # 前端模板
│   │   ├── auth/          # 认证相关页面
│   │   ├── admin/         # 管理员页面
│   │   ├── student/       # 学生页面
│   │   └── layout/        # 布局模板
│   ├── static/            # 静态资源
│   │   ├── css/           # 样式文件
│   │   ├── js/            # JavaScript文件
│   │   └── images/        # 图片资源
│   └── utils/             # 工具函数
│       ├── database.py    # 数据库操作
│       ├── auth_helpers.py # 认证辅助函数
│       └── attendance_importer.py # 考勤数据导入
├── config/                # 配置文件
├── tests/                 # 测试文件
├── logs/                  # 日志文件
├── requirements.txt       # 依赖包列表
├── run.py                 # 应用启动文件
└── init_db.py            # 数据库初始化脚本

⚙️ 考勤规则

工作日打卡时段

  • 早上时段6:00-12:00 可打卡要求9:45-11:30
  • 下午时段13:30-18:30 可打卡要求14:45-17:30
  • 晚上时段19:00-23:30 可打卡(非强制)

考勤计算规则

  • 迟到计算:超过规定上班时间即为迟到
  • 缺卡处理:未在规定时间内打卡视为缺卡
  • 时长统计
    • 工作日有效打卡计入实际出勤时长班内工作时长
    • 休息日打卡计入实际出勤时长加班总时长

🚀 安装部署

环境要求

  • Python 3.8+
  • MySQL 5.7+
  • pip

安装步骤

  1. 克隆项目
git clone <repository-url>
cd attendance-system
  1. 创建虚拟环境
python -m venv venv
source venv/bin/activate  # Linux/Mac
# venv\Scripts\activate   # Windows
  1. 安装依赖
pip install -r requirements.txt
  1. 配置数据库
# 创建数据库
mysql -u root -p
CREATE DATABASE attendance_system;
  1. 配置环境变量
# 创建 .env 文件
cp .env.example .env
# 编辑数据库连接信息
  1. 初始化数据库
python init_db.py
  1. 启动应用
python run.py

环境变量配置

.env 文件中配置以下变量:

# 数据库配置
DB_HOST=localhost
DB_USER=your_username
DB_PASSWORD=your_password
DB_NAME=attendance_system

# Flask配置
SECRET_KEY=your_secret_key
DEBUG=True

📖 使用说明

首次使用

  1. 创建管理员账户
python init_db.py --create-admin
  1. 导入学生数据

    • 登录管理员账户
    • 进入"学生管理"页面
    • 使用"批量导入"功能导入学生信息
  2. 上传考勤数据

    • 进入"考勤管理"页面
    • 使用"数据导入"功能上传CSV/XLSX文件

数据导入格式

学生信息CSV格式

学号,姓名,性别,年级,专业,导师,学院,学位类型
2021001,张三,,2021,计算机科学,李教授,计算机学院,学硕

考勤数据CSV格式

学号,姓名,日期,签到时间,签退时间,状态
2021001,张三,2024-01-15,09:30,11:45,正常

👥 用户角色

管理员权限

  • 查看所有学生信息和考勤数据
  • 管理学生账户(增删改查)
  • 导入和管理考勤数据
  • 生成统计报表
  • 系统配置管理

学生权限

  • 查看个人考勤记录
  • 查看个人统计数据
  • 申请请假
  • 修改个人信息
  • 修改登录密码

📊 数据统计

系统提供多维度的数据统计功能:

  • 个人统计:个人出勤时长、迟到次数、缺勤次数
  • 年级统计:按年级汇总的考勤数据
  • 时间统计:按周、月、学期的考勤趋势
  • 排行榜:出勤时长排名、迟到次数排名等

🔧 开发说明

添加新功能

  1. 在对应的模型文件中添加数据模型
  2. 在路由文件中添加业务逻辑
  3. 创建相应的HTML模板
  4. 更新CSS和JavaScript文件

数据库迁移

# 备份数据库
mysqldump -u username -p attendance_system > backup.sql

# 修改数据库结构后重新初始化
python init_db.py --reset

📄 许可证

MIT License

🤝 贡献指南

  1. Fork 本项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 创建 Pull Request

📞 联系我们

如有问题或建议,请通过以下方式联系:

🎯 Todo List

  • 移动端适配
  • 数据导出功能
  • 邮件通知功能
  • 更多统计图表
  • API接口文档
  • 单元测试覆盖

如果这个项目对你有帮助请给一个star吧

Description
陈慧明考勤打卡系统
Readme 322 KiB
Languages
HTML 60.4%
Python 38.5%
CSS 1%
JavaScript 0.1%