你负责健身房、有氧运动班、游泳班课程,或者你卖课程服务,且模式偏向“团班开课,不规定学生出席时段”——学生可以挑自己有空的时间来,计费采“买点数/堂数”或“吃到饱”制度;你原本以打印件或 EXCEL 处理所有学员、帐务与课务信息,现在想更系统化管理,最好有个针对自家缴费方式、开课、排课模式客制的系统,但不希望太贵太耗时?你可以从这篇文章提供的方法入手,试试用 Ragic 来打造自己的系统。
如果你还不知道 Ragic 是什么,Ragic 是个自助设计信息系统的工具,我们提供类似 Excel 的简易编辑接口,但能做到数据库的功能,让不会写程序的人也能为自己量身打造企业应用,只要在主页或本篇文章最下方登记帐号就能使用(有提供免费版可试用)。
由于 Ragic 的高弹性模式,和补教机构、新兴的各种课程机构的数据管理需求相合,近年来常有补习班、家教班、才艺班、游泳班、健身房等客户来信询问如何设计系统,以管理自家数据、排课、订购缴费、点名扣堂数等。
在累积许多针对不同课程机构的不同设计建议后,我们将相关的教学集结成系列文章,希望协助有兴趣的新订户,更快针对自己适合的模式快速上手。如果你也是正在查找客制化信息系统的课程机构,你可以先从本系列的总论开始,总论中将课程机构分成四个类别,可以在辨认自家属于哪一种类型后,直接点到对应文章来阅读。
本文主要解说总论中课程管理模块之外的第 ① 种模式:团班开课、学生可任选上课时段开课模式,开的是固定时段的团班,但学员可以在所有时段里,挑自己想上课的时段,弹性地报到上课。以下会完全针对这样的模式,根据最常见的“数据管理”、“订购缴费”、“点名(扣堂数)”三大流程,提供设计建议与灵感。
你可以点选以下链接查看演示表单(后面的教学都可以对照演示表单查看,也可以在演示表单上新增数据测试效果):
我们建议你除了演示表单之外,最好也先直接登记一个 Ragic 帐号来实际搭配教学玩玩看,你会发现很多表单建置或流程操作实际做起来并不难。接下来会将此模式的数据 / 流程管理需求,拆成前面所说的“数据管理”、“订购缴费”、“点名(扣堂数)”三个阶段来解说,概要制表如下:
(一)管数据 | (二)订购缴费 | (三)排课、纪录 | ||||
基本数据 | 课表 | 订购 | 缴费 | 排课 / 预约课程 | 生成点名单 / 上课纪录 | 扣堂数 |
老师、学生、上课站点、开课清单、付费方案各开一张表单纪录,说明见此 |
基础版:在老师、上课场地等表单添加包含上课时间的参照子表格即可当课表参阅。说明见此 进阶版:在开课清单创建子表格,记载每次上课日期,再根据子表格(生成新表单的)信息生成行事历报表或行事历同步,说明见此 |
方案订购单,说明见此 | 视缴费与订购的关系而定,说明见此 |
此模式下,课表制定后就不需排课。若不用预约不需要此流程。 |
不预约版:抛转开课清单或将“进阶版课表”表单改造成点名单,手动输入学生名单。说明见此 | 上课结束后,在点名单使用“扣堂数”动作单击钮扣堂数,会自动将订购单上的堂数扣减,说明见此 |
若课前需要预约:创建预约单,预约单需要有一个链接字段链接自对应的(改造进阶版课表的)“点名单”数据,说明见此 |
要预约版:将“进阶版课表”表单改造成点名单,且要在开放预约前就创建点名单数据;将预约单数据插入点名单当参照子表格,说明见此
|
接下来,我们就直接拆解需求,让你一步步 100% 根据自家需求,做出最符合心中理想的系统!
万丈高楼平地起,在有个厉害的课程管理系统,管好整个“流程”之前,最基本的,就是要先能把名单、清单、列表这模拟较固定的“数据”整理好、分门别类放好,方便查找和调用。这部分透过 Ragic 最基本的创建表单功能就可以达到,可以像编辑 Excel 表一样创建需要的字段。
以老师数据来说,可以创建一张名为老师名单的表单(点链接可进入范例表单直接测试操作),纪录编号、姓名、专长、联络方式等,可以依照自身需求决定要有哪些字段,每一笔老师数据的表单页长相可以像下图:
同一张表单的所有数据可以切换到列表页查看多笔数据,例如创建了两笔老师数据,列表页可能会呈现这个样子:
学生名单也可以用一样的模式建檔管理,例如设计出这样的表单页,一样可以调整字段(也一样可以切换为列表页):
如果你有多个上课站点、教室可供安排,也可以将它们创建成表单数据:
人、站点数据整顿好了,课程机构最重要的元素:课程,一样可以列表管理。一般来说,课程机构可能会定期开相同/类似的课程(例如春季班、秋季班),为了之后的管理方便,不同期的课程区分成不同数据会比较好。如果课程要固定时段的话,不同时段也该区分成不同数据。你可以创建像开课清单这样的表单:
课程数据的一些地方可以跟已经创建好表单的相关信息链接,例如:上图有两个字段内容是蓝色的超链接(授课老师编号、上课站点),这就是因为这张开课清单已经和老师、上课站点表单做链接了。(老师表单是链接老师编号、加载老师姓名;上课站点是直接链接上课站点名称)
跟“固定上课时段必须出席”一个萝卜一个坑的模式比起来,“每个人可以任选上课时段”的模式,有时候更有可能是“一个方案搭配多种课程”的(例如买 20 堂有氧课,可上有氧 A 班、B 班,或可上基础有氧也可上阶梯有氧;或是买一年的课,不限次数所有美语课程吃到饱)。如果是这样的话,你会需要在课程数据之外,另外创建“付费方案”的表单,并利用链接字段创建方案与课程(开课清单)间的关系(如下图)。
已经初步排好的课,开课机构会需要一份完整读课表,来纪录什么时间点,有哪些课正在进行;也会需要从单一老师、单一上课站点为视角,检视他们还有什么空堂可以加课进去。
以周期性、团班开课的模式来说,“检视课表”的需求可以有多种方式达成,包括 1.直接显示在表单上 或是 2. 同步/引出成行事历格式,请见以下提案。
课表总表:“开课清单”表单本身即可看到所有信息,有必要的话可以设“开课中”“尚未开课(课程结束)”的状态字段,设固定筛选让没有开课的课程不要显示出来。另外可考虑在左侧搜索列保存需要的筛选条件,例如星期一、星期二、星期三...或特定时段等,方便搜索。
老师、上课站点课表:可以利用 Ragic 的参照子表格功能,在老师 / 上课站点表单添加此信息(在设计模式下选择“显示从其他表单的链接”,将“开课清单”表单拉进来当参照子表格即可)。(子表格的意义可看此教学文章,参照子表格教学见这里。)
设计好之后,老师 / 上课站点表单就会像演示表单一样,底下的子表格会显示他们目前的课表。举这一笔范例表单的数据来说,:
“负责课程信息”区块就是参照子表格,列出了“开课清单”中所有老师是 Eason 的课程。旁边新增了一个子表格字段“查询日期状态”,套公式为 IF(OR(A10 < G12,A10 > H12),'未开课','开课中'),这样只要上面的“查询日期”输入的时间落在开课期间,该字段就会显示“开课中”,方便确认状态,也不会看到不需要的过期信息,可以透过子表格字段首部筛选让子表格只显示开课中的课程数据。
你也可以设公式让“查询日期”字段自动显示今天的日期。(建议使用 TODAYTZ() 公式搭配每日公式重算)
可以透过串连外部的“行事历同步”或 Ragic 内部报表工具“行事历报表”,把课表变成行事历格式,更好对照时间,以及比对自己的其他进程。
行事历同步:以“周期上课”的模式来说,前面的开课清单范例表单已经有课程开始日期、结束日期,课程开始时间、结束时间这几个字段的信息,可以到工具 > 行事历同步,利用“开始日期”字段,将这张表单的上课信息同步到 Google 日历:
将该周的 Google 日历以周历方式显示,会像这样:
如果忽略上面的“日期”,这个页面其实已经可以用友好列印打印输出来当课表了。
不过,既然数据已经同步到网络日历,其实有更数码化的方式来处理课表。可以让有需要用户份日历的人,拷贝信息到自己行事历后,用 Google 日历创建重复活动的功能,将所有上课日期都拷贝到行事历上,这个功能也能设置结束日期。
行事历报表:假如你希望行事历也放在 Ragic 上,也可以改造“开课清单”或拷贝“开课清单”表单(多版本表单 > 数据相连的模式)来达成。在表单上新增一组子表格来纪录每次上课的时间,再利用子表格生成新表单的方法生成新表单,然后利用这张新表单来生成行事历报表。
这个方法的范例表单请见:开课清单、子表格生成新表单的点名单 / 课表,以及依此方法生成出来的行事历课表。(子表格中上课日期时间之外的字段是利用公式带入的;这里只有输入一些范例数据。)
这个方法要多费一层工,要手动输入一些日期数据,不过课表的来源表单可以当点名单用,因此目前建议如果是有需要预先创建点名单数据、管理预约数据需求的人,再采用这个方法。
注:关于“行事历同步”与“行事历报表”要选用哪个?可以参阅这篇文档说明的差别。
有些人会想把课表做成一般常见的格子状二维表格,像下图这样的:
必须说明的是, Ragic 没有特别支持这样的格式,比较不容易用 Ragic 做出完全一样的格式。
如果是每周上课,且非常希望有这种格式,可以试着在“开课清单”新增“上课时段”的选项字段,在原本“开始时间”“结束时间”两个日期时间字段之外,把上课时段区隔化成第一堂、第二堂、第三堂...并填入值,“星期”字段也必须填入值。接着,用 Ragic 报表功能生成数据透视表,中间显示的值选“课程名称”即可。
(注:这里的教学都以“你手上已经有排好的课,只是要整理数据、之后可能弹性调度”为前提。如果是有一大堆班级、一大堆课程,希望透过软件来初步排课的话,Ragic 目前没有比较合适的方法。)
在 Ragic ,如果想管理一组数据,最简单的方式就是把数据整理成一张或多张表单,而要是想管理 / 跟踪 / 纪录根据这些数据生成的流程,最简单的方式则是创建一张专门管理此流程的表单,以链接与加载将其他表单数据带入,一般卖卖业的“订单管理”、“出货”、“入库”流程,行政总务需要的“设备租借”,人资需要的“加班申请”等,在 Ragic 都是用这种方法做的。
“课程订购”这类流程的管理需求就和“订单管理”类似,对此全无概念者,可以先参阅我们以客户、商品、订单管理三张表单为例的基础教学(视频版,较好吸收),将道理套用到学生、课程(或方案)、课程订购单,再服用后面的建议。
以团班任选时段上课模式来说,如同前面所说明的,适合直接创建一张“课程方案”表单来管理产品信息,比照“订单管理”的模式,这里也应该创建一张类似订单的“方案订购单”表单,链接课程方案信息。
“链接与加载”这个 Ragic 最普遍、常用的进阶功能,在这类流程管理的表单中有两大功用:(1)节省重复登打信息的时间;(2)藉由此功能,将管流程的“订购表单”与其他信息表单链接在一起后,学生表单就可以利用显示从其他表单的链接(参照子表格)的功能,自动秀出学生订购过的课程信息:
这组演示表单中没有特别做出缴费单,不过有需要的话,可以参阅总论文章中的说明来做。假如您的一笔订购数据 = 一笔缴费数据的话,在订购单旁边新增缴费相关的字段即可,可以参阅课程管理模块课程订购单的缴费区块字段来做。如果是希望集结几笔订购数据做成一张缴费单,或是一笔订购数据会分期缴费的话,则是要参阅此部分的扩展教学,来创建独立的缴费单。
“团班任选上课时段”的模式,可分成“不用事先预约”和“需要事先预约”两种来说。
如果不用控管人数,学生可以随到随上的话,情况比较单纯,不用处理预约流程,只要创建一张点名单来记录谁有上课就可以了。
点名单所需要的多数信息(当天上的是什么课?上课时间与站点等课程信息),和“开课清单”差不多,但开课信息的一笔数据就是一期/一班课程,但每次上课的点名数据都不一样,每次上课都要生成一笔数据,一般来说一笔开课信息会对应很多笔点名信息。
我们可以用另一个 Ragic 好用的工具:数据抛转来制作点名单表单,数据抛转主要的功能是跨表单数据拷贝,我们可以在原本的开课清单上,设计一个数据抛转单击钮取名为“创建点名单”,单击一下此单击钮,开课清单的课程信息就会拷贝在点名单 上课纪录(无预约制度)上:
每次上课前,抛转创建一笔该次上课的点名单,填入点名日期,然后在下方的子表格,一一登记到课学生信息。这个子表格的学生信息,应该要链接与加载自订购方案表,一方面点选编号就可以带入其他信息,另一方面可以从订购信息确认该学生确实有资格上这堂课,如果是要算堂数 / 点数的课程,后续也较方便扣堂数。(注:如果你已经做了这张表单,那么也可以直接拿它来当“点名单”,省掉每次抛转的工夫。)
当然,你也可以在你的课程订购表单中,根据课程订购编号产出条形码,然后把条形码提供给学生(打印输出来或寄发给学生),学生进入教室时刷一下他的条形码,就完成点名了。(关于条形码的设计方式请参阅本文。)
如果需要预约呢?首先你可能需要一张“预约单”来管理预约信息,同时,假如预约才能上课,那在每次上课之前就会生成一个上课名单,最好可以根据先前的预约信息,自动把预约要上课的名单带进上课点名单中,这样或许可以省一些力气。
我们前面制作进阶版行事历课表时,做出来当作产行事历依据的这张表单,它的子表格生成的新表单一笔数据列出了一次上课的日期,这个表单正好可以直接用来当“点名单”,省掉每次抛转的工夫。
你可以先另外创建一张预约单,预约单中除了要有“学生信息”、“订购单号”“相关课程编号”等字段,关于“预约哪一天、哪个时段的课”这部分,应该要利用链接与加载功能,链接前面做出来的点名单信息
。表单各字段的信息来源例如下图:
可以创建一些动态筛选规则,让预约课程的人只要看到在预约日期以后的上课日就好,点选起来比较容易。
预约单创建好之后,由于预约单有链接点名单的字段,利用显示从其他表单的链接功能,把预约单插入点名单当参照子表格,它就可以是“上课名单”了:
如果你的课程采用“吃到饱”模式,一定期间想上几堂课都没问题,那么你不需要处理“剩余堂数”“扣堂数”的部分,可跳过此节;不过如果你是采“买点数”或“买堂数”的模式,那么通常会有计算剩余堂数的需求。剩余堂数可能用于费用计算(中途退费时需要算上了几堂课)或单纯扣堂/扣点数计算(要知道是否还有剩堂可供上课,可能还要在那之前提醒学生/家长)。
不管是哪一种,依据上述需求,剩余堂数的信息,理应是出现在“订购信息”的表单,而数据来源,应该是“点名单/上课纪录”。
如何根据点名单/上课纪录,自动更新课程订购表单上的“剩余堂数”信息,例如上了一堂课,对应的“剩余堂数”自动扣减一?这个需求和传统接到订单、出货后扣库存的逻辑是类似的,在 Ragic 我们有直接对应此需求的功能,叫做更新别张表单字段值。
我们直接以实例来看:
数据来源:某日的点名单( 有预约版或无预约版皆可)表单中,记载了哪位学生出席、哪位学生缺席。你可以在这里设置一个“扣堂数”字段,设置该字段默认值等于“1”(代表扣一堂课)。
接着设计“更新别张表单字段值”动作单击钮“扣堂数”,例如这张“有预约版”表单的设置:
每次上课完,单击一下“扣堂数”单击钮,就能自动将有上课学生的纪录,依据规则扣减堂数,也就是将对应的“方案订购单”数据的“剩余堂数”扣减一堂:
从管理基本数据、课程订购管理、排课预约管理、上课纪录管理到扣堂数,基本的课程管理需求大致就解说到这里。如果你的机构混合了不同的模式,希望比较不同模式怎么管理流程、或希望知道怎么在一个数据库管理不同模式的流程,可以先参阅总论的以下两个区块:进阶修改建议以及四种模式简单比较,或直接来信 support@ragic.com 询问我们。祝你建置数据库顺利!