引言
本篇以一个现实中的实际场景,核酸预约登记为例,讲解如何通过低代码工具来快速的开发一款小程序。介绍了需求分析的方法,如何做数据库设计,以及低码开发关键的开发步骤。案例详实,操作步骤丰富,适合零基础又想自己搭建小程序的同学学习参考。
需求分析
疫情下,幼儿园核酸检测成为一个常态工作。每周都有一个班级需要轮流做核酸检测。和成年人检测不同,幼儿因为没有身份证也没有手机,所以无法线上登记信息。
为了保证幼儿检测的速度,现在都是家校合作。通常周末幼儿园班主任在家长群里通知登记信息,发送预约的二维码。家长扫码将孩子的信息填报,并将预约完成的二维码发送给老师。
建立好信息的共享机制,就可以确保日常工作有条不紊的开展。
我们收到这种现实的场景,该如何进行需求分析呢?一般需求分析可以按照角色进行梳理,我们这个小程序是有两种角色,分别是教师和家长。
教师侧需求
- 教师可以登录小程序
- 教师可以录入班级信息
- 教师可以查询学生信息
- 教师可以发布预约登记的通知
- 教师可以查看学生预约登记的状态
- 教师可以统计当日学生预约登记的状态
- 教师可以导出核酸检测的结果
- 教师可以扫码,扫码后自动将该学生的核酸检测结果更新为已检测
学生侧需求
- 学生可以登录小程序
- 学生可以加入班级
- 学生可以查看最新的预约登记通知
- 学生可以提交预约登记信息,登记之后自动生成二维码
- 学生可以查看历史预约登记记录
- 学生可以查看历史核酸检测结果
原型设计
有了需求之后,一般是产品经理编制原型并编写需求规格说明书。如果是个人小程序可以直接开始动手开发,如果本身是服务商,而且是给别人做,建议还是要编制需求原型。有了原型一个是方便双方之间沟通,另外就是防止扯皮。
在软件开发行当,最不确定的就是需求。甲方受限于自身的技术能力,往往不能将需求表述清楚。如果双方没有一个明确的文档来进行确认,到了后期往往面临着随意变更需求,当初你定的预算可能远远包不住,这也是软件项目最大的风险所在。
制作原型我们一般使用axure来进行绘制,也可以使用在线的原型工具。一般在线的原型工具模板更多绘制更方便。
首页
绘制原型的过程其实就是功能实现的过程,因为我们有两种角色,所以我们的首页可以先放置一个角色的引导页面,这样方便不同的角色进入不同的页面。
学生菜单页
一般进入学生页面之后,可以放一个九宫格导航,这样日后有了新的业务还可以进行扩展。我们目前先放四个菜单,分别是加入班级、预约登记、检测结果和学生信息。
幼儿园一般分为小班、中班和大班,每个班级又按照学生的人数具体分为一班或者二班。班级信息事先由教师维护好,学生只能选择加入哪个班级。学生信息由学生自己填写,预约登记的话每次由教师事先填充,学生只需要提交一下将预约的状态改为已预约。
检测结果提供了一个列表查询的功能,可以看到历次预约信息的一个检测结果。
教师菜单页
教师可以维护班级信息,查看班级的学生信息,可以发布核酸检测预约的通知。可以通过扫一扫功能快速修改学生的检测结果,也可以查看检测的信息。
数据源设计
有了原型设计之后我们基本就完成了业务的梳理,紧接着的一步工作就是将信息拆分成数据源。初学的同学遇到的最大的障碍是不知道该如何设计数据源。一般数据源设计有三范式和反范式的概念。直白的讲
- 数据源设计要保持原子性,就是要将字段拆到不能拆为止。比如一个字段你叫联系人信息就不准确,因为联系人可以分为姓名、电话、详细住址这么三个字段。
- 数据源要有一个唯一标识,确保数据不重复。
- 为了保持查询的灵活性,我们可以将数据源拆分成多张表,表和表的关系可以通过外键来关联
- 为了提高多表直接查询的性能,我们可以在子表冗余主表的字段
我们按照需求来分解一下,我们有哪些信息需要存储,分别有学生信息、班级信息、预约登记信息。这里的班级和学生是主子表的关系。主表是班级表,子表是学生表。一个班级可以有多个学生,一个学生只能加入一个班级,因此是一对多的关系。班级表的数据标识是主键,学生表可以存一个班级表的数据标识作为外键。
学生信息和预约登记信息是一个主子表的关系,学生是主表,预约登记信息是子表。一个学生可以有多个预约登记信息,一条预约登记只属于一个学生。
描述表和表的关系的,叫E-R图,我们可以使用viso来画表和表之间的关系
按上述分析,我们分别创建一下这三个表
班级表
学生表
预约表
创建应用
设计好数据源之后,我们就可以开始开发了。要开发小程序,先需要创建应用。
创建页面
我们按照需求,分别创建首页、学生功能导航、教师功能导航、班级添加、学生添加、预约登记几个页面
页面创建好之后,我们在下篇介绍每个页面的功能开发。
总结
本篇博客介绍了幼儿园核酸预约登记小程序总体的分析方法,将功能拆解好之后,我们下一篇具体介绍该如何开发具体的功能。