论文部分内容阅读
摘 要:鹏达教务管理系统辅助程序设计基于B/S架构,数据库选取MySQL,编程语言选择PHP,在MVC框架下,使用Ajax技术和Smarty模板引擎,在Bootstrap统一制作前端CSS样式开发的。程序能按照学校排课数据收集与整理的业务流程完成,并提供高度的共享和开放。该程序也极大的提高了工作人员的工作效率,更好的服务于整体的信息化建设。
关键词:鹏达;教务;Bootstrap;Ajax
1. 项目背景
泸州职业技术学院目前使用的教务管理系统是鹏达,作为曾经成熟的产品,在很多地方还是运行的比较可以。但由于学生规模的的成倍增长,教学环境的变化,一些模块不太适合学校的发展和使用。我们不得以手工完成一部分操作和整理数据,再结合鹏达教务管理才使的教学运行正常的进行。例如对于排课数据收集与整理不太适合学校的信息化发展。
在排课数据收集与整理阶段,学校目前执行的流程是:首先教务管理员从鹏达教务管理系统中导出所有专业当前排课学期的课程,导出的信息主要有专业名称、课程名称、学分、总课时、开始周、结束周、课程承担院系、课程开设院系、所属年级等主要字段;然后由教务管理员根据班级,按专业生成教学班列表,而作法就是在Excel中将一个班级一个班级的将所属于的专业开设的课程复制粘贴到新的工作表,形成如图1教学班列表所示。最后在按各课程承担院系分发,由各承担院系填報任课教师,等待返回安排的任课教师后,再次汇总成一个总表,表的格式也和图1所示一样。
图1 教学班列表
可见在整个流程中,不仅做着很多重复的操作,还可能按班级制作教学班列表的时候粘贴出错,造成课程的漏排等错误。再着由于各个承担院系一般都由几个教研室组成,每个教研室的课程由每个教研室主任安排填写,只有等院系上所有教研室安排完后汇总完后再返回教务处。整个过程时间跨度非常长,且非常容易造成不易被教务管理员发现的数据错误。
2.解决方法
设计一个辅助程序来完成排课数据收集与整理,可以保证数据的正确性,完全告别单调、重复的机械复制和粘贴。通过辅助程序优化整个流程,当需要排课数据收集与整理时,教务管理员将所有专业当前排课的课程和所有班级从教务管理系统中分别导出,再导入到辅助程序设计中,直接单击教学班列表生成,由导入的课程和班级一键生成。然后由各个承担院系及其下属的教研室完成任课教师,完成后就提交,教务管理员就可以随时了解课程安排的进度,而全院教师也对自己所任课的课程更加及时、准确的知晓。
3.辅助程序的设计
3.1 开发工具
辅助程序的开放完全采用开源软件,就不必再增加另外的硬件和软件方面的经费支出。具体的就是采用LAMP(Linux+Apache+MySQL+PHP)。
在实际开发中为了将业务和数据、前端显示分离,采用MVC(Model View Controller)架构。将数据在前端显示主要利用了Smarty框架模板引擎,而在显示时为了适应不同浏览器、不同设备呈现最好效果,选用了Bootstrap来统一整理CSS。
3.2 系统设计
辅助程序的设计主要有基础信息管理、课程管理、系统管理、导入中心四个核心模块。四个核心模块下面再设置小模块,如图2 系统功能模块图所示。
图2 系统功能模块图
在设计中只要超过了10条记录的信息都应支持导入和导出,也就是说其中用户信息、班级信息、课程信息都支持导入和导出。通过权限管理对角色的处理,不同身份呈现不同的模块和菜单,在权限控制上按角色实现基于细粒度的权限授予和撤销。
4. 系统实现
进行系统,首先看到时登录平台,登录是基于细粒度权限角色管理的第一步,只有登录了,才知道用户属于什么角色,具有哪些授权,也才能知道用户是否是非法授权。因此在登录中密码利用SHA-512算法进行加密,最后存在数据库中的以密文形式,这样如果数据库如果受到入侵,入侵者也不能看到用户的密码。实现登录界面如图3 登录界面所示。
图3 登录界面
登录成功后,根据属于的角色,查找有权限的模板,最后呈现出操作主界面的。例如测试的用户名为001001,角色属于信息工程系的一个教研室主任,他能看到的界面如图4 操作主界面所示。在填报课程列表中就只列出了承担院系是信息工程的课程,在界面上有一个课程信息导出,可以实时将当前的教学班课程列表直接导出到Excel当中。
图4 操作主界面
在其中填报课程当中,是用于Ajax异步保存,让用户像是在Excel中编辑一样。而它实现的核心代码如下所示。
$kcapxx=new KcapxxBll();
$dataFlag=$kcapxx->saveUserKcapInfo($jxct1zhks, $jxct1, $jxct2zhks, $jxct2, $rkjs, $bz, $id);
echo $dataFlag;
在代码中KcapxxBll为在程序中编制的业务实现类,而saveUserKcapInfo()则在业务实现类中已实现的方法。
按同样的方法编写模型类,接口类,实现类,业务实现类,将所有模块编写完成。
5. 结束语
根据程序运行测试结果可以看出,设计的程序能满足排课数据收集与整理的需求,能及时准确的完成数据的分发,汇总和填报。对课程填报的实时情况可随时监控,极大的缩短了整个数据收集与整理时间周期。对教务管理员、教学副主任和教研室主任的工作效率也是一个极大的提升和保证。
参考文献
[1]Bootstrap 3中文文档.Bootstrap的使用 [EB/OL].http://v3.bootcss.com/css/.
[2]Luke Welling,Laura Thomsona著,吴欣 译.PHP and MySQL Web Developent[M].北京:机械工业出版社,2009,180-190.
[3] 姜承尧.MySQL技术内幕:InnoDB存储引擎(第2版)[M].北京:机械工业出版社,2013,80-105.
作者简介:向兰宣(1983~),男(汉族),四川泸州市人,泸州职业技术学院教务处教师,硕士学位,研究方向,计算机技术的应用、Web网站的设计。
关键词:鹏达;教务;Bootstrap;Ajax
1. 项目背景
泸州职业技术学院目前使用的教务管理系统是鹏达,作为曾经成熟的产品,在很多地方还是运行的比较可以。但由于学生规模的的成倍增长,教学环境的变化,一些模块不太适合学校的发展和使用。我们不得以手工完成一部分操作和整理数据,再结合鹏达教务管理才使的教学运行正常的进行。例如对于排课数据收集与整理不太适合学校的信息化发展。
在排课数据收集与整理阶段,学校目前执行的流程是:首先教务管理员从鹏达教务管理系统中导出所有专业当前排课学期的课程,导出的信息主要有专业名称、课程名称、学分、总课时、开始周、结束周、课程承担院系、课程开设院系、所属年级等主要字段;然后由教务管理员根据班级,按专业生成教学班列表,而作法就是在Excel中将一个班级一个班级的将所属于的专业开设的课程复制粘贴到新的工作表,形成如图1教学班列表所示。最后在按各课程承担院系分发,由各承担院系填報任课教师,等待返回安排的任课教师后,再次汇总成一个总表,表的格式也和图1所示一样。
图1 教学班列表
可见在整个流程中,不仅做着很多重复的操作,还可能按班级制作教学班列表的时候粘贴出错,造成课程的漏排等错误。再着由于各个承担院系一般都由几个教研室组成,每个教研室的课程由每个教研室主任安排填写,只有等院系上所有教研室安排完后汇总完后再返回教务处。整个过程时间跨度非常长,且非常容易造成不易被教务管理员发现的数据错误。
2.解决方法
设计一个辅助程序来完成排课数据收集与整理,可以保证数据的正确性,完全告别单调、重复的机械复制和粘贴。通过辅助程序优化整个流程,当需要排课数据收集与整理时,教务管理员将所有专业当前排课的课程和所有班级从教务管理系统中分别导出,再导入到辅助程序设计中,直接单击教学班列表生成,由导入的课程和班级一键生成。然后由各个承担院系及其下属的教研室完成任课教师,完成后就提交,教务管理员就可以随时了解课程安排的进度,而全院教师也对自己所任课的课程更加及时、准确的知晓。
3.辅助程序的设计
3.1 开发工具
辅助程序的开放完全采用开源软件,就不必再增加另外的硬件和软件方面的经费支出。具体的就是采用LAMP(Linux+Apache+MySQL+PHP)。
在实际开发中为了将业务和数据、前端显示分离,采用MVC(Model View Controller)架构。将数据在前端显示主要利用了Smarty框架模板引擎,而在显示时为了适应不同浏览器、不同设备呈现最好效果,选用了Bootstrap来统一整理CSS。
3.2 系统设计
辅助程序的设计主要有基础信息管理、课程管理、系统管理、导入中心四个核心模块。四个核心模块下面再设置小模块,如图2 系统功能模块图所示。
图2 系统功能模块图
在设计中只要超过了10条记录的信息都应支持导入和导出,也就是说其中用户信息、班级信息、课程信息都支持导入和导出。通过权限管理对角色的处理,不同身份呈现不同的模块和菜单,在权限控制上按角色实现基于细粒度的权限授予和撤销。
4. 系统实现
进行系统,首先看到时登录平台,登录是基于细粒度权限角色管理的第一步,只有登录了,才知道用户属于什么角色,具有哪些授权,也才能知道用户是否是非法授权。因此在登录中密码利用SHA-512算法进行加密,最后存在数据库中的以密文形式,这样如果数据库如果受到入侵,入侵者也不能看到用户的密码。实现登录界面如图3 登录界面所示。
图3 登录界面
登录成功后,根据属于的角色,查找有权限的模板,最后呈现出操作主界面的。例如测试的用户名为001001,角色属于信息工程系的一个教研室主任,他能看到的界面如图4 操作主界面所示。在填报课程列表中就只列出了承担院系是信息工程的课程,在界面上有一个课程信息导出,可以实时将当前的教学班课程列表直接导出到Excel当中。
图4 操作主界面
在其中填报课程当中,是用于Ajax异步保存,让用户像是在Excel中编辑一样。而它实现的核心代码如下所示。
$kcapxx=new KcapxxBll();
$dataFlag=$kcapxx->saveUserKcapInfo($jxct1zhks, $jxct1, $jxct2zhks, $jxct2, $rkjs, $bz, $id);
echo $dataFlag;
在代码中KcapxxBll为在程序中编制的业务实现类,而saveUserKcapInfo()则在业务实现类中已实现的方法。
按同样的方法编写模型类,接口类,实现类,业务实现类,将所有模块编写完成。
5. 结束语
根据程序运行测试结果可以看出,设计的程序能满足排课数据收集与整理的需求,能及时准确的完成数据的分发,汇总和填报。对课程填报的实时情况可随时监控,极大的缩短了整个数据收集与整理时间周期。对教务管理员、教学副主任和教研室主任的工作效率也是一个极大的提升和保证。
参考文献
[1]Bootstrap 3中文文档.Bootstrap的使用 [EB/OL].http://v3.bootcss.com/css/.
[2]Luke Welling,Laura Thomsona著,吴欣 译.PHP and MySQL Web Developent[M].北京:机械工业出版社,2009,180-190.
[3] 姜承尧.MySQL技术内幕:InnoDB存储引擎(第2版)[M].北京:机械工业出版社,2013,80-105.
作者简介:向兰宣(1983~),男(汉族),四川泸州市人,泸州职业技术学院教务处教师,硕士学位,研究方向,计算机技术的应用、Web网站的设计。