APP下载

基于SpringBoot的研究生学术档案管理系统开发

2023-08-04李琴崔名扬钱奕文刘晶晶

电脑知识与技术 2023年18期
关键词:申请表插件学术

李琴,崔名扬,钱奕文,刘晶晶

(郑州航空工业管理学院,河南郑州 450046)

0 引言

近年来,研究生招生规模逐步增加,导致高校研究生管理工作也愈加复杂,研究生在校期间所取得的学术成果总量也有着跨越式增长。虽然高校也建设有研究生信息管理系统,但其功能覆盖范围广泛,未有效针对学术档案管理的特点进行开发,从而导致学术档案管理功能缺失或不适应当前研究生管理工作[1]。本文针对上述问题,使用Java 和前端语言开发一套研究生学术档案管理系统,以便对研究生在校期间的学术档案进行全流程管理。

1 业务分析

根据学术档案管理系统的基本功能需求,系统可以把角色分为管理员和学生两个角色,基本功能有:填写学术档案、上传文件、查看审核状态、添加学生、审批申请、查阅档案等。

系统业务如图1所示。

图1 研究生学术档案管理系统功能框架

1.1 学生业务分析

学生的账号信息会提前通过管理员页面添加进数据库。在学生第一次登录时会有弹窗提示及时修改密码。登录成功后学生只能查询或修改自己的档案信息。在上传或者查询学术档案时,学生可以在管理系统的不同的模块下进行查询或者上传[2]。上传完学术档案后该条数据会显示提交时间和审核状态等,方便学生及时查看审核进度或者及时进行修正,学生还可以通过该记录的预览图标查看该文件,防止出现上传时文件受损等情况。在学术档案提交并未进行审核时,学生可以对申请进行修改和删除,当学术档案申请不通过时,学生可在审核信息里查看驳回原因。

1.2 管理员业务分析

管理员拥有系统的全部权限,其账号信息在管理员数据库中预设,在学生管理界面可以对学生账号进行增加、删除、修改、查询。在学术档案的不同模块下显示所有学生的档案信息,可以通过审核状态进行分类,然后对其进行审核。

2 系统架构

SpringBoot 是基于Spring 开发的一种全新的轻量级框架,继承了原有的优秀特点,其中核心内容是Spring MVC,作为Web 的请求模块来为SpringBoot 提供数据的请求和响应,而且还通过各种配置来简化整个系统的搭建和开发过程。根据SpringBoot框架的特性结合此研究生档案管理系统,可以将系统的架构分为三层:基本功能层、业务逻辑层、数据交换层[3]。

2.1 基本功能层

此层是整个系统的表现层,集成系统的各个功能模块,这些模块包括:用户登录模块、用户管理模块、档案查询模块、文件上传模块等[4]。这些模块中产生的数据会通过SpringBoot框架的表现层进行请求的接收和转发,将请求进一步传递给下一层架构并进行返回数据的接收,实现基本功能的正常运行,保证用户的体验。

2.2 业务逻辑层

业务逻辑层是档案管理系统的核心部分,负责整体系统的业务逻辑,通过面向对象的方式来封装业务组件。此层是接受基本功能的请求并作进一步的处理,首先进行请求的校验,查看是否已经超出权限范围,是否让其进入下一步处理;其次请求通过携带的请求头找到对应的Controller接口,进入Spring框架的Controller层中进行数据逻辑的处理,在数据逻辑的处理时需要对数据的数据原型进行验证防止出现数据冲突,接着就进入了核心业务区,与数据交换层进行数据的交换。数据进入到底层逻辑架构时,具体的业务非常清晰,其中包括,查询:用户可以通过调用service接口查询到需要的信息、删除:对已经完成的各种操作进行删除处理、增加:用户可以将需要的数据存入到数据库中、修改:当用户的数据出错时通过基本逻辑层进行更改传入到此处,再调用数据库的接口进行数据的修改。

2.3 数据交换层

数据交换层是本系统的底层,负责与数据库进行交互。与数据库交互是通过SQL代码来实现,但是原生的SQL 代码过于复杂,进行编写时较为固定,修改时非常复杂,不利于后期的维护和修改。本系统采用MyBatis-plus 插件来简化工作量,当业务逻辑层将要增删改查的请求发送到这里时,直接可以使用已经封装好的updateService、saveService、deleteService等来进行数据与数据库信息的交换,保证数据的完整性,和快速数据交换。

3 数据库的设计

