# Smart School Zoom Live Class Addon
## 项目概述
- **项目类型**:CodeIgniter教育管理系统插件/Addon
- **主要功能**:为Smart School系统添加Zoom在线直播课堂功能,支持教师创建直播课程、学生加入在线课堂
- **技术栈**:PHP、CodeIgniter 3、Zoom API、MySQL、JavaScript
## 模块结构
```
smart_school_zoom_live_class_src/
├── installer/
│ ├── addon_info.json # 插件信息配置
│ ├── installer/
│ │ ├── install/
│ │ │ ├── db/
│ │ │ │ └── db.sql # 数据库安装脚本
│ │ │ └── files/
│ │ │ └── application/
│ │ │ ├── config/
│ │ │ │ └── zoom-config.php # Zoom配置
│ │ │ ├── controllers/
│ │ │ │ ├── admin/
│ │ │ │ │ └── Conference.php # 管理员控制器
│ │ │ │ └── user/
│ │ │ │ └── Conference.php # 用户控制器
│ │ │ ├── language/ # 多语言文件
│ │ │ │ ├── English/
│ │ │ │ ├── Chinese/
│ │ │ │ └── ... (50+ languages)
│ │ │ ├── libraries/ # 自定义类库
│ │ │ ├── models/ # 数据模型
│ │ │ └── views/ # 视图文件
│ │ └── uninstall/ # 卸载脚本
│ ├── uninstall/ # 卸载程序
│ └── zoom_live_class.zip # 插件压缩包
└── smart_school_zoom_live_class_update_7.0_to_8.0/ # 版本升级文件
readme.txt # 说明文档
```
## 核心业务逻辑
### 1. Zoom直播课堂流程
#### 教师端操作
1. **创建直播课堂**:
- 选择班级/课程
- 设置直播主题和时间
- 配置Zoom会议参数(密码、等候室等)
- 保存并生成会议链接
2. **管理直播**:
- 查看已创建的直播列表
- 编辑/取消直播
- 查看参会学生名单
- 获取会议开始链接
3. **开始直播**:
- 点击"开始会议"按钮
- 自动跳转Zoom客户端或Web端
- 进行在线授课
#### 学生端操作
1. **查看直播课程**:
- 在课程表中查看即将开始的直播
- 接收直播提醒通知
2. **加入直播**:
- 点击"加入会议"按钮
- 自动跳转Zoom客户端或Web端
- 输入姓名和会议密码(如需要)
3. **课后回顾**:
- 查看直播回放(如已录制)
- 下载课件资料
### 2. Zoom API集成
#### API功能调用
- **创建会议**:调用Zoom API创建新的会议
- **更新会议**:修改会议时间、设置等
- **删除会议**:取消已安排的会议
- **获取会议信息**:查询会议详情和状态
- **获取参会报告**:统计学生出勤情况
#### 配置管理
```php
// zoom-config.php 配置示例
$config['zoom_api_key'] = 'YOUR_ZOOM_API_KEY';
$config['zoom_api_secret'] = 'YOUR_ZOOM_API_SECRET';
$config['zoom_api_endpoint'] = 'https://api.zoom.us/v2/';
```
### 3. 权限控制
#### 管理员权限
- 全局Zoom设置配置
- 查看所有直播课程
- 管理教师直播权限
- 查看统计报告
#### 教师权限
- 创建自己课程的直播
- 管理自己的直播列表
- 查看自己课程的参会学生
#### 学生权限
- 查看自己被分配的课程直播
- 加入直播课堂
- 查看历史直播记录
## 核心代码分析
### addon_info.json 配置
```json
{
"product_id": "27492043",
"name": "Smart School Zoom Live Classes",
"installation_by": "NULL",
"version": "8.0",
"description": "Zoom Live Class addon adds Zoom Live Class module in Smart School...",
"version_list": []
}
```
### 控制器核心功能
#### Admin/Conference.php
- `index()` - 显示所有直播课程列表
- `create()` - 创建新直播表单
- `store()` - 保存直播数据并调用Zoom API
- `edit()` - 编辑直播信息
- `update()` - 更新直播并同步Zoom
- `delete()` - 删除直播并取消Zoom会议
- `reports()` - 生成出勤报告
#### User/Conference.php
- `index()` - 显示用户相关的直播列表
- `join()` - 处理加入会议逻辑
- `history()` - 查看历史直播
### 数据库设计
#### 核心数据表
```sql
-- zoom_conferences 表
CREATE TABLE zoom_conferences (
id INT PRIMARY KEY AUTO_INCREMENT,
class_id INT, -- 关联班级
section_id INT, -- 关联年级/分组
subject_id INT, -- 关联科目
staff_id INT, -- 教师ID
topic VARCHAR(255), -- 会议主题
meeting_id VARCHAR(100), -- Zoom会议ID
meeting_password VARCHAR(50), -- 会议密码
start_time DATETIME, -- 开始时间
duration INT, -- 时长(分钟)
join_url TEXT, -- 加入链接
start_url TEXT, -- 主持人链接
status ENUM('waiting', 'live', 'finished', 'cancelled'),
created_at TIMESTAMP,
updated_at TIMESTAMP
);
-- zoom_conference_attendees 表
CREATE TABLE zoom_conference_attendees (
id INT PRIMARY KEY AUTO_INCREMENT,
conference_id INT,
student_id INT,
join_time DATETIME,
leave_time DATETIME,
duration INT,
status VARCHAR(50)
);
```
### 多语言支持
支持超过50种语言,包括:
- 英语 (English)
- 中文 (Chinese)
- 阿拉伯语 (Arabic)
- 西班牙语 (Spanish)
- 法语 (French)
- 德语 (German)
- 日语 (Japanese)
- 韩语 (Korean)
- 印地语 (Hindi)
- 等等...
## 技术特点
1. **插件化架构**:作为Smart School的Addon模块,独立安装
2. **Zoom官方API**:使用Zoom REST API进行会议管理
3. **CodeIgniter 3**:基于CI3框架开发
4. **多语言支持**:内置50+语言包
5. **权限控制**:基于角色的访问控制
6. **自动同步**:与Zoom云端实时同步会议状态
... (content truncated)