# mentor-api **Repository Path**: sunoon/mentor-api ## Basic Information - **Project Name**: mentor-api - **Description**: 基于若依的导师学生双选选择系统 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2022-01-08 - **Last Updated**: 2022-01-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 平台简介 基于若依开发的导师学生双选选择系统 * 前端采用Vue、Element UI。 * 后端采用Spring Boot、Spring Security、Redis & Jwt。 * 权限认证使用Jwt,支持多终端认证系统。 * 支持加载动态权限菜单,多方式轻松权限控制。 * 高效率开发,使用代码生成器可以一键生成前后端代码。 若依参考文档http://doc.ruoyi.vip/ruoyi-vue/ ## 项目模块概述 - mentor-system 主要开发模块 - ruoyi-admin 系统接口模块 - 主要有若依系统基础菜单接口(做过微调) - 包括整个项目的主配置文件 - ruoyi-common 通用工具类模块 - 包含一些常量 constant包下,公共controller,entity注解等 - 通用过滤器,自定义异常等 - utils包下包含开发中常用的一些工具类 - ruoyi-framework 核心模块 - 该模块下包含项目的核心配置文件 - 数据源切面(在有主从数据库时使用),日志切面 - config包下包含springboot中常见的一些config,包括druid,mybatis,redis,spring security 等自定义配置 - interceptor包下,包含重复提交表单拦截器 - manager包下,线程异步工程,负责生产异步任务,AsyncManager中用到单例模式,管理多线程任务 - security包下,springsecurity中的自定义filter和handler,负责鉴权和授权 - ruoyi-generator 代码生成器模块,感兴趣的自己去看,就是一种逆向工程,定义好代码模板,通过数据库生成基本的前后端crud代码 - 代码模板在resources/vm包下 - ruoyi-quartz 定时任务模块,感兴趣自己去了解 - ruoyi-system 系统业务模块 - 若依系统基本的业务层和持久层的代码 - ruoyi-ui 前端模块(vue) - sql - 数据库文件 - 如果需要使用该项目 - 需要将sql文件生成数据库 - 将配置文件中mysql的URl和redis的url替换 ## 导师模块 ![](https://lee-notes-images.oss-cn-beijing.aliyuncs.com/20210717145826.png) - 基本接口介绍 - 基本的crud接口就不用说了,大部分都是逆向工程生成的,主要了解项目的核心业务 - 学生 - 选择/取消选择导师接口,根据前端传来的导师id和学生id,选择导师,具体参考注释 - 选择确认接口 - 导师 - 获取审核通过的导师列表,在前端展示给学生的老师信息,只能是本专业下的老师,并且已经通过审核的 - 选择轮次 - 设置不同的选择轮次,老师和学生的选择时间不同,可以选择激活或者取消激活当前轮次 - 选择信息 - 导师可以同意选择他的学生,也可以拒绝 - 修改密码 - 首次未修改密码的用户会提醒修改密码,是在导入用户的时候额外加了一张表,updatedPassword,未修改过密码的用户会在前端提醒 - 其他具体的接口,请参考注释和若依官方文档 ## 项目前端部分 ![](https://lee-notes-images.oss-cn-beijing.aliyuncs.com/20210717153427.png) - 主要编码部分在ruoyi-ui/src/views中 - system包为若依基本页面 - mentor为导师系统页面 - 其他页面自行了解 - 请求接口在api包下 - 前端使用axios发送异步请求,感兴趣自行了解 - 其他请参考若依文档 ### 导师系统基本需求 ![](https://lee-notes-images.oss-cn-beijing.aliyuncs.com/image-20210717160621941.png) ### 导师系统基本时序图 ![](https://lee-notes-images.oss-cn-beijing.aliyuncs.com/20210717160339.png) ### 较大问题 - StudentController chooseIns接口,在网速较慢的情况下,学生重复点击按钮会出现重复提交,可以考虑接口幂等性设计,也可以加锁 - 其他接口根据实际情况进行改造 - 还有在业务层我没有打上日志,可以考虑log4j日志 - 在测试环境下,最好能够模拟高并发的情况,这样才能测试出问题