# lms **Repository Path**: kk_lgy/lms ## Basic Information - **Project Name**: lms - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-20 - **Last Updated**: 2026-01-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # LMS - 在线培训与考核专家管理系统 > 基于 "低成本、私有化部署、Java生态" 原则构建的企业级在线培训与考核系统。 ## 📖 项目简介 LMS 是一款专注于企业内部培训与考核的全栈管理系统。系统集成了课程学习、视频点播、在线考试、自动阅卷及电子证书生成等核心业务流程。项目采用前后端分离架构,完全自主研发,不依赖第三方云存储服务,特别适合对数据隐私有较高要求且希望低成本部署的场景。 最新版本已针对移动端 Web 访问进行了深度适配,并实现了基于应用层的智能视频流控方案,保障低配服务器下的高可用性。 ## ✨ 核心亮点 * **🎥 智能视频流控**: 内置自研 `VideoStreamController`,实现应用层 **256KB/s (约 2Mbps)** 智能限速与 HTTP 206 断点续传。在 50+ 人并发观看高清视频时,依然能保障系统核心业务(如登录、交卷)不卡顿,极大降低对服务器带宽的要求。 * **📱 移动端深度适配**: 针对手机和平板设备优化了响应式布局,增加了触摸反馈(Touch Feedback)、手势操作优化,提供接近原生 App 的操作体验。 * **📝 全自动化考务**: 支持 Excel 批量导入题库、灵活组卷、倒计时自动强制交卷、后台即时自动判分。 * **📜 动态证书引擎**: 根据用户归属地自动匹配底图模板,动态合成姓名、编号、日期等信息,生成防伪电子证书(支持 PDF/图片导出)。 * **🔒 私有化存储**: 所有视频、文档、图片资源均存储于本地服务器磁盘,配合 Spring Security 实现严格的资源访问鉴权。 ## 📸 系统展示 | ![展示1](docs/images/img_1.png) | ![展示2](docs/images/img_2.png) | ![展示3](docs/images/img_3.png) | | :---: | :---: | :---: | | ![展示4](docs/images/img_4.png) | ![展示5](docs/images/img_5.png) | ![展示6](docs/images/img_6.png) | | ![展示7](docs/images/img_7.png) | ![展示8](docs/images/img_8.png) | ![展示9](docs/images/img_9.png) | | ![展示10](docs/images/img_10.png) | ![展示11](docs/images/img_11.png) | ![展示12](docs/images/img_12.png) | | ![展示13](docs/images/img_13.png) | ![展示14](docs/images/img_14.png) | ![展示15](docs/images/img_15.png) | ## 🛠 技术栈 ### 后端 (Backend) * **开发语言**: Java 17 (JDK 17) * **核心框架**: Spring Boot 3.4.12 * **ORM 框架**: MyBatis-Plus 3.5.9 * **数据库**: MySQL 8.0 + Druid 连接池 * **缓存中间件**: Redis 7.x * **权限安全**: Spring Security + JWT * **工具组件**: * EasyExcel (报表导入导出) * PDFBox (证书生成) * Knife4j (API 文档) * Flyway (数据库版本管理) ### 前端 (Frontend) * **核心框架**: Vue 3 (Composition API) + TypeScript * **构建工具**: Vite 5.x * **UI 组件库**: Element Plus * **状态管理**: Pinia * **路由管理**: Vue Router 4 * **样式处理**: SCSS + 响应式设计 ## 📂 目录结构 ```text LMS/ ├── src/main/java/com/zfw/lms/ │ ├── config/ # 全局配置 (Web, Security, Redis...) │ ├── controller/ # 控制器层 (含 VideoStreamController) │ ├── service/ # 业务逻辑层 │ └── ... ├── src/main/resources/ │ ├── application-dev.properties # 开发环境配置 │ ├── application-prod.properties # 生产环境配置 (含 Tomcat 调优参数) │ ├── db/migration/ # Flyway 数据库脚本 │ └── static/ # 静态资源 ├── web/ # 前端 Vue3 项目根目录 │ ├── src/views/ # 页面视图 (Course, Exam, User...) │ └── ... ├── file/ # 本地文件存储根目录 (自动生成) └── docs/ # 项目详细文档 ``` ## 🚀 快速开始 ### 1. 环境准备 * **Java**: JDK 17+ * **Database**: MySQL 8.0+ * **Cache**: Redis * **Node.js**: v20+ (用于前端构建) ### 2. 数据库初始化 项目集成了 Flyway,启动后端服务时会自动执行 `src/main/resources/db/migration` 下的 SQL 脚本完成表结构初始化。 ### 3. 配置修改 复制并修改配置文件(如需): * `src/main/resources/application-dev.properties` (开发环境) ### 4. 启动后端 ```bash # 推荐使用 Maven 运行 mvn spring-boot:run -Dspring-boot.run.profiles=dev ``` ### 5. 启动前端 ```bash cd web npm install npm run dev ``` 访问地址: `http://localhost:5173` (前端) 或 `http://localhost:3100` (后端接口) ## 📦 生产部署 建议使用 Maven 打包为 Jar 文件进行部署。 ```bash # 1. 编译打包 (跳过测试) mvn clean package -DskipTests # 2. 运行 Jar 包 # 建议指定 prod 配置文件,该文件已针对高并发视频流进行了 Tomcat 线程池调优 java -jar target/LMS-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod ``` ## 📄 许可证 Copyright © 2024-2025 LMS Team. All Rights Reserved.