# graduate **Repository Path**: CloudZkq/graduate ## Basic Information - **Project Name**: graduate - **Description**: 本科毕业设计 - **Primary Language**: Java - **License**: GPL-3.0 - **Default Branch**: dev - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-10-20 - **Last Updated**: 2022-01-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #本科毕业设计 ## 技术选型 - Spring Boot - MySQL - JWT - Redis - MongoDB ## 已实现功能 #### 登录与授权模块 1.使用jwt+redis替代cookie+session机制,更便于以后的分布式扩展 未解决:jwt的退出与续期---续期u退出只能结合redis来实现 2.接入腾讯图片验证码+阿里短信验证码 3.基于RABC的角色简单权限验证 在系统启动时会加载juese-权限对应关系到redis缓存中,在用户进行某个操作时,会先查看该用户是否具备对应的角色以及对应的角色是否巨额被对应的权限 #### 教师模块 - 教师查看自己发布的题目 - 教师新增可选题目 - 教师删除可选题目 #### 学生模块 - 学生选择某个可选题目 - 学生查看本专业所有的可选题目 #### 教务员模块 ## 待改进 - 授权模块比较粗糙,没有学习过Shiro与Spring Security,且时间紧张,待后序改进 - 由于pageoffice控件暂时无法监听在线world的文件关闭事件,暂时解决办法为起一个定时任务每1个小时运行一次,检测文件的上次修改时间与当前的时间大于30分钟,进行文档上传MongoDB本删除本地文件操作 - 文件较大是上传很慢,需要进行优化代码,文件较大时上传到七牛云等云存储,返回上传路径 ## 项目部署 ####直接部署 ```shelllanguage - Linux上安装JDK环境 - Maven clean package 对项目进行打包 - mkdir /graduate - nohup java -jar > log.file *.jar & ``` ####Docker部署(推荐) - Docker进行项目不是,根据Dockerfile制作镜像,在三个端口上启动三个容器 - NGINX做负载均衡与反向代理以及动静分离 ##简记 - 项目运行就会创建Loback的logs文件夹,并不代表是会向文件中写入日志,仅仅创建文件夹,排除半天得出。。。,记录一下