曾毅刚 李发海 朱诗怡 钟怡
【摘 要】为落实“数字化校园”建设规划,大力推进创新竞赛工作信息化建设,实现资源有效共享,提升师生使用的便利性,进一步提高工作效率,提升服务管理水平。利用Java EE技术和B/S模式结合“学科竞赛群”新理念设计与实现了一种符合学校实际需求的信息管理系统。经学校实践测试,该系统稳定效果明显,提高了管理效率和资源利用效率,对校学员学习与竞赛起到良好正面促进作用。
【关键词】学科竞赛群;信息管理系统;B/S模式;JavaEE技术
随着教育普及学科竞赛发展已是大势所趋,越来越多的教师和学生参加各种各样的竞赛,然而学科交叉领域众多,组织安排形式多样,学科竞赛与诸多评定之间关系密切,组织实施难度越来越大。此外许多高校仍采用手工形式进行管理,管理困难效率低下工作任务繁重出错频率不断增加。因此一个简单规范的竞赛管理平台能极大地帮助广大师生减少不必要的流程,为相关工作人员减轻工作量,统计数据有据可依,各种证书及材料直接转化为电子数据,不易丢失。师生提交资料可以在线上操作,免去奔波之苦,把更多的时间和精力花在完成比赛上,所以针对学校实际管理流程开发学科竞赛管理系统是学校“数字化校园”建设规划必然的选择。由此提出利用Java EE技术和B/S模式结合“学科竞赛群”新理念设计并实现建设校园式学科竞赛信息管理系统,这样一来既提高了管理人员处理效率和资源利用效率,又能进一步刺激师生对于学科竞赛的兴趣和动力[1]。
一、系统需求分析
学校管理事务主体包括学生、教师、管理员,不同的使用主体应当有不同的服务权限。同时赛事类型丰富举办方和承办方各不相同,赛程安排存在差异。参赛人员赛前竞赛申请流程长,审批流程繁琐;流程监管难度高,参赛人员信息量大,极易出错;资金申请和分配不规范;赛后的获奖成果等信息无法进行实时统计等管理方面也是当前的重难点。针对这些问题,基于“学科竞赛群”的理念进行研究设计。
“学科竞赛群”指由具备专业背景联系的、且相对独立的学科竞赛所组成的群体系统[2-3]。基于“群体”的理念将庞大的竞赛群体化整为零进行管理,使其更具目标性群体之间泾渭分明,在保证管理效率及数据安全的同时提高用户主体的目标明确性。
二、系统总体设计
根据需求分析,将系统模块分为前端界面、后台服务、数据库三大模块。B/S模式下后台Tomcat服务器直接与Oracle数据库进行系统交互,而界面浏览器端则处理极少部分的事务逻辑,系统的总体模块分工设计如图1所示。
从业务角度可以将系统分为创新创业模块和竞赛管理模块,竞赛管理模块是目前系统的核心业务主体而创新创业模块因为目前校内案例较少还未完全正式开发完毕,后续将会再根据实际校园情况对创新创业模块进行更加宽广的设计与研究拓展。目前管理系统的核心设计如图2所示。
(一)数据库设计及编码实现
系统选用Oracle数据库管理数据,Oracle数据库相比其它关系型数据库最大的优点在于效率高功能强大且安全级别高,便于人们快速高效的管理使用。
根据需求分析,设置了管理员、项目、比赛、竞赛类型、竞赛奖励、教师、学生、学院班级等数据表。以比赛表和项目表为例,比赛表有编号、时间、名称、比赛编号、比赛信息等属性,项目表有编号、年份、类型、名称、负责人编号、负责人姓名、项目状态、项目费用、项目编号、学院编号、教师姓名、简介等属性,E-R图如图3、图4所示。
创新创业管理系统的重难点在于“学科竞赛群”理念引入后大幅度的增加了数据的量度,基于群体的操作往往伴随着大量的冗余,因此效率的优化成为了重中之重。因此需要从业务角度出发,不同群体对于竞赛系统的查询及修改模块普遍要求较高,可以根据往届学校竞赛项目的规模对Java集合框架jdk源码进行适当修改,结合实际从实践出发才能获得最大效益。实际中使用JDBC连接Oracle数据库进行操作,以查找及修改数据为例核心代码如下:// 根据Id查询要修改的数据
publicContestTypefindById(Integer id) {
//定义SQL查询DDL字符串
String hql = "SELECT new com.huat.domain.ContestType(contestId,conName,conType,contestFee) "
+ "FROM ContestType where contestId= ?";
Query query = this.getSessionFactory().getCurrentSession().createQuery(hql);
query.setString(0, id.toString());
// 将结果放在list列表中,并通过get方法进行获取
List<ContestType>list = query.list();
returnlist.get(0);
}
…
//根據Id查询要修改的数据
public Group initUpdate(GroupKeyskeys) {
returnthis.getHibernateTemplate().get(Group.class, keys);
}
…
(二)教师端模块设计
根据教师端的需求分析,对教师用户进行身份验证后,教师可以进行项目或经费的申请、查询相关竞赛的信息、通过监控选拔人才、管理论坛、推送相关竞赛信息给学生和线上报名老师自己感兴趣的竞赛。
教师通过身份验证后,可以进行项目或经费申请,然后查看申请结果,也可报名自己感兴趣的比赛,在线上进行报名后可查看报名是否成功,还可以查询相关的竞赛项目信息,通过项目监控在培训期间选拔出优秀的学生,有相关竞赛新闻可以进行上传,若上传不成功,则重新上传,否则显示上传成功,在论坛上除了可以自由发表言论,主要还是监管学生是否发表健康的言论,如若完成,选择退出教师端。
(三)学生端模块设计
根据学生端的需求分析,对学生用户进行身份验证后,学生用户可以进行竞赛信息的浏览和相关查询及其线上报名、提交作品和在论坛上与其他同学进行学习交流。
学生通过身份验证后,可以通过公共频道查看各竞赛信息,也可以接收教师端发来的消息通知,在线上进行报名后可查看报名是否成功,竞赛项目修改后会显示修改成功,在进行作品上传时会判断是否上传成功,不成功则重新上传,在论坛上可以自由发表言论,进行交流学习,不需要时退出学生端。
(四)管理员模块设计
根据学校管理员需求分析,除了拥有以上全部权限外,该用户类型可以进行账户管理、权限管理、项目终审、经费终审、系统升级与维护等特殊服务权限。获奖奖励管理凭借获奖统计功能生成数据报表,以此为依据,按院为单位分发奖励,再由学院管理员统筹后发放到具体的获奖学生或教师。
为方便统计分析各类数据,使用Java JNI接口访问的本地其它编程语言编写的方法,从而达到数据可视化、高效计算等目标。目前已经支持生成word、excel、柱状图等格式文档。例如使用系统导出2019-2020年电气与信息工程学院获奖统计表,如图8所示。
其中项目评审需经过学校与学院管理员审批,都通过即可立项。经费评审通过后,需进行合理分配,详细操作流程如图9所示。
学校管理员将全体师生账号信息导入,项目初期需学院管理员发布竞赛简介并设定评分标准。项目立项后,学生填写报名表;项目赛事完成后,发布最终成绩,学生可查看本人成绩;学院管理员要统计分析获奖情况;系统自动将获奖信息与第二课堂学分管理系统对接,完成学分登记具体流程如图10。
三、系统特点
本系统是一个实用、方便、灵活、自主、快捷的开放性和适用性强的网络化的基于“学科竞赛群”理念的创新创业管理系统,系统主要特点如下:
1)系统基于B/S模式,采用oracle数据库进行开发,具有良好的灵活性、扩展性与安全性。
2)利用网络系统的优势,将管理重心下移到学校管理员、教师和学生,大部分任务和管理权限交给教师端和学生端,这将合理降低职能部门的管理压力,提高效率。
3)提供了一个全校开放式竞赛报名系统的解决方案,解决了原来单个竞赛系统和局域网系统使用的诸多弊端,建立了职能部门、教师和学生之间方便快捷的通道,提高了管理效率和基础数据共享,提高了数据实时传递和信息共享,大大提高了工作效率。
4)随着全开放的深入,人员竞赛信息内容的管理难度越来越大。通过竞赛管理系统可以科学合理地分配和查询相应地竞赛任务,避免教师和学生遗漏学科竞赛信息以及教师与教师之间、学生与学生之间不能及时交流的现象发生。
5)该系统实用性强使用面广,不仅为学生提供学科竞赛信息的交流,还能为学生提供课本以外的专业知识。
6)系统提供方便的数据导出功能,能够方便的将诸如各学院的学生竞赛情况导出到excel文件。
四、结语
本系统基于B/S模式使用oracle数据库存储数据保证系统高效率高安全,前端使用HTML5/CSS3/Bootstrap4等技术组合搭建保证市面绝大多数的浏览器版本都能完美兼容,使用Tomcat服務器平台Java JDBC接口考虑了数据库的移植性,使用Java JNI接口访问的本地其它编程语言编写的方法,从而达到数据可视化、高效计算等目标。经学校试用,该系统稳定效果明显,提高了管理效率和资源利用效率,对学生学习与竞赛起到良好正面促进作用。
【参考文献】
[1] 杨宁,李平,冯兆坤.通过综合性学科竞赛平台加强优秀大学生培养[A].上海:实验室研究与探索.2014.
[2] 程磊.基于“学科竞赛群”的自动化卓越工程师创新教育体系[J].上海:实验室研究与探索,2016.
[3] 孙爱良,王紫婷.构建大学生学科竞赛平台培养高素质创新人才[A].上海:实验室研究与探索.2012.