源码简介
1.1简介
在Exam++考试系统版的基础上,我们对ExamStack V2.0进行了大量代码重构,同时也对数据模型做了部分调整。为了减小学员考试交卷时大量并发带来的系统风险,我们尝试采用成熟的消息队列框架RabbitMQ来解决这一问题,因此我们的数据库以及系统的架构同版相比,发生了不小的变化。
1.2 部署要点
Management.war和Portal.war需要部署在同一个目录下。
ExamStack V2.0增加了培训功能,因为需要保存培训材料,所以请留出足够的磁盘空间(以实际需要为准)。
要保证RabbitMQ服务状态为运行状态。
要保证ScoreMarker状态为运行状态,同时ScoreMarker调用服务地址要配置正确。
应用服务器安装配置
2.1 服务器安装部署
2.1.1 服务器配置
操作系统:Linux、Windows
内存:2G,推荐8G
2.1.2 java运行环境
Java 8
2.1.3 服务器
Tomcat 8
RabbitMQ
MySql 5.0以上
2.2 应用部署
2.2.1 数据库
在MySql中新建一个数据库examstack,字符集使用utf8 — UTF-8 Unicode
使用我们提供的examstack.sql还原examstack
设置好对应的访问权限
2.2.2 RabbitMQ
安装新版本的RabbitMQ,具体安装方法,在网络上可以找到很多。
2.2.3 应用
将Management.war和Portal.war放到Tomcat应用程序目录(webapps)下。
启动Tomcat,webapps目录下会生成两个文件夹(Management和Portal)。
分别进入到Management/WEB-INF/Spring和Portal/WEB-INF/Spring下修改root-context.xml文件,将数据库地址、用户名和密码修改成正确的内容。修改完成后重启tomcat服务器。
需要修改的内容如下:
<property name="jdbcUrl" value="jdbc:mysql:/*.*.*.*:3306/examstack?useUnicode=true&characterEncoding=UTF-8" />
<property name="user" value="root" />
<property name="password" value="***" />
1
2
3
<property name="jdbcUrl" value="jdbc:mysql:/*.*.*.*:3306/examstack?useUnicode=true&characterEncoding=UTF-8" />
<property name="user" value="root" />
<property name="password" value="***" />
访问http://localhost:8080/Management和http://localhost:8080/Portal可以进入到管理后台页面和学员页面,并可以正常登陆,则应用配置成功。
注意:*在完成这一步后学员考试交卷无法完成,需要部署ScoreMarker。*
部署ScoreMarker
Linux下-解压scoreMarker到/opt/目录。 确认config/scoremarker.properties文件配置正确。 拷贝scoremarker 执行脚本到init.d目录下并检查脚本中的配置。
Windows下-解压scoreMarker到任意目录。 确认config/scoremarker.properties文件配置正确。 修改installService.bat中APP_HOME为scoreMarker目录。 运行installService.bat后启动服务ScoreMarkerService服务。
更新说明
系统架构:管理后台现在独立成一个新项目,不再和一版一样和前台合在一起。
引入RabbitMq,用于接受用户提交的答题卡,通过ScoreMarker从消息队列获取答题卡并交卷,减小大量用户提交导致的服务器故障几率。
试题内容存储格式由xml改为json
增加教师角色,现在教师用户可以正确地使用自己的权限管理学员、试题、试卷、考试以及培训。
优化系统界面,新的界面看起来更加清爽、专业。
新增了DashBoard,管理界面看起来会更专业。
练习历史现在专门用一张表记录,使开发相关统计变得更容易。
考试和练习:考试现在分为正式考试和模拟考试两种,正式考试需要教师或管理员审核,而模拟考试不需要审核。正式考试又分为公有和私有两种类型,公有考试是可以申请的考试,私有考试则需要教师或管理员指定学员(这里由管理员指定也被我们认为是审核的一种方式)。
新增审核功能,现在教师创建的试卷、考试都需要管理员审核。管理员自己创建的不需要审核。同时,管理员和教师也可以审核学员的考试申请。
新增人工阅卷功能。包含主观题的考试试卷,教师或管理员通过人工阅卷后可以确定最终分数。全部是客观题的试卷不需要阅卷。
新增考试成绩统计功能,可以查看特定考试下学员的分数,同时可以对分数进行排序。
新增学习记录查询功能,教师和管理员现在可以方便地查看学员的练习记录、培训记录和考试记录。
新增快速考试模式,通过输入准考证号即可直接进入到对应的考试页面。
新增继续考试功能,现在学员在考试过程中中断考试后,继续进入考试后,学员的答题记录会恢复到中断前的状态。
题库管理:优化试题修改功能,现在可以正确地修改试题的基本信息。
新增培训功能,教师或管理员可以发布培训资料(视频和pdf文档)。学员可以选择自己需要参加的培训进行学习,培训分为视频和pdf格式的文档两种。
新增虚拟班级功能,教师或管理员现在可以通过虚拟班组很方便地管理学员。
系统问题处理
1.不能获得数据库连接;
’
Cause:org.springframework.jdbc.CannotGetJdbcConnectionException:Could not get JDBC Connection;nested exception is java.sql.SQLException:Access denied for user ’root’@’localhost
1
Cause:org.springframework.jdbc.CannotGetJdbcConnectionException:Could not get JDBC Connection;nested exception is java.sql.SQLException:Access denied for user ’root’@’localhost
请检查数据库连接字符串是否正确,同时检查数据库名、用户名和密码是否设置正确。
2.交卷失败;
RabbitMQ没有启动会导致应用程序连接RabbitMQ失败
1
RabbitMQ没有启动会导致应用程序连接RabbitMQ失败
复制代码请检查RabbitMQ服务是否启动。
3.学员交卷后,管理界面学员对应的状态没有改变;
交卷成功后,学员考试状态会修改成已交卷或者已阅卷,如果在提示“交卷成功”后没有发生任何变化,证明ScoreMarker没有正常启动或者ScoreMarker调用接口失败。
1
交卷成功后,学员考试状态会修改成已交卷或者已阅卷,如果在提示“交卷成功”后没有发生任何变化,证明ScoreMarker没有正常启动或者ScoreMarker调用接口失败。
复制代码请检查ScoreMarker是否启动。同时请保证ScoreMarker能调用到Management提供的接口,这一点在ScoreMarker部署中已经说明。
4.RabbitMQ、MySql、ScoreMarker无法启动或经常被Kill掉
我们在测试过程中发现,内存不足的情况下(我们使用的是1G内存),RabbitMQ、MySql、ScoreMarker经常被Kill,而且无法启动,查看日志会发现提示内存不够。
1
我们在测试过程中发现,内存不足的情况下(我们使用的是1G内存),RabbitMQ、MySql、ScoreMarker经常被Kill,而且无法启动,查看日志会发现提示内存不够。
复制代码查看下日志,如果是内存不够的原因,那就赶紧加内存吧。为了保证系统正常运行,内存不能低于2G。
5.bug更新日志
2016-2-15 解决试题导入报错的bug
2016-3-15 解决考试用户列表不能正常分页的bug
1、自动:在上方保障服务中标有自动发货的商品,拍下后,将会自动收到来自卖家的商品获取(下载)链接;
2、手动:未标有自动发货的的商品,拍下后,卖家会收到邮件、短信提醒,也可通过QQ或订单中的电话联系对方。
1、源码默认交易周期:自动发货商品为1天,手动发货商品为3天,买家有1次额外延长3天交易周期的权利;
2、若上述交易周期双方依然无法完成交易,任意一方可发起追加周期(1~60天)的请求,对方同意即可延长。
1、描述:源码描述(含标题)与实际源码不一致的(例:描述PHP实际为ASP、描述的功能实际缺少、版本不符等);
2、演示:有演示站时,与实际源码小于95%一致的(但描述中有"不保证完全一样、有变化的可能性"类似显著声明的除外);
3、发货:手动发货源码,在卖家未发货前,已申请退款的;
4、安装:免费提供安装服务的源码但卖家不履行的;
5、收费:额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外);
6、其他:如质量方面的硬性常规问题等。
注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
1、互站会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全!
2、互站无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别;
3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外);
4、在没有"无任何正当退款依据"的前提下,商品写有"一旦售出,概不支持退款"等类似的声明,视为无效声明;
5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准);
6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在互站上所留的QQ、手机号沟通,以防对方不承认自我承诺。
7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于互站介入快速处理。
1、互站作为第三方中介平台,依据交易合同(商品描述、交易前商定的内容)来保障交易的安全及买卖双方的权益;
2、非平台线上交易的项目,出现任何后果均与互站无关;无论卖家以何理由要求线下交易的,请联系管理举报。
平价源码店
2241125931405842110654
925447164466634354525337027302060292596
服务
4.94
效率
4.96
质量
4.94