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

分析模块演示 / 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".


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