codecanyon-45639462-ramom-school-qr-code-attendence

作者 : tideit 本文共2589个字,预计阅读时间需要7分钟 发布时间: 2026-03-11 共3人阅读
# Ramom School QR Code Attendance - 学校二维码考勤插件

## 项目概述
- **项目类型**:CodeIgniter插件/Addon
- **主要功能**:为Ramom多分校学校管理系统添加二维码考勤功能,支持学生和员工通过扫描ID卡上的二维码进行考勤
- **技术栈**:
  - 后端:PHP, CodeIgniter 3.x
  - 前端:HTML5, CSS3, JavaScript, Bootstrap
  - 二维码:QRCode.js库
  - 数据库:MySQL

## 模块结构

### 目录结构
```
ramom_school_qrcode_addon/
├── application/
│   ├── controllers/              # 控制器
│   │   ├── Qrcode_attendance.php # 考勤主控制器
│   │   ├── Qrcode_auto_submission.php # 自动提交控制器
│   │   └── Qr_code_settings.php  # 设置控制器
│   ├── models/                   # 数据模型
│   │   ├── Qrcode_attendance_model.php
│   │   └── Qrcode_auto_submission_model.php
│   └── views/                    # 视图模板
│       ├── card_manage/          # 卡片管理视图
│       ├── qrcode_attendance/    # 考勤视图
│       ├── qrcode_auto_submission/ # 自动提交视图
│       └── layout/               # 布局视图
├── assets/                       # 静态资源
│   ├── css/qr-code.css          # 二维码样式
│   ├── js/qrcode_attendance.js  # 考勤JavaScript
│   └── vendor/qrcode/           # QRCode.js库
└── config.json                   # 插件配置
```

### 主要功能模块

1. **二维码考勤模块**
   - 学生考勤扫描
   - 员工考勤扫描(支持上下班时间记录)
   - 实时考勤确认弹窗
   - 迟到/早退标记

2. **ID卡管理模块**
   - ID卡模板设计
   - 二维码生成与打印
   - 加密二维码(Base64编码)

3. **自动提交模块**
   - 定时自动考勤提交
   - 缺勤自动标记
   - 家长短信通知

4. **报表模块**
   - 学生考勤报表
   - 员工考勤报表
   - 按日期筛选

## 核心业务逻辑

### 1. 二维码生成与验证流程
```
用户数据 → Base64编码 → 二维码生成 → ID卡打印 → 扫描解码 → 验证用户 → 记录考勤
```

**编码格式**:`类型标识-用户ID`(如:`s-123`表示学生,`e-456`表示员工)

### 2. 考勤记录流程
```
扫描二维码 → 解码用户ID → 查询用户信息 → 显示确认弹窗 → 提交考勤 → 记录到数据库
```

**关键特性**:
- 无需选择班级、部门等,自动识别
- 支持迟到标记和备注
- 员工支持上下班时间记录
- 防止重复考勤检查

### 3. 自动考勤提交(Cron Job)
```
定时任务 → 检查未考勤学生 → 自动标记为缺勤 → 发送短信通知家长
```

**配置要求**:
- 服务器Cron Job每10分钟运行一次
- 可配置各班级考勤截止时间

### 4. 权限控制
- 基于Ramom系统的权限系统
- 支持角色级别的访问控制
- 分校数据隔离

## 核心代码分析

### Qrcode_attendance.php - 考勤控制器
```php
class Qrcode_attendance extends Admin_Controller
{
    public function getUserByQrcode()
    {
        // 1. 解码二维码数据(Base64解码)
        $userData = trim(base64_decode($this->input->post('data')));
        $userData = explode("-", $userData);
        
        // 2. 验证二维码格式
        if ($userData[0] != 'e' && $userData[0] != 's') {
            // 无效二维码处理
        }
        
        // 3. 区分学生和员工处理
        if ($userData[0] == 'e') {
            // 员工考勤处理(支持上下班)
        } else {
            // 学生考勤处理
        }
        
        // 4. 检查重复考勤
        // 5. 返回用户信息到确认弹窗
    }
}
```

### 关键特性

1. **二维码加密**
   - 使用Base64编码用户数据
   - 格式:`类型前缀-用户ID`
   - 防止直接读取敏感信息

2. **浏览器原生扫描**
   - 无需第三方APP
   - 支持Android和iOS原生相机
   - 使用getUserMedia API访问摄像头

3. **实时反馈**
   - 扫描成功音效
   - 确认弹窗显示用户详情
   - 即时考勤状态更新

4. **数据同步**
   - 与主系统考勤表同步
   - 二维码考勤和手动考勤统一报表

### 数据库集成
- 复用Ramom系统的`student_attendance`表
- 复用Ramom系统的`staff_attendance`表
- 添加`qr_code`字段标记考勤方式

### JavaScript核心功能
```javascript
// QRCode.js库集成
// 摄像头访问和二维码扫描
// AJAX提交考勤数据
// 实时反馈和音效
```

## 安装要求

### 前置条件
- Ramom多分校学校管理系统 v7.0+
- PHP 7.4+
- MySQL 5.7+
- 已安装Ramom系统并正常运行

### 安装步骤
1. 下载插件压缩包
2. 登录Ramom系统后台
3. 进入Addon Manager → Install Addon
4. 输入购买码
5. 上传`ramom_qr_attendence_addon.zip`
6. 点击Install Now
7. 清除浏览器缓存

## 配置说明

### 基本设置
- **二维码文本**:可自定义显示在ID卡上的文字
- **相机选择**:前后摄像头切换(移动设备)
- **自动提交**:启用/禁用自动考勤提交
- **确认弹窗**:启用/禁用扫描后确认弹窗

### Cron Job配置
```bash
# 每10分钟运行一次
curl http://yourdomain.com/qrcode_auto_submission/cron_job/your-secret-key
```

## 版本历史

### v3.0 (2025-12-31)
- 添加自动考勤提交功能
- 添加缺勤学生短信通知
- 兼容Ramom Multi Branch School v7.0
- 修复数据表导出问题

### v2.0 (2024-02-08)
- 插件化安装支持
- 自动识别学生和员工
- 自动考勤选项(无需确认弹窗)

... (content truncated)

资源在线 » codecanyon-45639462-ramom-school-qr-code-attendence

常见问题FAQ

发表评论