引言

本篇以一个现实中的实际场景,核酸预约登记为例,讲解如何通过低代码工具来快速的开发一款小程序。介绍了需求分析的方法,如何做数据库设计,以及低码开发关键的开发步骤。案例详实,操作步骤丰富,适合零基础又想自己搭建小程序的同学学习参考。

需求分析

疫情下,幼儿园核酸检测成为一个常态工作。每周都有一个班级需要轮流做核酸检测。和成年人检测不同,幼儿因为没有身份证也没有手机,所以无法线上登记信息。

为了保证幼儿检测的速度,现在都是家校合作。通常周末幼儿园班主任在家长群里通知登记信息,发送预约的二维码。家长扫码将孩子的信息填报,并将预约完成的二维码发送给老师。

建立好信息的共享机制,就可以确保日常工作有条不紊的开展。

我们收到这种现实的场景,该如何进行需求分析呢?一般需求分析可以按照角色进行梳理,我们这个小程序是有两种角色,分别是教师和家长。

教师侧需求

  1. 教师可以登录小程序
  2. 教师可以录入班级信息
  3. 教师可以查询学生信息
  4. 教师可以发布预约登记的通知
  5. 教师可以查看学生预约登记的状态
  6. 教师可以统计当日学生预约登记的状态
  7. 教师可以导出核酸检测的结果
  8. 教师可以扫码,扫码后自动将该学生的核酸检测结果更新为已检测

学生侧需求

  1. 学生可以登录小程序
  2. 学生可以加入班级
  3. 学生可以查看最新的预约登记通知
  4. 学生可以提交预约登记信息,登记之后自动生成二维码
  5. 学生可以查看历史预约登记记录
  6. 学生可以查看历史核酸检测结果

原型设计

有了需求之后,一般是产品经理编制原型并编写需求规格说明书。如果是个人小程序可以直接开始动手开发,如果本身是服务商,而且是给别人做,建议还是要编制需求原型。有了原型一个是方便双方之间沟通,另外就是防止扯皮。

在软件开发行当,最不确定的就是需求。甲方受限于自身的技术能力,往往不能将需求表述清楚。如果双方没有一个明确的文档来进行确认,到了后期往往面临着随意变更需求,当初你定的预算可能远远包不住,这也是软件项目最大的风险所在。

制作原型我们一般使用axure来进行绘制,也可以使用在线的原型工具。一般在线的原型工具模板更多绘制更方便。

首页

绘制原型的过程其实就是功能实现的过程,因为我们有两种角色,所以我们的首页可以先放置一个角色的引导页面,这样方便不同的角色进入不同的页面。

学生菜单页

一般进入学生页面之后,可以放一个九宫格导航,这样日后有了新的业务还可以进行扩展。我们目前先放四个菜单,分别是加入班级、预约登记、检测结果和学生信息。

幼儿园一般分为小班、中班和大班,每个班级又按照学生的人数具体分为一班或者二班。班级信息事先由教师维护好,学生只能选择加入哪个班级。学生信息由学生自己填写,预约登记的话每次由教师事先填充,学生只需要提交一下将预约的状态改为已预约。

检测结果提供了一个列表查询的功能,可以看到历次预约信息的一个检测结果。

教师菜单页


教师可以维护班级信息,查看班级的学生信息,可以发布核酸检测预约的通知。可以通过扫一扫功能快速修改学生的检测结果,也可以查看检测的信息。

数据源设计

有了原型设计之后我们基本就完成了业务的梳理,紧接着的一步工作就是将信息拆分成数据源。初学的同学遇到的最大的障碍是不知道该如何设计数据源。一般数据源设计有三范式和反范式的概念。直白的讲

  1. 数据源设计要保持原子性,就是要将字段拆到不能拆为止。比如一个字段你叫联系人信息就不准确,因为联系人可以分为姓名、电话、详细住址这么三个字段。
  2. 数据源要有一个唯一标识,确保数据不重复。
  3. 为了保持查询的灵活性,我们可以将数据源拆分成多张表,表和表的关系可以通过外键来关联
  4. 为了提高多表直接查询的性能,我们可以在子表冗余主表的字段

我们按照需求来分解一下,我们有哪些信息需要存储,分别有学生信息、班级信息、预约登记信息。这里的班级和学生是主子表的关系。主表是班级表,子表是学生表。一个班级可以有多个学生,一个学生只能加入一个班级,因此是一对多的关系。班级表的数据标识是主键,学生表可以存一个班级表的数据标识作为外键。

学生信息和预约登记信息是一个主子表的关系,学生是主表,预约登记信息是子表。一个学生可以有多个预约登记信息,一条预约登记只属于一个学生。

描述表和表的关系的,叫E-R图,我们可以使用viso来画表和表之间的关系


按上述分析,我们分别创建一下这三个表

班级表

学生表

预约表

创建应用

设计好数据源之后,我们就可以开始开发了。要开发小程序,先需要创建应用。

创建页面

我们按照需求,分别创建首页、学生功能导航、教师功能导航、班级添加、学生添加、预约登记几个页面

页面创建好之后,我们在下篇介绍每个页面的功能开发。

总结

本篇博客介绍了幼儿园核酸预约登记小程序总体的分析方法,将功能拆解好之后,我们下一篇具体介绍该如何开发具体的功能。