3.1 数据库设计思路

通过研究该学术档案管理系统的应用环境,来构造一个最优的数据模型,使其能够有效地存储和满足对管理档案数据的需求。进行数据库的设计时采用了一对一设计原则,独特命名原则,能够尽可能地减少维护时问题的出现,保证数据维护工作顺利开展的同时降低了维护工作的难度,能够产生实体间的必然联系,提高应用程序的可靠性、科学性,以及自身的性能,减少数据的冗杂,维护数据的一致性,保持各关键词之间存在的必然相对应联系[5]。

3.2 设计数据库重要性

1)数据一致性

在设计数据库时,需要定义数据表之间的关系、属性以及数据类型等细节确保数据的一致性。在不同的表中存储相同的数据时保持同步,避免重复数据和错误数据。如果不能保证数据的一致性和连续性,将会对系统造成不可预知的后果。

2)数据安全性

数据库里的数据非常重要,涵盖了每个学生的学术档案信息,这些档案中不乏存在一些敏感性信息,一旦泄露将会对学生的日常生活产生不良影响,所以数据库必须经过高度安全化设计和保护,以确保它们不会被非法请求窃取或者篡改。

3)数据操作的效率性

良好的数据库设计可以高效地支持数据操作,包括数据的增加、查询、更新、删除等操作。通过优化数据操作流程和检索方式,可以为系统大大节省时间和资源,提高系统的性能。

4)数据的可扩展性

在设计数据库时,应该预测到未来的数据库扩展需求。不断增加的数据需要有良好的设计来支持,如果数据库没有经过良好的设计来处理扩展需求的话,维护和管理这些数据库将成为系统的一个巨大挑战。

在学生档案管理系统设计时把握好数据库设计的重要性,尽量设计出一个优良的数据模型,使系统减少资源的浪费、保证数据的完整性、提高查询效率、加快计算速度、减少资源的占用、加快后期的编码速度。

3.3 系统数据库模型

为了便于用户对系统进行操作,对档案管理系统进行数据分析时,需要设计账号表和档案申请表。其中账户表根据姓名、账号、密码等字段进行设计并划分为两种,学生表和管理员表,为他们的登录修改密码等提供信息检索、修改和删除服务;档案申请表根据名称、时间、申请人、状态等字段进行划分为七个不同类型的数据表,学科竞赛申请表、学术交流申请表、科研奖励申请表、学术论文申请表、科研项目申请表、知识产权申请表、学术著作申请表。为学生的申请和管理员的审核提供检索、修改和删除服务[6]。

4 系统功能的实现

4.1 登录功能的实现

用户登录功能界面上提供了两种不同的方式来实现用户登录:管理员登录和用户登录,都是通过其登录界面输入账号和密码进入系统。

在登录账号信息数据采集时,登录页面采用的是Element-UI的表单组件收集数据,然后进行数据的绑定,并且会对输入的数据进行校验,如果校验不通过,用户将无法点击登录按钮,保证数据的完整性和安全性,反之用户点击登录时将符合条件的数据通过登录api 接口把数据传输到后端,进行下一步的数据校验和查询并且等待返回结果。

当登录信息经过前端接口传输到后端时,首先会对数据中的密码进行md5加密,防止密码明文造成严重的后果,其次获取到账号在数据库进行查询,如果没有该账号信息,后端会直接返回false 发送给前端,前端检测到错误信息后,就会弹出登录失败的信息提示;如果查询到该用户名则会获取到该用户名下的密码,与提前加密的密码进行比对,如果匹配失败则返回false,匹配成功则返回true,前端接收到成功信息后,将进行页面的跳转,进入到管理主页。

4.2 权限分配

对于学生的档案管理系统,权限的分配显得尤为重要。如果不进行权限的分配,就会造成查询、修改、删除的功能紊乱,用户可以随时查看和修改别人的档案信息,甚至可能删除数据库里全部的档案信息,这将对数据库信息造成不可逆的影响。另一方面,为了防止某些用户的恶意请求,系统的后端添加了一个拦截插件,将对系统内的所有请求进行拦截,查看其是否登录系统,如果未登录系统将自动跳转到登录界面;反之不对此请求进行拦截。在用户登录进系统后,系统的权限分配是通过用户的线程id 来进行判断:

1)如果检测到是管理员,根据api请求的不同,调用不同的数据库表,获取到该数据库表内的全部信息,通过json数组返回给前端呈现数据。

