# Academy LMS - 课程学习管理系统项目分析
## 项目概述
**Academy LMS** 是一个基于 CodeIgniter 框架的在线学习管理系统(LMS),专为创建和销售在线课程而设计。系统支持视频课程、直播课程、课程市场、多讲师系统等功能。
- **框架**: CodeIgniter 3.x
- **PHP 版本**: 5.3.7+
- **数据库**: MySQL
- **前端**: Bootstrap + jQuery
- **版本**: v7.1 (最新更新包)
---
## 核心功能
### 1. 课程管理
- **课程创建**: 支持视频课程、直播课程
- **课程设置**: 课程信息、价格、分类
- **课程内容**: 章节、课时、附件
- **课程预览**: 免费预览功能
- **课程审核**: 课程发布审核
### 2. 视频课程
- **视频上传**: 本地视频、云存储
- **视频播放**: HTML5 视频播放器
- **视频保护**: 视频防盗链
- **多分辨率**: 支持多种清晰度
- **字幕支持**: 视频字幕
### 3. 直播课程
- **直播集成**: Zoom、Jitsi 等
- **直播排期**: 课程时间表
- **直播录制**: 自动录制保存
- **互动功能**: 聊天、问答
### 4. 用户系统
- **学生注册**: 学生账户管理
- **讲师注册**: 讲师申请、审核
- **用户角色**: 管理员、讲师、学生
- **社交登录**: Google、Facebook 等
- **JWT 认证**: API 认证
### 5. 课程市场
- **课程展示**: 课程列表、搜索
- **课程分类**: 多级分类
- **课程筛选**: 价格、评分、语言
- **课程推荐**: 相关课程
- **课程收藏**: 愿望清单
### 6. 购物车与支付
- **购物车**: 多课程购买
- **支付网关**: PayPal、Stripe、Razorpay 等
- **优惠券**: 折扣码系统
- **发票生成**: 购买凭证
- **退款处理**: 退款管理
### 7. 学习管理
- **课程进度**: 学习进度跟踪
- **证书生成**: 完成证书
- **笔记功能**: 课程笔记
- **问答系统**: 课程问答
- **评价系统**: 课程评分、评论
### 8. 讲师功能
- **讲师面板**: 讲师后台
- **课程统计**: 销售统计
- **收入管理**: 收入提现
- **学生管理**: 学生列表
- **消息系统**: 与学生沟通
### 9. 营销工具
- **优惠券**: 限时优惠
- **推荐奖励**: 推广佣金
- **邮件营销**: 邮件通知
- **SEO优化**: 搜索引擎优化
- **社交分享**: 课程分享
### 10. 管理功能
- **仪表盘**: 数据统计
- **用户管理**: 用户列表、编辑
- **课程管理**: 课程审核、管理
- **订单管理**: 订单列表
- **财务管理**: 收入统计
- **设置管理**: 系统配置
### 11. 多语言支持
- **语言管理**: 多语言切换
- **翻译系统**: 语言包管理
- **RTL支持**: 从右到左语言
### 12. 主题系统
- **前端主题**: 可切换主题
- **页面构建器**: 首页构建器
- **自定义页面**: 页面管理
- **菜单管理**: 导航菜单
### 13. 移动端支持
- **响应式设计**: 适配移动设备
- **PWA支持**: 渐进式Web应用
- **移动应用**: API 支持
### 14. API 系统
- **REST API**: 完整 API 接口
- **API 文档**: 接口文档
- **API 认证**: JWT 认证
- **讲师 API**: 讲师专用接口
---
## 项目结构
```
Academy-LMS/
├── application/ # 应用代码
│ ├── config/ # 配置文件
│ │ ├── autoload.php # 自动加载
│ │ ├── config.php # 主配置
│ │ ├── database.php # 数据库配置
│ │ ├── routes.php # 路由配置
│ │ └── ...
│ ├── controllers/ # 控制器
│ │ ├── Admin.php # 后台管理
│ │ ├── Home.php # 首页
│ │ ├── User.php # 用户
│ │ ├── Payment.php # 支付
│ │ ├── Blog.php # 博客
│ │ ├── Api.php # API
│ │ ├── Api_instructor.php # 讲师API
│ │ ├── Login.php # 登录
│ │ ├── Sign_up.php # 注册
│ │ └── ...
│ ├── models/ # 模型
│ │ ├── Crud_model.php # CRUD基础模型
│ │ ├── User_model.php # 用户模型
│ │ ├── Payment_model.php # 支付模型
│ │ ├── Video_model.php # 视频模型
│ │ ├── Api_model.php # API模型
│ │ ├── Email_model.php # 邮件模型
│ │ └── ...
│ ├── views/ # 视图
│ │ ├── backend/ # 后台视图
│ │ │ ├── admin/ # 管理面板
│ │ │ ├── instructor/ # 讲师面板
│ │ │ └── user/ # 用户面板
│ │ └── frontend/ # 前台视图
│ │ └── [theme]/ # 主题目录
│ ├── helpers/ # 辅助函数
│ ├── libraries/ # 类库
│ ├── hooks/ # 钩子
│ └── language/ # 语言文件
├── assets/ # 静态资源
│ ├── backend/ # 后台资源
│ ├── frontend/ # 前台资源
│ └── global/ # 全局资源
├── system/ # CodeIgniter 系统
├── themes/ # 主题目录
├── uploads/ # 上传文件
├── application/logs/ # 日志文件
├── index.php # 入口文件
└── ...
```
---
## 核心模块详解
### 1. 控制器层 (Controllers)
#### Home 控制器
```php
class Home extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->database();
$this->load->library('session');
$this->load->model('user_model');
}
// 首页
public function home() {
$home = $this->db->where('status', 1)
->get('home_pages')
->row_array();
$page_data['home'] = $home;
$page_data['page_name'] = $page_name;
$this->load->view('frontend/' . get_frontend_settings('theme') . '/index', $page_data);
}
// 课程列表
public function courses() {
// 课程筛选逻辑
// 分页逻辑
// 渲染视图
}
// 课程详情
public function course($slug) {
$course = $this->crud_model->get_course_by_slug($slug);
$page_data['course'] = $course;
... (content truncated)