## 项目简介
**项目Github**:<https://github.com/hongfurui2014/exam_online_hongfurui>
**考试前台**:<http://exam.itdupan.com/>
**后台管理**:<http://hongfurui.itdupan.com/>
在线考试系统,大四毕设,采用vue与springcloud微服务架构开发,前后端完全分离,json格式数据交互,全部由本人独立开发完成。目前项目已部署在本人的学生版阿里云centos7服务器上。
主要功能有:对班级和科目的管理;对试题和试卷的管理(包含excel文件模板大批量一次性上传试题到题库,自动从题库中抽题出试卷);用户、角色、权限三级设计实现方法级别的细粒度权限控制;aop后置通知实现整个系统重要操作日志的记录。
## 项目技术栈
### 前端
- 前端后台管理系统由vue与elementUI搭建,路由使用vue-router,前端在线考试系统由nuxt搭建,ajax请求均使用axios。
- vsCode工具开发
### 后台
- mysql数据库,mybatis(通用Mapper、PageHelper分页助手)
- springBoot(spring、springMVC)
- springCloud(eureka、zuul、feign)搭建微服务工程
- nginx反向代理域名
- 采用jwt+rsa加密生成token,写入cookie的方式做无状态登录
- maven、idea、postman工具开发
## 说明
### 目录说明
- `exam_online_hfr_admin`为前端后台管理项目,`npm install`安装依赖后`npm run dev`可运行
- `exam_online_hfr_portal`为前端在线开心系统项目,`npm install`安装依赖后`npm run dev`可运行
- `exam_online_hfr_api`为后端微服务项目,maven下载完依赖,修改application.yml配置文件中的数据库密码和jwt配置后即可运行
### 后台api接口说明
- 接口基准地址:`http://zuul.itdupan.com/api/`
- 示例:`http://zuul.itdupan.com/api/school/grade/findGrades`,其中api为zuul网关前缀,school为zuul转发到的微服务名称路径,/grade/findGrades为controller为controller请求访问路径。所有请求都经过zuul网关,已在网关zuulFilter中做鉴权。
- 服务端已开启cors跨域支持
- 只允许`http://hongfurui.itdupan.com`和`http://exam.itdupan.com`两个域名对`http://zuul.itdupan.com`进行跨域访问
- 请求方式
```
GET 查询
POST 新增
PUT 更新
DELETE 删除
```
- 使用HttpStatus Code做标识状态
```
200 OK 响应成功
201 CREATED 新增或更新成功
204 DELETED 删除成功
400 BAD_REQUEST 请求參數不合法
401 UNAUTHORIZED 身份不合法
403 FORBIDDEN 权限不足
404 NOT_FOUND 資源服務器未找到
500 INTERNAL_SERVER_ERROR 服務器內部錯誤
```
添加 删除 修改失败将返回状态码自定义状态码:600
- 后台返回格式统一使用json格式,返回样式如下:
```json
{
"httpCode": 200,
"message": "查询所有班级成功!",
"data": [
{
"gradeId": 20,
"gradeName": "16级软件工程2班"
},
{
"gradeId": 21,
"gradeName": "16级软件工程1班"
}
]
}
```
- 捕获全局500 RuntimeException,返回样式如下:
```json
{
"httpCode": 500,
"message": "操作失败,系统未知异常,请尽快反馈给系统管理员!",
"exceptionTime": "2020-03-12 17:32:55"
}
```
### 其它说明
- `资料`中的sql文件为最干净的数据库,后台登录账号和密码均为`demo_user`,`导入试题模板.xlsx`按照格式即可导入试题
- 本机SwitchHosts配置
```
# 在线考试系统java后台网关
127.0.0.1 zuul.itdupan.com
# 在线考试系统前端
127.0.0.1 exam.itdupan.com
# 在线考试系统后台管理
127.0.0.1 hongfurui.itdupan.com
```
- nginx代理配置如下
```nginx
server {
listen 80;
server_name zuul.itdupan.com; # 网关
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
location / {
proxy_pass http://127.0.0.1:10011;
proxy_connect_timeout 600;
proxy_read_timeout 600;
}
}
server {
listen 80;
server_name hongfurui.itdupan.com; # 后台管理
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_connect_timeout 600;
proxy_read_timeout 600;
}
}
server {
listen 80;
server_name exam.itdupan.com; # 前台
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
location / {
proxy_pass http://127.0.0.1:9999;
proxy_connect_timeout 600;
proxy_read_timeout 600;
}
}
```
## 项目待改进优化的一些问题
- axios下载的文件打开出错
- 自动抽题组卷算法待优化
- nuxt的路由导航守卫问题
- mouted()钩子函数未能有效获取vuex中的数据,时机问题
- 正在答题时若刷新则已做试题的状态重置,等以后有时间考虑对答题情况进行watch深度监控,写入redis读取应该就能解决
- 答题时时间倒计时以及计时结束自动提交试卷功能,下一步考虑使用quartz框架解决
- aop记录的日志还是比较粗粒度,以后有时间再考虑优化了
- 分布式事务问题
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
项目简介:在线考试系统,采用vue与springcloud微服务架构开发,前后端完全分离,json格式数据交互,全部由本人独立开发完成。目前项目已部署在本人的学生版阿里云centos7服务器上。 主要功能有:对班级和科目的管理;对试题和试卷的管理(包含excel文件模板大批量一次性上传试题到题库,自动从题库中抽题出试卷);用户、角色、权限三级设计实现方法级别的细粒度权限控制;aop后置通知实现整个系统重要操作日志的记录。 项目技术栈: 前端 前端后台管理系统由vue与elementUI搭建,路由使用vue-router,前端在线考试系统由nuxt搭建,ajax请求均使用axios。 vsCode工具开发 后台 mysql数据库,mybatis(通用Mapper、PageHelper分页助手) springBoot(spring、springMVC) springCloud(eureka、zuul、feign)搭建微服务工程 nginx反向代理域名 采用jwt+rsa加密生成token,写入cookie的方式做无状态登录 maven、idea、postman工具开发
资源详情
资源评论
资源推荐
收起资源包目录
用vue与springcloud微服务架构开发的在线考试系统 (200个子文件)
.babelrc 230B
global.css 543B
global.css 339B
.editorconfig 207B
.editorconfig 147B
.gitignore 1KB
.gitignore 1KB
.gitkeep 0B
index.html 395B
favicon.ico 11KB
favicon.ico 11KB
exam-school.iml 406B
exam_online_hfr_api.iml 80B
TestService.java 16KB
TopicService.java 7KB
AuthController.java 6KB
CookieUtils.java 6KB
UserQService.java 6KB
UserQController.java 6KB
UserController.java 6KB
UserService.java 5KB
TopicController.java 5KB
LogAop.java 5KB
LogAop.java 5KB
LogAop.java 5KB
LogAop.java 5KB
Topic.java 5KB
Test.java 5KB
TestUserQService.java 4KB
AuthorizationFilter.java 4KB
SubjectController.java 4KB
GradeController.java 4KB
TestUserQController.java 4KB
TestController.java 4KB
RoleController.java 4KB
JwtUtils.java 4KB
RoleRightsService.java 3KB
UserQ.java 3KB
User.java 3KB
RsaUtils.java 3KB
TestTopicService.java 3KB
TestUserQ.java 3KB
SubjectService.java 3KB
JwtProperties.java 3KB
JwtProperties.java 3KB
JwtProperties.java 3KB
JwtProperties.java 3KB
JwtProperties.java 3KB
GradeService.java 3KB
RoleService.java 2KB
Md5Utils.java 2KB
UserQTopicService.java 2KB
UserQTopic.java 2KB
JsonUtils.java 2KB
Rights.java 2KB
AuthService.java 2KB
RoleRightsController.java 2KB
Info.java 2KB
Info.java 2KB
Info.java 2KB
Info.java 2KB
ExamExceptionEnum.java 2KB
UserQTopicController.java 1KB
CommonExceptionHandler.java 1KB
JwtProperties.java 1KB
RightsService.java 1KB
InfoController.java 1KB
InfoService.java 1KB
UserApi.java 1KB
TestTopicController.java 1KB
TestTopic.java 1KB
ExamCorsConfig.java 1KB
RightsController.java 1KB
RoleRights.java 1KB
Subject.java 1KB
ResultBean2.java 1KB
ResultBean.java 1023B
UserQApi.java 1010B
Role.java 963B
UserQTopicQueryVo.java 914B
RoleRightsMapper.java 871B
ObjectUtils.java 839B
Grade.java 838B
PageResult.java 831B
CodecUtils.java 821B
UserInfo.java 792B
ExceptionResult.java 771B
RightsMapper.java 728B
InfoMapper.java 678B
InfoMapper.java 678B
InfoMapper.java 678B
InfoMapper.java 678B
RightsApi.java 626B
ExamSchoolApplication.java 584B
ExamAuthApplication.java 580B
ExamUserApplication.java 580B
ExamTestApplication.java 580B
ExamZuulApplication.java 578B
RoleRightsApi.java 512B
SubjectApi.java 468B
共 200 条
- 1
- 2
「已注销」
- 粉丝: 833
- 资源: 3605
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 使用OpenGL实现渲染场景的shadow map
- 基于springboot+vue+mysql+redis项目工时管理系统前后端分离管理系统【源码+数据库】
- 【java毕业设计】高校信息资源共享平台源码(ssm+jsp+mysql+说明文档+LW).zip
- LOL_params_0900000.pt
- 【java毕业设计】高校校园点餐系统源码(ssm+jsp+mysql+说明文档+LW).zip
- 【小程序+小程序API+后台商城管理+运行指导教程】springboot+mysql实现的供货商城系统
- 【java毕业设计】高校四六级报名管理系统源码(ssm+jsp+mysql+说明文档+LW).zip
- 二千多套IOS项目源码分享下载-第四个300套
- 【java毕业设计】高校二手交易平台源码(ssm+jsp+mysql+说明文档+LW).zip
- 【java毕业设计】高校毕业生就业满意度调查统计系统源码(ssm+jsp+mysql+说明文档+LW).zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论5