[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/spring-microservice-exam/raw/master/docs/images/image_web.png" alt="首页"/></td> <td><img src="https://gitee.com/wells2333/spring-microservice-exam/raw/master/docs/images/image_web_home.png" alt="首页"/></td> </tr> <tr> <td><img src="https://gitee.com/wells2333/spring-microservice-exam/raw/master/docs/images/image_web_exams.png" alt="考试列表"/></td> <td><img src="https://gitee.com/wells2333/spring-microservice-exam/raw/master/docs/images/image_web_courses.png" alt="热门课程"/></td> </tr> <tr> <td><img src="https://gitee.com/wells2333/spring-microservice-exam/raw/master/docs/images/image_web_exam.png" alt="PC端考试"/></td> <td><img src="https://gitee.com/wells2333/spring-microservice-exam/raw/master/docs/images/image_web_mobile.jpeg" alt="手机端考试"/></td> </tr> <tr> <td><img src="https://gitee.com/wells2333/spring-microservice-exam/raw/master/docs/images/image_web_record.png" alt="考试记录"/></td> <td><img src="https://gitee.com/wells2333/spring-microservice-exam/raw/master/docs/images/image_web_incorrect_answer.png" alt="错题列表"/></td> </tr> <tr> <td><img src="https://gitee.com/wells2333/spring-microservice-exam/raw/master/docs/images/image_web_register.png" alt="注册"/></td> <td><img src="https://gitee.com/wells2333/spring-microservice-exam/raw/master/docs/images/image_web_login.png" alt="登录"/></td> </tr> </table> ### 后台功能(点击查看大图) <table> <tr> <td><img src="https://gitee.com/wells2333/spring-microservice-exam/raw/master/docs/images/image_ui_login.png" alt="登录"/></td> <td><img src="https://gitee.com/wells2333/spring-microservice-exam/raw/master/docs/images/image_ui_exam.png" alt="首页"/></td> </tr> <tr> <td><img src="https://gitee.com/wells2333/spring-microservice-exam/raw/master/docs/images/image_ui_menu.png" alt="菜单"/></td> <td><img src="https://gitee.com/wells2333/spring-microservice-exam/raw/master/docs/images/image_ui_menu_manage.png" alt="菜单管理"/></td> </tr> <tr> <td><img src="https://gitee.com/wells2333/spring-microservice-exam/raw/master/docs/images/image_ui_role_manage.png" alt="角色管理"/></td> <td><img src="https://gitee.com/wells2333/spring-microservice-exam/raw/master/docs/images/image_ui_route_manage.png" alt="路由管理"/></td> </tr> <tr> <td><img src="https://gitee.com/wells2333/spring-microservice-exam/raw/master/docs/images/image_ui_subjects_manage.png" alt="题库管理"/></td> <td><img src="https://gitee.com/wells2333/spring-microservice-exam/raw/master/docs/images/image_ui_subjects_rich_edit.png" alt="题目编辑"/></td> </tr> <tr> <td><img src="https://gitee.com/wells2333/spring-microservice-exam/raw/master/docs/images/image_ui_score_manage.png" alt="成绩管理"/></td> <td><img src="https://gitee.com/wells2333/spring-microservice-exam/raw/master/docs/images/image_ui_score_detail.png" alt="成绩详情"/></td> </tr> <tr> <td><img src="https://gitee.com/wells2333/spring-microservice-exam/raw/master/docs/images/image_ui_log_manage.png" alt="日志监控"/></td> <td><img src="https://gitee.com/wells2333/spring-microservice-exam/raw/master/docs/images/image_ui_consul.png" alt="consul监控"/></td> </tr> </table> ### 系统监控(点击查看大图) <table> <tr> <td><img src="https://gitee.com/wells2333/spring-microservice-exam/raw/master/docs/images/image_ui_spring_boot_admin.png" alt="服务监控"/></td> <td><img src="https://gitee.com/wells2333/spring-microservice-exam/raw/master/docs/images/image_ui_spring_boot_admin01.png" alt="服务监控"/></td> </tr> <tr> <td><img src="https://gitee.com/wells2333/spring-microservice-exam/raw/master/docs/images/image_ui_swagger.png" alt="swagger文档"/></td> <td><img src="https://gitee.com/wells2333/spring-microservice-exam/raw/master/docs/images/image_ui_elk.png" alt="elk日志"/></td> </tr> <tr> <td><img src="https://gitee.com/wells2333/spring-microservice-exam/raw/master/docs/images/image_ui_zipkin1.png" alt="zipkin"/></td> <td><img src="https://gitee.com/wells2333/spring-microservice-exam/raw/master/docs/images/image_ui_zipkin2.png" alt="zipkin"/></td> </tr> </table> # 7 后续规划 - [x] 短信验证码,第三方登录 - [x] 多选题,判断题,简答题,题库完善 - [ ] 调查问卷、二维码分享、移动端答题 - [ ] 作业、考试、知识点管理、考试成绩排名、图表展示 - [ ] 学生签到、请假 - [ ] 智能组卷,在线学习,成绩排名