如何基于开源的CMS构建在线预约系统?

 

我们之前讲过,学术会议报名、学校学生报名、问卷调研等系统的构建,都是可以基于在线表单来实现,Drupal里面就是Webform,具体可以参考我们之前的《开源的CMS如何实现问卷调研?

在线预约跟报名相比,会多一些功能,比如预约时间、是否还有名额、场地每周都可以预约等,常用的场景比如: 

  • 预约医生/律师等
  • 预约场地/会议室/座位
  • 预约考试/面试

那么到底如何通过开源的CMS来构建在线预约功能?本文基于Webform的功能,进行升级,构建一个在线预约系统。

 

 

在线预约的数据结构设计

 

PS:本文是基于Webform,如果没有看过前篇,请一定看这篇《开源的CMS如何实现问卷调研?》。

功能方面,需要设计两个表,一个时间单页预约时间表(TimeSlot),一个预约记录表(SlotSubmission),具体参考下图

 

整体设计思路

 

我们总结了常见的几种情况,设计了上面的数据结构表,具体的设计思路和要点,简单说明一下,如下所示:

  • 创建预约,后台要先创建一个WebForm,字段由用户自定义,比如报名人、联系方式等等。
  • 创建预约,该预约可以重复(重复都是以周/天为单位),如果重复,可以选择忽略的日期,比如周末,周三等。
  • 提交预约,必要的额外的字段:预约日期、预约数量
  • 提交预约,检查是否已经约满。通过Group by slot, date可以迅速获取所有的slot的预约总量,或者单个slot的预约量
  • 预约数量,如果重复,预约时间的容量都是固定的,不存在这个这周1个,下周2个

关于预约的展示,可以完全参考Outlook的会议日程设计,以周为单位,可以缩放,左右前进后退。

另外,如果是重复的会议,可以在每一个可用的日期显示都显示这个预约点,用户点击任意一个,都会打开设置,也可以删掉这一系列预约。

当前,前端具体的实现也可以根据难以程度来稍微做一些调整。

 

 

最后安利一下,表单系统也可以作为考试来用,因此表单也是我们在线教育平台的一个重要功能,大家可以点击查看相关产品和文章。

1. 如何通过开源方案自建视频课程平台

2. 在线视频教育学习平台介绍