2)如果是学生,根据api的请求的不同,调用不同的数据库表,并且将学生的账号作为限制条件,检索到该学生的数据信息,反馈到前端呈现数据。

4.3 申请功能的实现

该功能分为七个模块,分别是:学科竞赛申请,学术交流申请,科研奖励申请,学术论文申请,科研项目申请,知识产权申请,学术著作申请。通过分析系统需求和申请需要填写的内容,对表单勾选和填充的内容进行限制,申请表单由Vue框架和Element-UI 组件库进行编写,进行数据绑定,通过调用不同的api接口将数据传输到后端,然后再由后端的不同接口接收,通过获取线程id得到提交的账号信息,和提交的数据合并储存到对应的数据库表里。

4.4 数据检索功能

1)传统的MyBatis

当数据库中的数据表字段和关联的表较多时,进行SQL 语句的编写时消耗的时间精力较大。SQL 的语句的编写太过于依赖数据库,这就导致了数据库变得不可移植,不能够随随便便地更换数据库。拼接复杂的SQL 语句时较为复杂,不够灵活,不能够使用变通的方式来应对复杂的语句编写。

2)新型插件MyBatis-Plus

系统采用新型的无侵入插件MyBatis-plus来简化代码,在原来的基础上只做出了增强但没有做出改变,不会对整体的架构产生任何的影响。此插件的损耗极小,直接面向对象进行操作,性能基本没有损耗,还支持代码的生成,可以迅速地生成Mapper、Service、Controller 层代码,能够避免开发重复的代码,不但内置了全局拦截插件,为系统提供delete、update 等操纵的智能拦截,防止对于数据表的误操作,而且还有内置分页的插件,可以输出SQL 语句和执行时间,能够有效地解决查询较慢的问题等[7]。

3)系统采用的功能

此系统通过使用该插件中的条件构造器和分页插件对数据进行检索和分页等,如:在大量的学生中通过限制学号和姓名查找某个学生,在大量的档案中通过限制档案名去查找某个申请记录。当数据较多时在单一界面就会造成堆积,审阅数据就会变得更加困难,而且非常不美观。

5 文件上传下载功能的实现

5.1 功能分析及搭建

在学生申请学术档案时,通常需要证明自己档案记录的真实性,此时就需要通过附件去上传证明材料,对于七个申请模块来说可以将文件的上传和下载功能统一接口和对于文件的校验,前端文件上传页面引用了Element-UI组件库中的上传组件,并且进行修改使其更加贴合系统。

5.2 功能的实现

学生上传文件时,首先进行文件的校验,对文件的类型和大小进行判断,如果不符合预先设置的规则时返回错误信息,提醒用户上传正确的格式,反之则通过统一的api接口将文件传送到后端。当文件传输到后端时,首先获取到文件名使用UUID 重新生成文件名,防止文件名称重复造成文件覆盖,再将文件转存到预设好的资源位置,最后返回正确信息和新生成的文件名,以便于学生提交正确的表单信息时,将文件名存入数据库,便于在主界面预览和下载。

6 系统测试

为了保证系统高质量的运行,发现系统中的缺陷,找出解决方法,以减少用户的损失,就需要对系统整体进行测试。由于通过启动网站在每个页面提交数据来查看系统的各个功能的运行情况,这种测试方式效率低下,需要消耗大量的时间和精力,那么就需要找到系统存在的共性,进行统一批次的测试。此系统都是采用api 接口接收和传递数据,此时就需要采用专业的接口请求软件postman 针对此系统的所有api接口发送请求,查看返回值情况,来判断系统各个功能是否正常运行。

7 结束语

此系统可对研究生的不同学术档案进行收集,解决了人工收集时出现各种问题和其他平台收集时数据不适配等问题,实现了大数据背景下学生档案数据的在线收集,平台的后续还将进行系统功能的添加,使其能够可视化展示数据,便于此系统档案管理人员能够分析出学术档案的数量、类型、趋势等情况,为管理档案提供便利。

猜你喜欢

申请表插件学术
《中国交通信息化》杂志赠阅申请表
自编插件完善App Inventor与乐高机器人通信
如何理解“Curator”:一个由翻译引发的学术思考
《中国交通信息化》杂志赠阅申请表
《中国交通信息化》杂志赠阅申请表
《中国交通信息化》杂志赠阅申请表
MapWindowGIS插件机制及应用
基于Revit MEP的插件制作探讨
学术
创新需要学术争鸣