[TOC]
# 1 功能概述
硕果云,基于Spring Cloud搭建的新一代微服务教学管理平台,提供多租户、权限管理、考试、练习等功能。
题型支持单选题、多选题、不定项选择题、判断题、简答题等
在线体验:
- 前台:[http://118.25.138.130/](http://118.25.138.130/)
- 后台:[http://118.25.138.130:81/](http://118.25.138.130:81/)
账号:
| 单位ID | 账号 | 密码 | 角色 |
| --------- | -------- | -------- | -------- |
| gitee | admin | 123456 | 管理员 |
| gitee | student | 123456 | 学生 |
| gitee | teacher | 123456 | 老师 |
项目分前台网站和后台管理两部分,前台主要提供考试功能,后台提供基础管理、考试管理功能。
前台主要提供在线考试、在线学习功能
后台管理分为:系统管理、系统监控、考务管理、附件管理、个人管理
系统管理:提供用户、部门、角色、权限等基础管理
- 用户管理:用户信息增删改查、导入导出
- 部门管理:部门信息增删改查
- 角色管理:角色信息增删改查、分配权限
- 菜单管理:菜单信息增删改查、导入导出
- 终端管理:管理OAuth2.0的客户端,如client_id、client_secret、access_token有效时间等
- 路由管理:网关路由管理,包括路由的增删改查、刷新路由等
系统监控:监控服务、日志等
- 日志监控:查看系统日志
- `consul`监控:`consul`服务监控
- `zipkin`监控:监控服务的调用链路
- 服务监控:`spring boot admin`服务监控
- 接口文档:`swagger api`文档
考务管理:提供课程、考试、题库、成绩等管理
- 课程管理:课程信息增删改查
- 考试管理:考试信息增删改查、题目管理、发布回收,题目管理支持简单文本、富文本输入、从题库添加等
- 题库管理:题目分类增删改查、题目信息增删改查
- 成绩管理:查看成绩、导出成绩
- 知识库:知识库增删改查、上传附件
附件管理:项目的所有附件存储在`fastDfs`里,提供统一的管理入口
- 附件列表:管理所有附件,如用户头像、考试附件、知识库附件等。
个人管理:管理个人资料和修改密码
- 个人资料:姓名、头像等基本信息的修改
- 修改密码:修改密码
![](https://img.kancloud.cn/5c/14/5c145d8b31483ebf1e31d923493c1da5_2237x886.png)
# 2 技术选型
- 服务注册与发现:`Consul`
- 熔断器:`Hystrix` + `Turbine`
- 客户端负载均衡:`Ribbon`
- 内部服务调用:`Feign`
- 网关:`Spring Cloud Gateway`
- 认证鉴权:`Spring Cloud OAuth2` + `JWT`
- 程序监控:`Spring Boot Admin` / `Spring Boot Actuator`
- 分布式配置中心:`Spring Cloud Config`
- 分布式调用链监控:`Spring Cloud Sleuth` + `Zipkin`
- 数据库:`MySQL 5.7`
- 部署:`Docker` + `docker-compose`
- 构建工具:`Maven`
- 后台 API 文档:`Swagger`
- 消息队列:`RabbitMQ`
- 文件存储:`七牛云`
- 缓存:`Redis`
- 前端:`vue`
# 3 系统架构
![](https://img.kancloud.cn/89/a6/89a62b34c550d9aeb6ec3122137f94f2_1937x1322.png)
# 4 核心依赖
| 名称 | 版本 |
| --------- | -------- |
| `Spring Boot` | `2.1.11.RELEASE` |
| `Spring Cloud` | `Greenwich.SR4` |
# 5 项目结构
```
common -- 系统公共模块
├── common-core -- 系统公共核心模块
├── common-feign -- 系统公共feign模块
├── common-log -- 系统公共日志模块
└── common-security -- 系统公共安全模块,包括资源服务器配置
modules -- 业务模块
|-- auth-service-parent -- 认证授权服务
|-- auth-service-api -- 认证授权服务api
|-- auth-service -- 认证授权服务具体实现
|-- user-service-parent -- 用户服务
|-- user-service-api -- 用户服务api
|-- user-service -- 用户服务具体实现
|── exam-service-parent -- 考试服务
|-- exam-service-api -- 考试服务api
|-- exam-service -- 考试服务具体实现
└── msc-service-parent -- 消息中心
|-- msc-service-api -- 消息中心api
|-- msc-service -- 消息中心具体实现
config-service -- 配置中心(本地仓库)
gateway-service -- 网关(动态路由)
monitor-service -- spring boot amdin 监控服务
```
`common-core`: 封装通用配置、常量、异常、基础实体等
`common-config`: 通用基础配置
`common-feign`:封装通用feign配置,用于服务调用间携带access_token
`common-log`:封装日志记录逻辑,异步记录日志
`common-security`: 封装OAuth2.0中的资源服务器通用配置
## 6 系统截图
### 前台功能(点击查看大图)
<table>
<tr>
<td><img src="https://gitee.com/wells2333/sg-exam/raw/master/docs/images/image_web.png" alt="首页"/></td>
<td><img src="https://gitee.com/wells2333/sg-exam/raw/master/docs/images/image_web_home.png" alt="首页"/></td>
</tr>
<tr>
<td><img src="https://gitee.com/wells2333/sg-exam/raw/master/docs/images/image_web_exams.png" alt="考试列表"/></td>
<td><img src="https://gitee.com/wells2333/sg-exam/raw/master/docs/images/image_web_courses.png" alt="热门课程"/></td>
</tr>
<tr>
<td><img src="https://gitee.com/wells2333/sg-exam/raw/master/docs/images/image_web_exam.png" alt="PC端考试"/></td>
<td><img src="https://gitee.com/wells2333/sg-exam/raw/master/docs/images/image_web_mobile.jpeg" alt="手机端考试"/></td>
</tr>
<tr>
<td><img src="https://gitee.com/wells2333/sg-exam/raw/master/docs/images/image_web_record.png" alt="考试记录"/></td>
<td><img src="https://gitee.com/wells2333/sg-exam/raw/master/docs/images/image_web_incorrect_answer.png" alt="错题列表"/></td>
</tr>
<tr>
<td><img src="https://gitee.com/wells2333/sg-exam/raw/master/docs/images/image_web_register.png" alt="注册"/></td>
<td><img src="https://gitee.com/wells2333/sg-exam/raw/master/docs/images/image_web_login.png" alt="登录"/></td>
</tr>
</table>
### 后台功能(点击查看大图)
<table>
<tr>
<td><img src="https://gitee.com/wells2333/sg-exam/raw/master/docs/images/image_ui_login.png" alt="登录"/></td>
<td><img src="https://gitee.com/wells2333/sg-exam/raw/master/docs/images/image_ui_exam.png" alt="首页"/></td>
</tr>
<tr>
<td><img src="https://gitee.com/wells2333/sg-exam/raw/master/docs/images/image_ui_menu.png" alt="菜单"/></td>
<td><img src="https://gitee.com/wells2333/sg-exam/raw/master/docs/images/image_ui_menu_manage.png" alt="菜单管理"/></td>
</tr>
<tr>
<td><img src="https://gitee.com/wells2333/sg-exam/raw/master/docs/images/image_ui_role_manage.png" alt="角色管理"/></td>
<td><img src="https://gitee.com/wells2333/sg-exam/raw/master/docs/images/image_ui_route_manage.png" alt="路由管理"/></td>
</tr>
<tr>
<td><img src="https://gitee.com/wells2333/sg-exam/raw/master/docs/images/image_ui_subjects_manage.png" alt="题库管理"/></td>
<td><img src="https://gitee.com/wells2333/sg-exam/raw/master/docs/images/image_ui_subjects_rich_edit.png" alt="题目编辑"/></td>
</tr>
<tr>
<td><img src="https://gitee.com/wells2333/sg-exam/raw/master/docs/images/image_ui_score_manage.png" alt="成绩管理"/></td>
<td><img src="https://gitee.com/wells2333/sg-exam/raw/master/docs/images/image_ui_score_detail.png" alt="成绩详情"/></td>
</tr>
<tr>
<td><img src="https://gitee.com/wells2333/sg-exam/raw/master/docs/images/image_ui_log_manage.png" alt="日志监控"/></td>
<td><img src="https://gitee.com/wells2333/sg-exam/raw/master/docs/images/image_ui_consul.png" alt="consul监控"/></td>
</tr>
</table>
### 系统监控(点击查看大图)
<table>
<tr>
<td><img src="https://gitee.com/wells2333/sg-exam/raw/master/docs/images/image_ui_spring_boot_admin.png" alt="服务监控"/></td>
<td><img src="https://gitee.com/wells2333/sg-exam/raw/master/docs/images/image_ui_spring_boot_admin01.png" alt="服务监控"/></td>
</tr>
<tr>
<td><img src="https://gitee.com/wells2333/sg-exam/raw/master/docs/images/image_ui_swagger.png" alt="swagger文档"/></td>
<td><img src="https://gitee.com/wells2333/sg-exam/raw/master/docs/images/image_ui_elk.png" alt="elk日志"/></td>
</tr>
<tr>
<td><img src="https://gitee.com/wells2333/sg-exam/raw/master/docs/images/image_ui_zipkin1.png" alt="zipkin"/></td>
<td><img src="https://gitee.com/wells2333/sg-exam/raw/master/docs/images/image_ui_zipkin2.png" alt="zipkin"/></td>
</tr>
</table>
# 7 后续规划
- [x] 短信验证码,第三方登录
- [x] 多选题,判断题,简答题,题库完善
- [ ] 调查问卷、二维码分享、移动端答题
- [ ] 作业、考试、知识点管理、考试成绩排名、图表展示
- [ ] 学生签到、请假
- [ ] 智能组卷,在线学习,成绩排名