# Live streaming project
**Repository Path**: north-dream-testing/live-streaming-project
## Basic Information
- **Project Name**: Live streaming project
- **Description**: 直播课堂是一个面向教学场景的企业级直播管理系统,专注于为教学和测试练习提供完整的直播生命周期管理。系统采用现代化的微服务架构,支持多角色权限管理、实时音视频互动、直播场次管理、运营数据监控等核心功能。
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-10-23
- **Last Updated**: 2026-10-23
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 北梦测直播课堂
### 面向教学与测试练习的企业级直播系统
[](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html)
[](https://spring.io/projects/spring-boot)
[](https://vuejs.org/)
[](https://www.typescriptlang.org/)
[](https://www.mysql.com/)
[](https://livekit.io/)
[]()
**让每一场直播,都有迹可循**
[快速开始](#-快速开始) • [功能特性](#-功能特性) • [系统架构](#-系统架构) • [界面预览](#-界面预览) • [部署指南](#-部署指南) • [API 文档](#-api-文档)
---
## 项目简介
**北梦测直播课堂**是一个面向教学场景的企业级直播管理系统,专注于为教学和测试练习提供完整的直播生命周期管理。系统采用现代化的微服务架构,支持多角色权限管理、实时音视频互动、直播场次管理、运营数据监控等核心功能。
### 核心价值
- 完整的直播生命周期管理:从创建、开播、监控到结束的全流程追踪
- 多角色权限体系:管理员、主播、观众三种角色,权限隔离清晰
- 实时运营监控:工作台实时展示关键运营指标,支持数据驱动决策
- 音视频质量保障:基于 LiveKit 的专业音视频方案,支持断线重连和异常告警
- 操作审计追踪:所有关键操作留痕,满足合规要求
### 技术栈
| 层级 | 技术选型 | 说明 |
|------|---------|------|
| **后端服务** | Java 17 + Spring Boot 4.0.8 | 企业级后端框架,稳定可靠 |
| **管理前端** | Vue 3 + TypeScript + Element Plus | 现代化前端技术栈 |
| **移动端** | Android + Kotlin + Compose | 原生 Android 应用 |
| **音视频** | LiveKit Server 1.13.7 | 专业音视频通信方案 |
| **数据库** | MySQL 8.4 | 关系型数据存储 |
| **缓存** | Redis 7.4 | 高性能缓存(可选) |
| **对象存储** | MinIO | 分布式对象存储(可选) |
| **容器化** | Docker + Docker Compose | 标准化部署方案 |
---
## 功能特性
### 核心功能模块
#### 1. 用户与权限管理
- **多角色体系**:管理员、主播、观众三种角色
- **账号生命周期**:创建、启用、停用、密码重置
- **权限控制**:基于角色的访问控制(RBAC)
- **操作审计**:记录所有敏感操作,支持追溯查询
#### 2. 直播场次管理
- **场次创建**:支持预约直播、设置标题和分类
- **状态流转**:准备开播 → 直播中 → 直播中断 → 关闭中 → 已结束
- **实时监控**:在线人数、峰值在线、展示人气等指标
- **异常检测**:主播断连、媒体中断、观众播放错误等自动识别
- **恢复机制**:中断后自动重试,超时告警
#### 3. 运营工作台
- **实时数据看板**:总场次、当前直播间、活跃主播、在线人数等
- **时间范围筛选**:支持自定义时间段的数据统计
- **人气算法配置**:可调节展示增量,优化观众体验
- **数据可视化**:图表展示关键指标趋势
#### 4. 举报与审核
- **举报管理**:观众举报处理流程
- **审核处置**:管理员审核举报内容并做出处置决定
- **反馈机制**:处理结果通知举报人
#### 5. 质量监控与告警
- **场次质量比较**:对比不同场次的技术指标
- **异常告警**:实时检测并推送异常事件
- **告警处置**:待处理、处理中、已完成状态管理
- **历史追溯**:完整的告警记录查询
#### 6. 音视频互动
- **实时通话**:基于 WebRTC 的低延迟音视频传输
- **屏幕共享**:支持主播屏幕共享
- **弹幕聊天**:实时消息互动
- **关注互动**:观众关注主播功能
- **摄像头控制**:主播可切换前后摄像头
### 高级特性
- **断线重连**:网络不稳定时自动重连,保证直播连续性
- **多实例支持**:支持多个直播间同时运行
- **数据备份恢复**:完整的数据备份和恢复方案
- **API 限流**:防止接口滥用的保护机制
- **媒体会话管理**:专业的媒体资源调度
---
## 系统架构
### 整体架构
```
┌─────────────────────────────────────────────────────────────┐
│ 客户端层 │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Web 管理端 │ │ Android App │ │ 观众端 H5 │ │
│ │ (Vue 3) │ │ (Compose) │ │ (WebRTC) │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ API 网关层 │
│ Spring Boot RESTful API │
│ 端口:19080 │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ 业务服务层 │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 用户服务 │ │ 直播服务 │ │ 审计服务 │ │ 告警服务 │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ 基础设施层 │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ MySQL │ │ LiveKit │ │ Redis │ │ MinIO │ │
│ │ 数据库 │ │ 音视频 │ │ 缓存 │ │ 存储 │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
└─────────────────────────────────────────────────────────────┘
```
### 技术架构特点
- **分层架构**:清晰的职责分离,便于维护和扩展
- **微服务化**:业务模块独立部署,互不影响
- **容器化部署**:Docker Compose 一键启动所有服务
- **高可用性**:支持服务健康检查和自动重启
- **数据安全**:密码加密存储,敏感操作审计
### 目录结构
```
live-classroom-dev/
├── server/ # Java 后端服务
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/ # 业务代码
│ │ │ └── resources/ # 配置文件
│ │ └── test/ # 测试代码
│ ├── pom.xml # Maven 配置
│ └── Dockerfile # 容器镜像
├── admin/ # Vue 管理前端
│ ├── src/
│ │ ├── components/ # 组件
│ │ ├── views/ # 页面
│ │ └── api/ # 接口调用
│ ├── package.json # 依赖配置
│ └── vite.config.ts # Vite 配置
├── android/ # Android 移动端
│ ├── app/ # 应用模块
│ └── build.gradle # Gradle 配置
├── deploy/ # 部署配置
│ ├── compose.yml # Docker Compose
│ └── dev/ # 开发环境配置
├── scripts/ # 脚本工具
│ ├── init-local.py # 初始化脚本
│ ├── start-infra.sh # 启动基础设施
│ └── start-server.sh # 启动后端服务
└── docs/ # 文档资料
├── screenshots/ # 界面截图
└── *.md # 各类文档
```
---
## 界面预览
### 登录界面
系统提供统一的登录入口,管理员通过 Web 端登录,主播和观众通过 Android App 登录。

*图:管理后台登录界面,支持账号密码登录*
### 运营工作台
管理员登录后的主界面,实时展示关键运营指标。

*图:运营工作台 - 实时数据看板,包含总场次、当前直播间、活跃主播、在线人数等核心指标*
**功能说明:**
- **实时数据更新**:每 10 秒自动刷新当前值
- **时间范围筛选**:支持自定义起始和结束时间
- **历史数据统计**:期间创建场次、开播场次、最高在线、累计观看秒数
- **人气算法配置**:可启用展示增量,目标增量 20-50,每 10 秒波动±2
### 直播管理
管理所有直播场次,支持多维度筛选和查询。

*图:直播场次管理列表,支持按状态、主播、时间、异常类型等条件筛选*
**功能特性:**
- **组合筛选**:关键词/编号、状态、主播 ID、场次 ID、时间范围、异常类型
- **实时刷新**:当前查询每 5 秒自动刷新
- **状态管理**:准备开播、直播中、直播中断、关闭中、已结束
- **数据展示**:编号、标题、主播、状态、展示人气、真实在线、峰值在线、时间信息
- **操作功能**:查看详情、跟进状态、结束直播等
### 账号管理
管理系统用户账号,支持账号的全生命周期管理。

*图:账号管理界面,支持账号的新增、编辑、停用、启用、密码重置*
**功能特性:**
- **账号列表**:展示所有用户账号及其状态
- **新增账号**:创建新的管理员、主播或观众账号
- **账号编辑**:修改账号信息和显示名称
- **状态管理**:启用、停用账号
- **密码重置**:为账号重置登录密码
- **角色分配**:设置用户角色和权限
### 举报管理
处理观众举报内容,维护直播环境秩序。

*图:举报管理界面,展示待处理和已处理的举报记录*
**功能特性:**
- **举报列表**:展示所有举报记录
- **状态筛选**:待处理、处理中、已完成
- **举报详情**:查看举报内容、举报人、被举报场次
- **审核处置**:管理员审核并做出处置决定
- **处理记录**:记录处理过程和结果
### 异常告警
实时监控直播异常,及时推送告警信息。

*图:异常告警界面,展示当前活跃的告警事件*
**告警类型:**
- **主播断连**:主播网络中断,无法继续直播
- **媒体中断**:音视频服务异常
- **观众播放错误**:观众端播放失败
- **观众卡顿**:观众端视频卡顿
- **开播超时**:预约直播未按时开始
- **恢复超时**:中断后未能及时恢复
- **媒体控制失败**:媒体资源调度失败
**功能特性:**
- **实时告警**:异常事件即时推送
- **告警列表**:展示所有告警事件及状态
- **告警详情**:查看告警原因、影响范围、发生时间
- **处置流程**:待处理、处理中、已完成状态管理
- **历史查询**:支持按时间范围查询历史告警
### 操作审计
记录所有敏感操作,支持合规审计和问题追溯。

*图:操作审计界面,展示系统操作记录*
**审计内容:**
- **账号操作**:登录、登出、密码修改
- **直播操作**:创建、开播、结束、中断
- **管理操作**:账号新增、编辑、停用、启用
- **举报处理**:举报审核、处置决定
- **系统操作**:配置修改、权限变更
**功能特性:**
- **操作记录**:详细记录操作人、操作时间、操作内容
- **时间筛选**:支持按时间范围查询
- **操作人筛选**:按用户账号筛选操作记录
- **操作类型筛选**:按操作类别筛选
- **详情查看**:查看操作的完整信息和上下文
### 场次质量比较
对比不同直播场次的技术指标,分析质量差异。

*图:场次质量比较界面,展示多场直播的技术指标对比*
**比较维度:**
- **在线人数**:峰值在线、平均在线、当前在线
- **直播时长**:总时长、有效时长、中断时长
- **网络质量**:延迟、丢包率、带宽使用
- **音视频质量**:分辨率、帧率、码率
- **异常统计**:中断次数、恢复时间、错误类型
**功能特性:**
- **多场次对比**:选择多个场次进行横向对比
- **时间范围**:支持自定义对比的时间段
- **图表展示**:可视化展示各项指标的趋势
- **数据导出**:支持导出对比报告
### 移动端界面(响应式适配)
管理后台采用响应式设计,完美适配移动设备。以下是移动端界面展示:
#### 移动端 - 运营工作台

*图:移动端运营工作台 - 数据看板在移动设备上的展示效果*
#### 移动端 - 操作审计

*图:移动端操作审计 - 操作记录查询界面*
#### 移动端 - 账号管理

*图:移动端账号管理 - 用户账号管理界面*
#### 移动端 - 举报管理

*图:移动端举报管理 - 举报记录处理界面*
#### 移动端 - 异常告警

*图:移动端异常告警 - 告警事件监控界面*
### Android App 界面
Android 原生应用提供主播和观众的移动端体验,采用 Kotlin + Jetpack Compose 开发。
> **说明**:Android App 是独立的原生应用,需要在移动设备上运行。
**主要功能界面包括:**
- **首页**:双列直播卡片、分类筛选、搜索
- **登录**:账号密码登录、手机号登录
- **关注**:已关注主播列表、在线筛选
- **我的**:个人中心、统计数据、功能入口
- **开播准备**:摄像头预览、标题分类、封面上传
- **直播间(主播)**:视频背景、弹幕、控制栏
- **直播间(观众)**:视频播放、弹幕、礼物举报
- **直播结果**:时长统计、峰值人数、离线记录
详细界面说明请参阅 [Android UI 文档](docs/android-ui.md)。
---
## 快速开始
### 环境要求
- **Java**: JDK 17 或更高版本
- **Node.js**: 22.22 或更高版本
- **Python**: 3.x(用于初始化脚本)
- **Docker**: Docker Engine 20.10+ 和 Docker Compose 2.0+
- **操作系统**: Windows 10/11、macOS、Linux
### 安装步骤
#### 1. 克隆项目
```bash
git clone
cd live-classroom-dev
```
#### 2. 初始化本地配置
运行初始化脚本生成随机密码和配置文件:
```bash
# Windows (Git Bash)
python scripts/init-local.py
# macOS/Linux
python3 scripts/init-local.py
```
脚本会在 `.local/dev.env` 生成以下配置:
- 数据库密码(DB_PASSWORD、MYSQL_ROOT_PASSWORD)
- LiveKit API 密钥(LIVEKIT_API_KEY、LIVEKIT_API_SECRET)
- MinIO 存储密码(MINIO_ROOT_USER、MINIO_ROOT_PASSWORD)
- 测试账号密码(LOCAL_ADMIN_PASSWORD、LOCAL_HOST_PASSWORD、LOCAL_VIEWER_PASSWORD)
**重要**:`.local/dev.env` 包含敏感信息,已添加到 `.gitignore`,请勿提交到版本库。
#### 3. 启动基础设施
启动 MySQL 和 LiveKit 容器:
```bash
# Windows (PowerShell)
powershell -Command "docker compose --env-file .local/dev.env -f deploy/compose.yml up -d --wait mysql livekit"
# macOS/Linux
bash scripts/start-infra.sh
```
等待容器健康检查通过(约 30 秒)。
#### 4. 启动后端服务
```bash
# Windows (PowerShell)
$env:JAVA_HOME='C:\jdk17\jdk-17.0.20.1+1' # 根据实际路径调整
$env:PATH="$env:JAVA_HOME\bin;$env:PATH"
$env:SPRING_PROFILES_ACTIVE='local'
# 加载环境变量
Get-Content .\.local\dev.env | ForEach-Object {
if ($_.Trim() -and -not $_.StartsWith('#')) {
$parts = $_.Split('=', 2)
if ($parts.Length -eq 2) {
[System.Environment]::SetEnvironmentVariable($parts[0], $parts[1], 'Process')
}
}
}
# 启动服务
cd server
.\mvnw spring-boot:run
# macOS/Linux
export $(cat .local/dev.env | xargs)
export SPRING_PROFILES_ACTIVE=local
bash scripts/start-server.sh
```
首次启动会:
- 下载 Maven 依赖(约 2-5 分钟)
- 执行数据库迁移(26 个版本,约 2 分钟)
- 初始化测试账号
启动成功后会看到:
```
Started LiveApplication in XXX seconds
Tomcat started on port 19080 (http)
```
#### 5. 启动管理前端
打开新的终端窗口:
```bash
cd admin
# 安装依赖
npm ci
# 启动开发服务器
npm run dev
```
启动成功后访问:http://127.0.0.1:19173
#### 6. 登录系统
使用初始化管理员账号登录:
- **账号**: `admin`
- **密码**: 查看 `.local/dev.env` 中的 `LOCAL_ADMIN_PASSWORD`
---
## 部署指南
### 本地开发部署
#### 启动所有服务
```bash
# 1. 启动基础设施(MySQL + LiveKit)
docker compose --env-file .local/dev.env -f deploy/compose.yml up -d --wait mysql livekit
# 2. 启动后端服务(终端 1)
export $(cat .local/dev.env | xargs)
export SPRING_PROFILES_ACTIVE=local
cd server && ./mvnw spring-boot:run
# 3. 启动管理前端(终端 2)
cd admin && npm run dev
```
#### 可选服务
启动 Redis 和 MinIO(用于缓存和对象存储):
```bash
docker compose --env-file .local/dev.env -f deploy/compose.yml --profile extras up -d
```
#### 停止服务
```bash
# 停止业务服务
# 在后端和管理端终端按 Ctrl+C
# 停止容器(不删除数据)
docker compose --env-file .local/dev.env -f deploy/compose.yml down
# 停止并删除数据(谨慎使用)
docker compose --env-file .local/dev.env -f deploy/compose.yml down -v
```
### 生产环境部署
#### Docker 镜像构建
```bash
# 构建后端镜像
cd server
./mvnw clean package -DskipTests
docker build -t live-classroom-server:1.0.0 .
# 推送镜像
docker tag live-classroom-server:1.0.0 your-registry.com/live-classroom-server:1.0.0
docker push your-registry.com/live-classroom-server:1.0.0
```
#### 生产环境配置
1. **数据库配置**
- 使用独立的 MySQL 实例
- 配置强密码和访问控制
- 启用 SSL/TLS 连接
- 定期备份数据
2. **LiveKit 配置**
- 配置 TURN 服务器用于 NAT 穿透
- 启用 HTTPS/WSS
- 配置域名和 SSL 证书
3. **应用配置**
- 设置 `SERVER_ADDRESS=0.0.0.0` 允许外部访问
- 配置 `LIVEKIT_PUBLIC_URL` 为公网地址
- 启用告警通知(邮件、钉钉、企业微信)
4. **反向代理**
- 使用 Nginx 或 Caddy 作为反向代理
- 配置 HTTPS 证书
- 设置请求限流和缓存
---
## API 文档
### 基础信息
- **Base URL**: `http://127.0.0.1:19080`
- **协议**: HTTP/HTTPS
- **数据格式**: JSON
- **认证方式**: Bearer Token
### 认证接口
#### 用户登录
```http
POST /api/auth/login
Content-Type: application/json
{
"username": "admin",
"password": "your-password"
}
```
**响应示例**:
```json
{
"token": "Ui7RFvA9ImTbm8ol2NusRc2qTh5O6V8mhAxEquNU_5Y",
"user": {
"id": 1,
"username": "admin",
"displayName": "教学管理员",
"role": "ADMIN"
}
}
```
#### 使用 Token
所有需要认证的接口,在请求头中添加:
```http
Authorization: Bearer Ui7RFvA9ImTbm8ol2NusRc2qTh5O6V8mhAxEquNU_5Y
```
### 直播管理接口
#### 获取直播场次列表
```http
GET /api/live/sessions
Authorization: Bearer {token}
# 查询参数
?keyword=关键词
&status=PREPARING|LIVE|INTERRUPTED|CLOSING|ENDED
&hostId=主播ID
&sessionId=场次ID
&page=1
&size=20
```
#### 创建直播场次
```http
POST /api/live/sessions
Authorization: Bearer {token}
Content-Type: application/json
{
"title": "教学直播 - 第一章",
"categoryId": 1,
"scheduledStartTime": "2026-10-22T10:00:00"
}
```
#### 开始直播
```http
POST /api/live/sessions/{sessionId}/start
Authorization: Bearer {token}
```
#### 结束直播
```http
POST /api/live/sessions/{sessionId}/end
Authorization: Bearer {token}
```
### 账号管理接口
#### 获取账号列表
```http
GET /api/admin/accounts
Authorization: Bearer {token}
# 查询参数
?keyword=关键词
&role=ADMIN|HOST|VIEWER
&status=ACTIVE|DISABLED
&page=1
&size=20
```
#### 创建账号
```http
POST /api/admin/accounts
Authorization: Bearer {token}
Content-Type: application/json
{
"username": "teacher01",
"displayName": "张老师",
"password": "secure-password",
"role": "HOST"
}
```
### 健康检查
```http
GET /actuator/health
```
**响应示例**:
```json
{
"status": "UP",
"groups": ["liveness", "readiness"]
}
```
### 错误码说明
| 错误码 | 说明 |
|--------|------|
| 400 | 请求参数错误 |
| 401 | 未认证或 Token 过期 |
| 403 | 无权限访问 |
| 404 | 资源不存在 |
| 429 | 请求过于频繁(限流) |
| 500 | 服务器内部错误 |
---
## 开发指南
### 后端开发
#### 代码结构
```
server/src/main/java/com/beimengce/live/
├── admin/ # 管理后台相关
├── auth/ # 认证授权
├── live/ # 直播业务
├── dashboard/ # 运营数据
└── config/ # 配置类
```
#### 运行测试
```bash
cd server
./mvnw test
```
#### 代码检查
```bash
./mvnw verify
```
### 前端开发
#### 代码结构
```
admin/src/
├── components/ # 公共组件
├── views/ # 页面组件
├── api/ # API 接口
└── utils/ # 工具函数
```
#### 开发模式
```bash
cd admin
npm run dev
```
#### 构建生产版本
```bash
npm run build
```
### Android 开发
#### 构建调试包
```bash
cd android
./gradlew assembleDebug
```
生成的 APK 位于:`android/app/build/outputs/apk/debug/app-debug.apk`
---
## 测试
### 后端测试
```bash
# 运行所有测试
cd server
./mvnw test
# 运行特定测试类
./mvnw test -Dtest=AuthServiceTest
```
### 前端测试
```bash
cd admin
# 运行单元测试
npm run test:unit
# 运行 E2E 测试
npm run test:e2e
```
### API 冒烟测试
```bash
# 基础 API 测试
python3 scripts/smoke-api.py
# 社交功能测试
python3 scripts/smoke-social.py
```
---
## 常见问题
### 1. 后端启动失败:数据库连接错误
**问题**:`Access denied for user 'live_classroom'@'...'`
**解决方案**:
1. 检查 `.local/dev.env` 中的 `DB_PASSWORD` 是否正确
2. 确认 MySQL 容器正在运行:`docker ps`
3. 重新启动后端服务,确保环境变量已加载
### 2. 前端无法访问后端 API
**问题**:浏览器控制台显示 CORS 错误
**解决方案**:
1. 确认后端服务已启动(http://127.0.0.1:19080/actuator/health)
2. 检查后端配置中的 `SERVER_ADDRESS` 是否为 `127.0.0.1`
3. 清除浏览器缓存并刷新页面
### 3. LiveKit 连接失败
**问题**:音视频功能无法使用
**解决方案**:
1. 检查 LiveKit 容器状态:`docker ps | grep livekit`
2. 查看 LiveKit 日志:`docker logs bmc-live-classroom-livekit-1`
3. 确认 `.local/livekit.yaml` 配置正确
### 4. Maven 依赖下载缓慢
**问题**:首次构建下载依赖很慢
**解决方案**:
配置 Maven 镜像(中国用户),编辑 `~/.m2/settings.xml`:
```xml
aliyun
central
https://maven.aliyun.com/repository/central
```
### 5. Android 模拟器无法连接后端
**问题**:App 无法访问 http://127.0.0.1:19080
**解决方案**:
Android 模拟器使用特殊地址访问宿主机:`http://10.0.2.2:19080`
---
## 项目结构
### 核心模块
| 模块 | 说明 | 技术栈 |
|------|------|--------|
| **server** | 后端服务 | Java 17, Spring Boot 4.0.8, MySQL 8.4 |
| **admin** | 管理前端 | Vue 3, TypeScript, Element Plus, Vite |
| **android** | 移动端 | Kotlin, Jetpack Compose, LiveKit SDK |
| **deploy** | 部署配置 | Docker Compose, LiveKit Server |
| **scripts** | 工具脚本 | Python, Bash, PowerShell |
| **docs** | 项目文档 | Markdown, 截图资料 |
---
## 贡献指南
### 开发流程
1. Fork 项目仓库
2. 创建功能分支:`git checkout -b feature/amazing-feature`
3. 提交更改:`git commit -m 'feat: add amazing feature'`
4. 推送分支:`git push origin feature/amazing-feature`
5. 提交 Pull Request
### 代码规范
- **Java**: 遵循 Google Java Style Guide
- **TypeScript**: 遵循项目 ESLint 配置
- **Kotlin**: 遵循 Kotlin Coding Conventions
- **提交信息**: 使用语义化提交信息(Conventional Commits)
---
## 版本历史
### v1.0.0 (2026-10-15)
**第一阶段:基础管理**
- ✅ 用户认证与权限管理
- ✅ 直播场次生命周期管理
- ✅ 运营工作台数据看板
- ✅ 账号管理(新增、编辑、停用、密码重置)
- ✅ 操作审计日志
- ✅ 举报管理流程
- ✅ 异常告警系统
- ✅ 场次质量比较分析
- ✅ 展示人气算法配置
---
## 许可证
本项目为私有项目,仅供教学和内部测试使用。
**使用限制**:
- 不得用于商业目的
- 不得分发或再许可
- 必须保留原始版权声明
---
## 联系方式
### 技术支持
- **项目仓库**: [GitHub Issues](https://github.com/your-org/live-classroom/issues)
- **文档中心**: [docs/](docs/)
- **常见问题**: [FAQ](#-常见问题)
---
## 致谢
感谢以下开源项目和技术支持:
- [Spring Boot](https://spring.io/projects/spring-boot) - 后端框架
- [Vue.js](https://vuejs.org/) - 前端框架
- [LiveKit](https://livekit.io/) - 音视频通信
- [MySQL](https://www.mysql.com/) - 数据库
- [Element Plus](https://element-plus.org/) - UI 组件库
- [Jetpack Compose](https://developer.android.com/jetpack/compose) - Android UI
---