论文部分内容阅读
【摘要】 随着现今校园活动的日益丰富,使得人工对于某些活动的数据统计变得耗时耗力,且人工统计、核对数据会带来数据无规范性、延时性等问题,针对此类活动的定制化管理系统应运而生。系统除了解决数据运算和存储问题,还面向需求建立角色与模块权限的关系,将模块的访问权限通过角色对应到每一个用户,从而达到业务分离的目的。
【关键词】 复用 角色 权限 可拓展性
引言:
在学院开展班级考评时,统计数据时通常因数据量庞大且无法对其他人进行实时共享,导致成绩的透明度存在缺憾。基于此类问题,对班级评选系统的需求应运而生,以此解决数据量庞大带来的人力消耗和因计算时间导致的同步性实时性差,人工计算操作复杂,数据不易留档等问题[1]。
一、系统分析及功能设计
1.1 关键技术选型
本系统前端采用 Bootstrap[2] 組件库与 jQuery 框架,结合纯原生 html 进行编写,后端语言使用PHP+Yii,服务器操作系统为Nginx[3],数据库采用MySQL。
1.2 系统构成
整个评选系统主要分两部分,首先会进行必要条件评定,必要条件全部符合的会进入参考条件判定,参考条件又分德智体综合测评、班级活动组织与获奖测评、平时卫生检查、早操与早晚自习出勤检查,另附最佳班级、优秀班级评选展示页和奖学金评选展示页。
二、系统详细设计
2.1 德智体综合测评
德智体综合测评模块结构如图 1 所示,其中德育、智育、体育成绩的总分统计规则如下:
德育成绩=德育基础分+德育加分;
智育成绩=智育基础分(导入)×智育分数上限%+智育加分;
体育成绩=体育基础分(导入)+体育加分;
加分:学生按可申请项目申请(填写具体内容),学院管理员审核、赋分(校验加分后不能超过分数上限,如果超过上限,则存储上限分值),赋分后返回到学生,学生二次确认,辅导员最终确认,辅导员可录入或导入。
管理员可以对当前学年可申请项目和评选规则进行设置,实现加分项目类别设置和项目类别对应附加分的设置,还可以对评选规则即德智体成绩分数占比进行设置。
2.2 系统管理
系统管理模块如图 3-2 所示。
2.3 角色、权限管理
角色、权限管理模块分为导航栏管理、用户管理、角色管理、权限管理,由系统管理员进行操作,可实现在该模块中进行角色创建、修改、删除操作,同时能够进行对模块访问的设置。考虑到系统的实际应用场景,本系统不带有注册功能,取而代之的是在创建角色和分配权限操作后,由系统管理员对可访问系统的用户进行创建和角色分配。
三、系统设计与实现
3.1 成绩录入
用户选择本地文件并选择对应分数类型进行导入,导入后服务器获取导入信息后进行文件格式检查,只允许 csv 格式的文件进行导入,具体导入格式以数组形式传递给 FileHelper 类中的 uploadByForm 函数:
$class = Yii::$app->request->post(‘class’);
$file_return_msg = “”;
if (key_exists(‘file’,$_FILES)){
uploadByForm 函数会对传递的文件类型进行判定,如果是允许上传的方法,会在函数内部进行保存,并返回结果,结果为 false 则为上传失败,如果返回文件在服务器上保存的路径则为保存成功
3.2 加分申请
首先对用户填写的学号、理由、申请加分类型进行数据获取,并设置学年为当前年份。
因为这里上传的文件是申请的项目对应的活动照片,所以预先设定了可以上传的文件格式只有图片格式,在进行文件格式检查后上传到服务器并保存到设定的/var/www/html/check_pic/文件夹下便于后续进行获取。
3.3 申请审核
通过查询数据库获得当前审核状态为 0(未审核)的数据和对应的申请类型,作为回显值显示在申请审核的列表页。
在审核页面首先根据id获取到该申请的全部信息,点击通过或拒绝按钮时,将该id对应的申请信息的审核状态置为 1(通过)/2(拒绝),在分数计算时会将全部通过的分数作为附加分,未审核或拒绝的申请不能作为有效申请参与加分。
3.4 德智体评分设置
首先对各项目分数上限与基础分进行获取,如果未获取到则设定默认值为 0,在执行存储操作之前先删除当前学年已经设定的分数,保证数据库中同学年分数规则与基础分唯一,因为考虑到如果此处分数更改一定是评价策略发生改变,则对之前的策略不进行留档。
3.5 分数计算
首先对基础信息如学年、学生信息、基础分等进行数据获取,并为每一名学生按照预先设定的基础分、加分、扣分数据结构设置预定数组供最后分数计算时使用。
对每名学生进行德智体三维基础分与最高分设置,并获取到每名学生的加分、减分项,加载到预先设定的分数数组中。
在学生成绩表中按照课程类别(体育/文化)分别取平均值计算出体育、智育分数后加载到数组中设置为体育、智育基础分。
最终计算德智体综合评分,按照(基础分+附加分)*分数占比的公式计算最终个人得分,每一维度得分保证不高于预先设置的最高分数,如果超过最高分数则该维度最终得分即为最高得分,最后将计算好的成绩存入个人最终成绩表。
四、系统测试
4.1 黑盒测试
面向该系统的黑盒测试主要针对用户、角色、权限分配、数据导入、最终得分计算、加分申请、申请审核、导航栏管理模块以及权限系统是否生效,测试用例与测试结果见表 1。
4.2 测试结果
通过在网页端和手机端进行测试,基本完成要实现的内容,且界面显示友好。但是对于部分功能仍有优化空间,例如在文件导入功能中目前对文件格式要求严格,只能为 csv 文件,可以进行多项表格文件导入拓展,同时接口的响应速度也有一定优化空间,可以通过分布式的方式取得更快速度的响应。
五、结束语
本系统在实现了班级考评的个性化需求同时,在项目初期建立了通用可复用底层逻辑结构,建立角色权限控制系统,基于现今市面上多数管理系统的设计模式,对各种类系统的优势思路进行效仿,设计了半通用性半定制化系统。此设计模式使得系统不再因定制化需求而无法复用,在总体结构通用的大前提下各小功能独立且由数据控制而非在代码中写死,为程序后续的拓展性带来保障。
参 考 文 献
[1] Mark Gibbs,Mark Gibbs. Tools you need: W3 Schools color libraries and Bootstrap Studio for Web building[J]. Network World (Online),2016.
[2] Ben Kepes,Ben Kepes. NGINX ups the web app performance ante[J]. Network World(Online),2017.
【关键词】 复用 角色 权限 可拓展性
引言:
在学院开展班级考评时,统计数据时通常因数据量庞大且无法对其他人进行实时共享,导致成绩的透明度存在缺憾。基于此类问题,对班级评选系统的需求应运而生,以此解决数据量庞大带来的人力消耗和因计算时间导致的同步性实时性差,人工计算操作复杂,数据不易留档等问题[1]。
一、系统分析及功能设计
1.1 关键技术选型
本系统前端采用 Bootstrap[2] 組件库与 jQuery 框架,结合纯原生 html 进行编写,后端语言使用PHP+Yii,服务器操作系统为Nginx[3],数据库采用MySQL。
1.2 系统构成
整个评选系统主要分两部分,首先会进行必要条件评定,必要条件全部符合的会进入参考条件判定,参考条件又分德智体综合测评、班级活动组织与获奖测评、平时卫生检查、早操与早晚自习出勤检查,另附最佳班级、优秀班级评选展示页和奖学金评选展示页。
二、系统详细设计
2.1 德智体综合测评
德智体综合测评模块结构如图 1 所示,其中德育、智育、体育成绩的总分统计规则如下:
德育成绩=德育基础分+德育加分;
智育成绩=智育基础分(导入)×智育分数上限%+智育加分;
体育成绩=体育基础分(导入)+体育加分;
加分:学生按可申请项目申请(填写具体内容),学院管理员审核、赋分(校验加分后不能超过分数上限,如果超过上限,则存储上限分值),赋分后返回到学生,学生二次确认,辅导员最终确认,辅导员可录入或导入。
管理员可以对当前学年可申请项目和评选规则进行设置,实现加分项目类别设置和项目类别对应附加分的设置,还可以对评选规则即德智体成绩分数占比进行设置。
2.2 系统管理
系统管理模块如图 3-2 所示。
2.3 角色、权限管理
角色、权限管理模块分为导航栏管理、用户管理、角色管理、权限管理,由系统管理员进行操作,可实现在该模块中进行角色创建、修改、删除操作,同时能够进行对模块访问的设置。考虑到系统的实际应用场景,本系统不带有注册功能,取而代之的是在创建角色和分配权限操作后,由系统管理员对可访问系统的用户进行创建和角色分配。
三、系统设计与实现
3.1 成绩录入
用户选择本地文件并选择对应分数类型进行导入,导入后服务器获取导入信息后进行文件格式检查,只允许 csv 格式的文件进行导入,具体导入格式以数组形式传递给 FileHelper 类中的 uploadByForm 函数:
$class = Yii::$app->request->post(‘class’);
$file_return_msg = “”;
if (key_exists(‘file’,$_FILES)){
uploadByForm 函数会对传递的文件类型进行判定,如果是允许上传的方法,会在函数内部进行保存,并返回结果,结果为 false 则为上传失败,如果返回文件在服务器上保存的路径则为保存成功
3.2 加分申请
首先对用户填写的学号、理由、申请加分类型进行数据获取,并设置学年为当前年份。
因为这里上传的文件是申请的项目对应的活动照片,所以预先设定了可以上传的文件格式只有图片格式,在进行文件格式检查后上传到服务器并保存到设定的/var/www/html/check_pic/文件夹下便于后续进行获取。
3.3 申请审核
通过查询数据库获得当前审核状态为 0(未审核)的数据和对应的申请类型,作为回显值显示在申请审核的列表页。
在审核页面首先根据id获取到该申请的全部信息,点击通过或拒绝按钮时,将该id对应的申请信息的审核状态置为 1(通过)/2(拒绝),在分数计算时会将全部通过的分数作为附加分,未审核或拒绝的申请不能作为有效申请参与加分。
3.4 德智体评分设置
首先对各项目分数上限与基础分进行获取,如果未获取到则设定默认值为 0,在执行存储操作之前先删除当前学年已经设定的分数,保证数据库中同学年分数规则与基础分唯一,因为考虑到如果此处分数更改一定是评价策略发生改变,则对之前的策略不进行留档。
3.5 分数计算
首先对基础信息如学年、学生信息、基础分等进行数据获取,并为每一名学生按照预先设定的基础分、加分、扣分数据结构设置预定数组供最后分数计算时使用。
对每名学生进行德智体三维基础分与最高分设置,并获取到每名学生的加分、减分项,加载到预先设定的分数数组中。
在学生成绩表中按照课程类别(体育/文化)分别取平均值计算出体育、智育分数后加载到数组中设置为体育、智育基础分。
最终计算德智体综合评分,按照(基础分+附加分)*分数占比的公式计算最终个人得分,每一维度得分保证不高于预先设置的最高分数,如果超过最高分数则该维度最终得分即为最高得分,最后将计算好的成绩存入个人最终成绩表。
四、系统测试
4.1 黑盒测试
面向该系统的黑盒测试主要针对用户、角色、权限分配、数据导入、最终得分计算、加分申请、申请审核、导航栏管理模块以及权限系统是否生效,测试用例与测试结果见表 1。
4.2 测试结果
通过在网页端和手机端进行测试,基本完成要实现的内容,且界面显示友好。但是对于部分功能仍有优化空间,例如在文件导入功能中目前对文件格式要求严格,只能为 csv 文件,可以进行多项表格文件导入拓展,同时接口的响应速度也有一定优化空间,可以通过分布式的方式取得更快速度的响应。
五、结束语
本系统在实现了班级考评的个性化需求同时,在项目初期建立了通用可复用底层逻辑结构,建立角色权限控制系统,基于现今市面上多数管理系统的设计模式,对各种类系统的优势思路进行效仿,设计了半通用性半定制化系统。此设计模式使得系统不再因定制化需求而无法复用,在总体结构通用的大前提下各小功能独立且由数据控制而非在代码中写死,为程序后续的拓展性带来保障。
参 考 文 献
[1] Mark Gibbs,Mark Gibbs. Tools you need: W3 Schools color libraries and Bootstrap Studio for Web building[J]. Network World (Online),2016.
[2] Ben Kepes,Ben Kepes. NGINX ups the web app performance ante[J]. Network World(Online),2017.