# eClass LMS Mobile App (Flutter)
## 项目概述
- **项目类型**:跨平台移动应用程序 (Android & iOS)
- **主要功能**:LMS(学习管理系统)移动客户端,支持在线课程学习、视频播放、作业提交、考试测验、直播课堂
- **技术栈**:Flutter、Dart、Firebase、REST API、SQLite、WebView
## 模块结构
```
eclass/
├── Documentation/
│ └── Read me.txt # 项目说明文档
└── eclass App/
├── android/ # Android原生配置
│ ├── app/
│ │ ├── build.gradle
│ │ ├── google-services.json # Firebase配置
│ │ └── src/
│ ├── gradle/
│ └── build.gradle
├── ios/ # iOS原生配置
├── lib/ # Flutter Dart源码
│ ├── main.dart # 应用入口
│ ├── screens/ # 页面组件
│ ├── widgets/ # 可复用组件
│ ├── models/ # 数据模型
│ ├── services/ # 网络服务
│ ├── providers/ # 状态管理
│ ├── utils/ # 工具类
│ └── localization/ # 国际化
├── assets/ # 静态资源
│ ├── images/ # 图片资源
│ ├── icons/ # 图标资源
│ ├── fonts/ # 字体文件
│ └── i18n/ # 翻译文件
├── test/ # 测试文件
├── web/ # Web支持
├── pubspec.yaml # 依赖配置
├── pubspec.lock # 依赖锁定
└── README.md # 项目说明
```
## 核心业务逻辑
### 1. 用户认证与账户管理
#### 登录方式
- **邮箱/密码登录**:传统账号密码登录
- **社交登录**:
- Google Sign-In
- Facebook Login
- Firebase Auth
- **手机号登录**:支持OTP验证码登录
#### 用户角色
- **学生**:浏览课程、学习视频、提交作业、参加考试
- **教师**:管理课程、上传内容、批改作业、发布考试
- **管理员**:系统管理、用户管理、数据分析
### 2. 课程学习系统
#### 课程浏览
- **分类浏览**:按学科、难度、价格筛选
- **搜索功能**:关键词搜索课程
- **课程详情**:
- 课程介绍
- 课程大纲
- 讲师信息
- 学员评价
- 价格信息
#### 学习内容
- **视频课程**:
- 在线流媒体播放
- 离线下载观看
- 播放进度记录
- 倍速播放
- **文档资料**:
- PDF阅读器
- 文档下载
- **音频课程**:后台播放支持
### 3. 视频播放系统
#### 播放器功能
```yaml
# 使用的视频播放库
better_player: # 增强版视频播放器
video_player: # 官方视频播放器
youtube_player_flutter: # YouTube视频播放
youtube_player_iframe: # YouTube嵌入播放
```
#### 核心特性
- **多格式支持**:MP4、HLS、DASH
- **画质切换**:自动/手动选择清晰度
- **全屏播放**:横竖屏切换
- **画中画模式**:后台小窗播放
- **字幕支持**:外挂字幕加载
- **播放控制**:
- 播放/暂停
- 进度拖动
- 音量调节
- 亮度调节
- 倍速播放 (0.5x - 2.0x)
### 4. 直播课堂系统
#### 直播集成
```yaml
# 使用的直播SDK
jitsi_meet_wrapper: # Jitsi视频会议
```
#### 功能特性
- **实时音视频**:低延迟直播
- **屏幕共享**:教师可共享屏幕
- **互动白板**:实时协作白板
- **聊天互动**:文字消息实时交流
- **举手发言**:学生申请发言
- **录制回放**:课程录制供回看
### 5. 考试与测验系统
#### 考试功能
- **在线考试**:限时答题
- **多种题型**:
- 单选题
- 多选题
- 判断题
- 填空题
- 简答题
- **防作弊机制**:
- 切屏检测
- 随机抽题
- 选项乱序
- **自动评分**:客观题自动判分
- **成绩统计**:分数统计与排名
### 6. 作业系统
#### 作业流程
1. **作业发布**:教师发布作业任务
2. **作业提交**:学生在线提交答案
3. **作业批改**:教师批改并评分
4. **成绩反馈**:学生查看成绩和评语
#### 提交方式
- 文字输入
- 图片上传
- 文件上传
- 语音录制
### 7. 支付系统
#### 支付集成
```yaml
# 支付SDK
razorpay_flutter: # Razorpay (印度)
paytm: # Paytm (印度)
flutterwave_standard: # Flutterwave (非洲)
payhere_mobilesdk_flutter: # PayHere (斯里兰卡)
flutter_paystack: # Paystack (非洲)
flutter_cashfree_pg_sdk: # Cashfree (印度)
```
#### 支付场景
- 课程购买
- 会员订阅
- 充值钱包
- 证书申请
## 核心代码分析
### pubspec.yaml 依赖分析
```yaml
# 核心依赖
dependencies:
flutter:
sdk: flutter
# 状态管理
provider: ^6.0.4
# 网络请求
http: ^1.3.0
dio: ^5.4.2+1
# 本地存储
shared_preferences: ^2.0.15
sqflite: ^2.2.0+3
flutter_secure_storage: ^9.0.0
# Firebase服务
firebase_core: ^3.10.1
firebase_auth: ^5.4.1
firebase_analytics: ^11.4.1
... (content truncated)