bPlanner 多学生教务信息整合系统

介绍 Introduction

bPlanner 是一个多学生教务信息整合系统,利用它可以获得一部分学生的课程情况、考试成绩、考试地点汇总等信息,可利用于活动时间安排、考试成绩分析等用途。

虽然系统目前仍是作者个人使用为主,但其已经为作者所在的班级提供多次服务。

其由三部分组成:

  • 开源的 PHP 教务系统读取库,以对象形式调用并处理正方教务系统中的课表、校历、成绩等信息,且可自动利用调课信息对课表进行修改;
    通过替换这一库文件,可对其他使用不同教务系统的学校进行支持;
  • 调用上述接口,将教务信息保存至系统内,并导出为 JSON 文件的 PHP 采集模块
  • 读取导出的 JSON 文件,在浏览器内离线对教务信息进行分析显示的分析模块

借助读取库和一小点代码,可将课表生成为 iCalendar 文件,导入进日历软件。

bPlanner is a multi-student course information intergration system. It can fetch different students' course information, exam grades, assigned exam location, etc, which is important in event scheduling and exam grade analysis.

Though this is more of a home-made and self-use stuff, it has benefited the class of the author a lot.

It is made up of three parts.

  • Open-sourced PHP course system fetching library. It handles elements in Zhengfang Course System like courses and grades as objects. It is able to modify course calendar with course partial changes records in the system.
    By replacing the library, bPlanner can support other course systems in other universities.
  • A PHP collection module. It makes use of the library above to get infomation, and save it as a JSON file.
  • An analysis module. JSON file can be transformed into useful statistical data to display in the browser by the module, without server required.

As a simple side-project, an iCalendar file can be generated by the fetching library and some assistance code, which make it possible to import the course schedule into a common calendar software.

在线展示 Demostration

视频地址:YouTube (with English subtitles) 优酷

分析模块演示 / Anaylsis Webpage Demo:http://zaibit.com/bPlanner/demo.html

专题介绍网站 / Product Minisite:http://zaibit.com/bPlanner/

技术特性 Technical Features

合理的系统分块,使数据采集与利用更加灵活。面向对象的程序设计,使系统易于修改,目前共完成 2 个使用完全不同的教务系统的学校的适配。

A logical system design leaves convinence to data collection and analysis. The object-oriented program design makes it easy to adapt the system to other schools (currently I have adapted 2 schools using totally different course systems).

数据采集通过与学校相关系统对接,支持读卡器刷校园卡读取学号、手动输入教务系统密码,可用于签到与信息采集同时进行的场景。

The data collection process supports the "check-in + collection" scene, where students swipe their school ID cards and type the password. The school ID identification is made possible by intergration with a related school public system.

数据分析采用 alasql JavaScript 库,对复杂的数据检索请求更加灵活。分析界面采用 Material Design Lite 库设计,在手机上特别自主设计了新手指引,提示菜单的位置。

The data analysis uses alasql JavaScript library, which makes complex data query development with ease. The user interface is based on Material Design Lite. I designed a special introduction animation on mobile, to raise attention to the menu button.

课表界面可显示指定星期、指定范围内人员的上课、空闲情况。

The lesson module can show courses or busy/free status of specific students by week. The student filter criteria can be customized category, major and class.

成绩界面可统计课程平均分、人员成绩和排名。

The grade module can show statistics of lessons average points, students GPA and rank.

数据分析结果支持复制到 Word 中,便于安排值班等需求。

The results can be copied into Word as tables. Sometimes this benifits students on-duty scheduling.

设想 Future

这些功能的需求虽然有,但并不多。实际上这是一个完备的教务系统自身可提供的附加功能。

目前这套系统的体验尚可,采集的数据基本符合使用需求,但关键流程因为数据安全原因,还未完全实现自助化,如采集参数的设置等。

These features is needed, but not that much (they are mostly assistive for orginazation management).

The user experience for bPlanner is OK, and the collected data fits the need, but due to data safety reasons, collection configuration needs to be done by hand, rather than "self-service".

发表评论

电子邮件地址不会被公开。 必填项已用*标注