# 学生管理系统 **Repository Path**: guangbaisen/lms ## Basic Information - **Project Name**: 学生管理系统 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-27 - **Last Updated**: 2026-03-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # LMS 企业学习管理系统 — 项目架构文档 ## 一、整体架构 ``` lms/ ├── lms-backend/ # Java Spring Boot 后端服务(REST API) ├── lms-frontend/ # Vue 2 管理后台 + 学生端 Web 前端 └── lms-miniprogram/ # 微信小程序端(学生移动端入口) ``` ### 三层架构 + 多端接入 | 层 | 技术栈 | 职责 | |---|---|---| | **后端** | Spring Boot 2.3 + MyBatis + MySQL 8.0 | 业务 API、权限、数据持久化 | | **Web 前端** | Vue 2 + Vue Router + Vuex + Element UI + ECharts | 管理后台 & 学生 Web 端 | | **小程序** | 原生微信小程序 | 学生移动端(课程、打卡、签到等) | | **数据库** | MySQL 8.0 (utf8mb4) | 全量数据存储 | --- ## 二、后端架构 (`lms-backend`) **技术栈:** Java 8 / Spring Boot 2.3.12 / MyBatis 2.1.4 / PageHelper 分页 / Fastjson / Lombok ### 分层结构 ``` com.lms/ ├── LmsApplication.java # 启动入口 @SpringBootApplication ├── common/ # 公共类 │ ├── Result.java # 统一响应体 {code, msg, data} │ ├── PageResult.java # 分页响应体 │ └── Constants.java # 常量 ├── config/ # 配置 │ ├── CorsConfig.java # 跨域 │ ├── WebMvcConfig.java # MVC 配置 + 拦截器注册 │ └── MyBatisConfig.java # MyBatis 配置 ├── interceptor/ │ └── AuthInterceptor.java # Token 认证拦截器 ├── controller/ # 45 个 Controller,REST API 入口 ├── service/ # 业务逻辑层 ├── mapper/ # MyBatis Mapper 接口 ├── entity/ # 实体类(POJO) └── resources/ ├── application.yml # 主配置(端口 8080,profile=dev) ├── application-dev.yml # 开发环境配置 └── mapper/*.xml # MyBatis SQL 映射文件(40+ 个) ``` ### 核心业务模块 | 业务域 | 模块 | |---|---| | **认证** | AuthController(登录 / Token) | | **课程学习** | Course, Chapter, Quiz, Assignment, Schedule | | **学员管理** | Student, StudentProfile, Class, Dept, Enrollment | | **考勤打卡** | Attendance, QrCode(扫码签到) | | **审批流** | Leave(请假), Overtime(加班), Dropout(退学) | | **HR 人事** | Staff, Onboarding, StaffTransfer, Resignation, Contract, Salary, Performance | | **互动** | Activity, Vote, Survey, Feedback, CaseShare, Tracking | | **积分 & 营销** | Point, Exchange, Lottery, MemberLevel | | **内容** | Notice(公告), FAQ, Health, Punishment | | **统计** | StatisticsController | ### 数据库初始化 通过 `lms-backend/sql/` 目录下的脚本初始化: | 脚本 | 说明 | |---|---| | `init.sql` | 核心表(department, sys_user, course, chapter 等) | | `schema_hr.sql` | HR 人事相关表 | | `schema_attendance.sql` | 考勤相关表 | | `schema_extended.sql` | 扩展功能表 | | `schema_points_qr.sql` | 积分 & 二维码相关表 | --- ## 三、Web 前端架构 (`lms-frontend`) **技术栈:** Vue 2.6 + Vue Router 3.5 + Vuex 3.6 + Element UI 2.15 + Axios + ECharts 5.4 ### 路由 & 页面 | 路由前缀 | 角色 | 主要页面 | |---|---|---| | `/login` | 公开 | 登录页 | | `/` | **管理员** | 总览、部门、用户、课程、章节、作业、统计、公告、投票、活动、学员、班级、考勤、请假、加班、排班、员工、入职、调岗、离职、绩效、薪资、合同、抽奖、积分兑换、二维码、招生管理、FAQ、反馈、健康、处分、退学 | | `/student/*` | **学生** | 首页、课程学习、章节测验、积分、组织、健康、个人中心、考勤、请假、加班、HR 中心、抽奖、兑换、二维码 | ### 目录结构 ``` lms-frontend/src/ ├── api/ # 40+ 个 API 模块(auth, course, student, attendance...) ├── pages/ │ ├── login/ # 登录 │ ├── admin/ # 管理后台所有页面 │ └── student/ # 学生端页面 ├── router/index.js # 路由 + 前置守卫(Token 校验) ├── store/ # Vuex 状态管理 └── utils/ # auth.js(Token 工具), common.js ``` --- ## 四、微信小程序架构 (`lms-miniprogram`) **原生小程序**,5 个底部 Tab: | Tab | 页面 | 功能 | |---|---|---| | 首页 | `pages/index/index` | 学习概览 | | 课程 | `pages/course/list` | 课程列表、详情、学习、测验、结果 | | 扫码 | `pages/qrcode/scan` | 二维码扫码签到 | | 组织 | `pages/organization/org` | 组织架构、班级详情 | | 我的 | `pages/profile/profile` | 个人中心、绑定手机 | ### 其他页面 活动、案例分享、退学、招生、积分兑换、FAQ、反馈、健康、HR(入职/合同/中心)、请假、加班、公告、抽奖、处分、投票、问卷、跟踪、签到。 ### 目录结构 ``` lms-miniprogram/ ├── app.js / app.json / app.wxss # 小程序入口 & 配置 ├── components/ # 公共组件 │ ├── card/ # 卡片组件 │ ├── empty/ # 空状态组件 │ ├── loading/ # 加载组件 │ └── nav-bar/ # 导航栏组件 ├── pages/ # 业务页面 ├── static/icons/ # TabBar 图标 └── utils/ # 工具(auth, request, util) ``` --- ## 五、系统架构图 ``` ┌─────────────┐ │ MySQL 8.0 │ │ (lms 库) │ └──────┬───────┘ │ JDBC ┌──────┴───────┐ │ lms-backend │ │ Spring Boot │ │ :8080 │ └──┬────┬───┬──┘ │ │ │ REST API ──┘ │ └── REST API │ ┌──────────────────┼──────────────────┐ │ │ │ ┌──────┴──────┐ ┌──────┴──────┐ ┌───────┴─────┐ │ lms-frontend│ │ 微信小程序 │ │ 未来可扩展 │ │ Vue 2 + │ │ 原生小程序 │ │ (App/H5) │ │ Element UI │ │ │ │ │ │ 管理端+学生端│ │ 学生移动端 │ │ │ └─────────────┘ └─────────────┘ └─────────────┘ ``` --- ## 六、服务启动方式 ### 1. 数据库准备 ```bash # 创建数据库 & 导入初始化脚本 mysql -u root -p < lms-backend/sql/init.sql mysql -u root -p < lms-backend/sql/schema_hr.sql mysql -u root -p < lms-backend/sql/schema_attendance.sql mysql -u root -p < lms-backend/sql/schema_extended.sql mysql -u root -p < lms-backend/sql/schema_points_qr.sql ``` > 默认连接:`jdbc:mysql://localhost:3306/lms`,用户名 `root`,密码 `root`(见 `application.yml`)。 ### 2. 启动后端 ```bash cd lms-backend # 方式一:Maven 直接运行 mvn spring-boot:run # 方式二:打包后运行 mvn clean package -DskipTests java -jar target/lms-backend-1.0.0.jar ``` 后端监听:**`http://localhost:8080`** ### 3. 启动 Web 前端 ```bash cd lms-frontend npm install npm run serve ``` 前端开发服务器默认 **`http://localhost:8081`**(或 Vue CLI 自动分配端口),代理到后端 8080。 ### 4. 小程序端 用微信开发者工具导入 `lms-miniprogram/` 目录,配置 `project.config.json` 中的 AppID 后即可预览。 --- ## 七、技术选型总结 | 组件 | 选型 | 版本 | |---|---|---| | 后端框架 | Spring Boot | 2.3.12 | | ORM | MyBatis | 2.1.4 | | 分页 | PageHelper | 1.3.0 | | 数据库 | MySQL | 8.0.25 | | JSON 处理 | Fastjson | 1.2.76 | | 前端框架 | Vue | 2.6.14 | | UI 组件库 | Element UI | 2.15.14 | | 图表 | ECharts | 5.4.3 | | HTTP 客户端 | Axios | 0.27.2 | | 小程序 | 微信原生 | — | #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)