王 瑾 吕太之
(江苏海事职业技术学院信息工程学院,江苏 南京 211170)
评奖评优是我国普通高等职业技术学校根据党和国家的教育方针,激励学生勤奋学习、潜心科研、勇于创新、积极进取的一项重要措施[1]。它不仅是学校常规工作之一,也是非常关键的一个环节,是加强校园文明建设的重要手段。如今,在信息化迅速普及的校园中,江苏海事职业技术学院这项工作仍然依靠辅导员采用手工作业方式,根据学生手册和学生成绩综合评定标准进行一一比对,增加了教师的工作负担,降低了工作效率与准确率。
为了提高学校管理水平,很多高校都开始智慧化校园的建设,学生信息管理是其中一个重要的组成。作为学生评价的重要环节,高校也开始采用信息化的手段来管理学生评优评奖。浙江工商职业技术学院学生评奖评优管理系统采用B/S软件体系结构,依托Windows XP操作系统,使用Java语言,基于J2EE架构技术,以MySQL5.0为数据库实现Web应用系统[2]。哈尔滨工业大学采用Java语言,基于J2EE架构技术,使用JPA2.0标准开发的教育评优系统,运用于高校教育评优中[3]。鲁东大学的奖优评定管理信息系统,采用Java语言,以J2EE作为开发环境,利用Spring和Hibernate技术,以MySQL作为后台数据库,开发出适合学校学生管理工作的Web管理系统[4]。
为了提高江苏海事职业技术学院学生评优评价的效率和可靠性,本着数据准确、评价客观的基本原则,本文设计并实现了学生评奖评优系统。基于存储的数据量、开发成本以及技术成熟度等综合因素,系统采用MySQL数据库存储学生评奖评优的数据。随着Web应用开发技术的发展,前后端分离技术已经成为Web应用开发的事实标准。系统基于Java语言,采用Spring Boot后端框架和Vue前端框架实现前后端分离。为了提高开发效率,使用IntelliJIDEA作为IDE(集成开发环境)进行后端代码的编写工作,使用WebStorm进行前端代码的编写。系统运行验证了其能满足学校学工部门管理学生评优评奖的工作,提高了工作效率,减少了出错率。
管理员(学生办公室)、教师、学生是本系统用户的组成部分。其中管理员(学生办公室)拥有最高权限,可以对所有学生、教师以及班级、专业等信息进行各种操作,包括查询、修改用户信息,添加、删除学生、教师和班级,同时可以新增奖项以供学生申报,制定或修改评奖标准便于教师分析获奖结果。管理员的主要功能如图1所示。
图1 管理员用例图
教师登录后能修改自己的登录密码和基本信息,可以将学生的成绩表格导入经过分析下载评定结果报表,查看本班学生申报信息并结合评定结果及时审核,及时答复学生的反馈消息。教师的功能如图2所示。
图2 教师用例图
学生登录后能修改登录密码和基本信息,可以根据自身成绩申报奖项,查询申报信息和历史获奖记录,同时亦可以对评定结果向教师反馈信息。学生的主要功能如图3所示。
图3 学生用例图
管理员登录后,可以操作功能包括学院管理、专业管理、班级管理、学生管理、教师管理。奖评管理模块中管理员可根据《学生手册》相关信息增设或修改奖项信息和评奖标准,亦可删除已有奖项。教师登录后可修改自己的登录密码和基本信息,可查看审核本班学生奖项申报信息并予以通过或不通过,可以查看本班学生的反馈信息,及时回复学生信息。教师在奖评管理模块中可以按学年导入班级学年综合测评表格文件,参考已设置奖项的评定标准分析文件产生该学年评定结果并下载结果报表。学生登录后仅可修改自己的登录密码和基本信息,申报奖项,查看申报信息和审核流程,查看历史获奖记录,并可向教师反馈信息。经过以上分析与功能模块设计,作系统结构如图4所示。
图4 系统功能模块图
数据库中的数据是该系统的信息来源,数据库的设计不仅决定着信息的获取与处理是否可行,也会对该系统的稳定性、功能的完整性甚至后续编码工作效率产生巨大影响,因此合理的数据库设计是一项十分重要的工作。
本系统采用MySQL数据库进行数据存储,用户、学生、教师、班级、专业、学院、奖项以及奖项等各个实体之间的关系如图5所示。
图5 实体关系图
系统围绕前后端分离模式进行技术架构设计。系统采用前后端分离模式,后端通过接口的方式提供JSON格式的数据,前端通过Ajax异步技术获取JSON格式数据。
后端采用MVC模式(Model-View-Controller),用户调用后台接口请求,Controller负责映射请求执行相应的方法,调用Service层然后执行Model层逐层返回数据交给Controller,然后渲染到View层呈现给用户。后端基于Spring Boot框架实现后端MVC模式。Spring Boot是目前主流接口开发框架,简化Spring应用的开发过程[5]。对比SSH(Struts2,Spring,Hibernate),SSM(Spring MVC,Spring,MyBatis)等MVC框架,Spring Boot简化了配置和版本依赖,并且将Tomcat集成在项目中,只需要启动一个启动类就可以启动项目。
前端采用MVVM模式(Model-View-ViewModel),其核心是逻辑代码中不对View进行直接操作,而是通过View-Model将View与Model绑定起来,且具有内置的互相同步的机制。在这种模式下,系统里的View和Model不可以直接进行通信,通过ViewModel作为桥梁,当用户操作View层的时候,ViewModel会察觉到变化,通知Model发生相应的改变,反之亦然,ViewModel向上与View进行双向绑定,向下与Model通过接口请求数据交互,起到桥梁的作用。
系统开发以Java语言为基础,使用Maven构建项目,使用Spring Boot实现后端接口,使用MyBatis实现数据库记录与Java对象之间的映射,使用Druid实现数据库连接池,使用PageHelper组件实现记录分页,使用Redis缓存临时数据。在Spring Boot中引入注解,集成大量的框架,简化了Web框架的配置和开发流程,避免了因第三方依赖包而引起的版本冲突问题[6]。MyBatis是基于Java的持久层框架,是一个支持对象映射的框架,内置JDBC,只关注SQL[7]。通过Spring Boot框架实现前后端数据交互,应用三层架构模型Controller、Service、Dao层。
图6 系统开发架构
(1)Controller层实现
对于前后端分离的项目而言,后端只负责提供数据,因此@Controller注解的类中的所有方法都是返回数据的,都需要转换成json格式。若在每个方法的前面添加注解@ResponseBody,过于烦琐,故将@Controller和@ResponseBody合并写成@RestController。核心代码如下:
(2)Service层实现
该层作为服务层,完成系统的业务逻辑和数据的包装操作。该层调用Dao层的方法,从数据库获取数据。如IAwardService定义了学生评优的服务层接口,在该接口下定义评优申报、审核、查询等接口,AwardServiceImpl是其实现类,通过@Autowired注解映入Dao对象,通过@Override注解实现相应接口。
(3)Dao层实现
该层实现数据的读写操作,基于MyBatis,采用注解的方式实现。通过mapper注解实现动态生成Bean后注入到对象中,简化了mapper映射文件。通过repository注解将实现类交给Spring管理。
图7 学生评价申报信息
系统采用Vue前端框架,利用Vue-cli脚手架来快速创建项目,并且通过npm安装项目所需要的第三方组件。前端布局采用Element UI组件式开发,整个页面的布局通过安装Bootstrap的依赖来实现。Element UI是一个响应式的前端框架,可以让页面适应浏览器的大小。局部的页面布局采用Flex技术,同样可以自适应浏览器的大小。
以学生申报信息界面为例,用户通过router路由文件访问该功能,然后通过模板文件渲染该页面,页面加载的时候通过AJAX调用后端接口获取数据,数据被渲染到页面上。
评优评奖是高校学生管理工作的重要组成部分,事关学生的切身利益。随着高校招生人数的快速增长,传统方式下学生评优评奖成为学工管理者的一个难题。随着新一代信息技术的发展,越来越多的行业运用信息技术来提高自身的竞争力。基于此,本文结合江苏海院的特色,开发了学生评优评奖系统,目的是为学生管理部门提供优质、高效的信息化手段,提高工作效率,减少人为的错误。功能上,系统分为管理员、学工教师和学生三个角色,具备信息管理与奖评管理等模块。技术上,系统采用前后端分离的技术实现。后端使用Spring Boot框架提供数据,前端通过AJAX获取数据,通过Vue绑定数据显示在页面上。系统已经在江苏海事职业技术学院得到了试运行,达到了预期效果,有效减轻教师工作负担,节省人力,让评奖评优工作更加系统、更加人性、更加公平公正,更加有效地提高学生的学习热情和教师的工作热情。