schoolExam
介绍
基于SpringBoot打造的一款学校考试平台,学校可以分批管理多个子校数据,教师可以分发考试以及管理,拖拽式试卷设计,独有的共享题库以及知识点学习复习库。
开源版不包含任何功能,请联系作者,联系方式下方有。商业版包含所有功能,个人软件,无发票。
- 开源不易,给个
star
吧 - 集成apollo配置中心,不会的菜比就别用这项目了,不想理你们这些菜比
- Skyeye的近期工作清单,有别的需求可以联系我添加。https://docs.qq.com/doc/DQlRxcVRMWWVjbU1i?_from=1&disableReturnList=1
- 面试专题
- 项目交流群:(群一:696070023)(群二:836039567)(群三:887391486)
- 需要进微信群的,进微信群需要支付十元费用,为了防止发广告的等,望谅解。请加我微信:wzq_598748873
- 请不要重复加群,一个群就可以了,把机会留给更多人
- 进群先看公告!!!进群先看公告!!!进群先看公告!!! 重要的事情说三遍
- 如果需要学习资料的(不免费,不贵,一杯咖啡的钱),可以加我微信。
- 不会搭建环境的,可以出钱让作者帮忙搭建,一次100,先付。
- 环境搭建资料获取:进下这个百度网盘群(手机端搜索入群),3676101838
项目 | 地址 |
---|---|
主项目地址 | https://gitee.com/doc_wei01/skyeye |
学校模块
功能 | 简介 | 功能 | 简介 |
---|---|---|---|
学校管理 | 管理学校以及子学校,可以控制数据权限 | 科目管理 | 管理本学校所拥有的科目 |
教学楼管理 | 管理本校教学楼,以方便班级定位 | 基础数据管理 | 包括身心障碍类型,交通方式等 |
年级管理 | 管理学校年级,同时可管理兴趣班等 | 班级管理 | 管理每一个的班级信息 |
教师管理 | 管理学校教职工 | 学生管理 | 管理学校学生信息 |
学期管理 | 管理学校学期分课 | 待批阅试卷 | 他人分配给我审批的试卷以及我自己创建的试卷 |
试卷管理 | 可以自定义试卷,可进行拖拽,包括填空题,单选题,多选题,评分题,排序题,矩阵题等,可以从题库中抽取试题 | 阅卷管理 | 可以设置多人阅卷操作 |
年级科目管理 | 指定每个年级应学习的科目 | 教师技能管理 | 指定教师熟悉的技能(后期用于课程表教师分配) |
开学时间设定 | 可以设置每个年级不同的开学时间(根据2020年疫情情况研发) | 我的工作 | 可以查看我的历史班级,我现在带领的班级 |
分班管理 | 可以对未分班的学生进行分班 | 题库 | 支持多种题型的个人题库管理 |
知识点 | 管理每个年级对应科目的知识点,学生可单独查看,也可和题库结合,方便学生考试后复习 | 考试模块 | 学生可在手机端考试,查看考试结果,帐号为学号或者身份证号,密码为身份证号后8位 |
技术选型
后端技术:
技术 | 名称 | 官网 |
---|---|---|
SpringBoot | 核心框架 | http://spring.io/projects/spring-boot |
MyBatis | ORM框架 | http://www.mybatis.org/mybatis-3/zh/index.html |
Druid | 数据库连接池 | https://github.com/alibaba/druid |
Maven | 项目构建管理 | http://maven.apache.org/ |
redis | key-value存储系统 | https://redis.io/ |
webSocket | 浏览器与服务器全双工(full-duplex)通信 | http://www.runoob.com/html/html5-websocket.html |
Activiti | 工作流引擎 | https://www.activiti.org/ |
spring mvc | 视图框架 | http://spring.io/ |
quartz 2.2.2 | 定时任务 | http://www.quartz-scheduler.org/ |
ActiveMQ | 消息队列 | http://activemq.apache.org/replicated-leveldb-store.html |
solr | 企业级搜索应用服务器 | https://lucene.apache.org/solr/ |
Spring Cloud | 微服务框架(目前用户APP端接口) | https://springcloud.cc/ |
前端技术:
技术 | 名称 | 官网 |
---|---|---|
jQuery | 函式库 | http://jquery.com/ |
zTree | 树插件 | http://www.treejs.cn/v3/ |
layui | 模块化前端UI | https://www.layui.com/ |
winui | win10风格UI | https://gitee.com/doc_wei01_admin/skyeye |
codemirror | codemirror代码编辑器 | https://codemirror.net/ |
handlebars | js模板引擎 | http://www.ghostchina.com/introducing-the-handlebars-js-templating-engine/ |
webSocket | 浏览器与服务器全双工(full-duplex)通信 | http://www.runoob.com/html/html5-websocket.html |
G6 | 流程图开发 | https://antv.alipay.com/zh-cn/index.html |
FullCalendar | 日历插件 | https://blog.csdn.net/qw_xingzhe/article/details/44920943 |
代码描述
前后台接口映射
<url id="前端请求id" path="后台接口" val="备注" allUse="是否需要登录"> <property id="前端请求key" name="后台接收key" ref="限制条件(参考项目内文档)" var="key含义"/> </url>
后台代码编写规范
控制层
@RequestMapping("后台接口") @ResponseBody public void 方法名(InputObject inputObject, OutputObject outputObject) throws Exception{ 服务层接口对象.方法名(inputObject, outputObject); }
服务层
@Override public void 方法名(InputObject inputObject, OutputObject outputObject) throws Exception { Map<String, Object> map = inputObject.getParams();//接收参数 Map<String, Object> user = inputObject.getLogParams();//获取当前登录用户信息 /** * 业务逻辑 */ outputObject.setBean(bean);//返回单个实体Bean outputObject.setBeans(beans);//返回集合 outputObject.settotal(total);//返回数量 outputObject.setreturnMessage("信息");//返回前端的错误信息 outputObject.setreturnMessage("信息", 错误码);//返回前端的错误信息,同时抛出异常(不常用) }
PC端效果图
效果图 | 效果图 |
---|---|
![]() | ![]() |
![]() | ![]() |
![]() | ![]() |
![]() | ![]() |
手机端效果图
效果图 | 效果图 | 效果图 | 效果图 |
---|---|---|---|
![]() | ![]() | ![]() | ![]() |
环境搭建
开发工具:
- MySql: 数据库
- Tomcat: 应用服务器
- SVN|Git: 版本管理
- Nginx: 反向代理服务器
- Varnish: HTTP加速器
- IntelliJ IDEA|Eclipse: 开发IDE
- Navicat for MySQL: 数据库客户端
- Redis Manager:redis视图工具
资源下载
- JDK8 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
- Maven http://maven.apache.org/download.cgi
- Redis https://redis.io/download
- Nginx http://nginx.org/en/download.html
在线文档
捐助
如果您觉得我们的开源软件对你有所帮助,请扫下方二维码打赏我们一杯咖啡。
支付宝 | 微信 |
---|---|
![]() | ![]() |