您好, 访客   登录/注册

基于AppInventor小区出入打卡系统设计与应用

来源:用户上传      作者:

  摘要:针对疫情防控小区封闭式管理的需要,该文采用App Inventor作为开发工具、选用草料二维码API平台在线生成服务,设计了一款小区人员数字出入证手机打卡系统。实现了住户信息建立、查改、删除与导出,入门证二维码生成、扫描打卡与出入时间、体温数据登记等功能,方便了小区对出入人员的管理,高效满足了疫情期间管控需求,探索了低成本、高效率手机应用系统解决方案思路。
  关键词:App Inventor;疫情防控;手机App;小区出入打卡;二维码
  中图分类号:TP311      文献标识码:A
  文章编号:1009-3044(2020)16-0079-03
  Abstract: To meet the needs of closed management of epidemic prevention and control communities, the paper uses App Inventor as a development tool and selects CLI QR codes API platform online generation service to design a mobile card punching system for community personnel's digital access cards. The functions of establishing, checking, deleting and exporting household information, generating QR codes for entry cards, scanning and punching cards, entering and leaving time, and registering body temperature data, etc., have been realized, which has facilitated the management of people entering and leaving the community, efficiently met the urgent need for control during the epidemic, and explored the idea of low-cost and high-efficiency mobile phone application system solutions.
  Key words: App Inventor; epidemic prevention and control; mobile app; community pass card; QR code
  1 背景
  一場突如其来的疫情,打响了关系人民群众生命健康安全的防疫阻击战。为筑起一道严密的疫情防控防线,各社区实行了凭证出入住宅小区,以减少人员流动,杜绝外来人员。但在使用过程,由于纸质出入证存在住户忘记携带、纸张揉破、多人接触增加安全风险等不足,本文提出了一种基于App Inventor设计的小区数字出入证手机打卡系统,可有效解决此问题,同时提高了出入时查验、登记的工作效率。
  2 系统总体设计
  App Inventor是一款采用拖拽操作的可视化编程语言为基础的Android应用开发工具,它摒弃了复杂的程序代码,使用乐高积木式堆叠法来完成Android程序设计,大大提高降低了开发难度,提高了开发效率。由于居民小区人员少、数据量小、凭证出入功能简单,App Inventor可以满足实现系统需求,同时小区为封闭式管理,单用户使用,本应用系统设计为单机版。
  系统功能包括住户信息建立、查询、修改、删除与导出,入门证二维码的产生、扫描与出入时间、体温数据登记,打卡信息导出等。
  系统设计流程:打开App,登录用户主界面,按需选择“新建住户”“查改信息”“出入打卡”“导出记录”四个模块功能。选择“新建住户”功能,录入住户ID、姓名、电话、身份证号、住址、备注等,保存信息后,产生住户ID二维码,作为出入打卡数字证二维码;当日常住户出入小区时,选择“出入打卡”功能,点击“扫码”,对持有人电子出入证进行扫码,管理员根据扫码获得的住户上次出入具体时间,依小区出入时间间隔规定,输入体温数据后,点击“放行”完成打卡操作;选择“查改记录”功能,可依据身份证号对住户信息进行查询、修改与删除;选择“导出记录”,可将所有住户信息与打卡记录导出为文本文件,最终通过手机“文件管理”导出记录。系统功能设计流程如图1所示。
  3 主要功能设计实现
  3.1 数据库存取操作
  3.1.1 数组组织
  在App Inventor中有两个数据库组件——本地数据库及网络数据库,它们都是NoSQL类型的数据库[1],利用这两个数据库组件,App Inventor很容易实现数据的永久存储。
  它们以“标记-数值”的方式保存数据,“标记”是一个字符串,“值”是任意类型的数据,用户通过“标记”来保存与提取数据,保存数据时使用的标记也用于之后对数据的提取。本应用系统因设计定位为单机版,数据不需要在手机之间分享,故使用本地数据库组件完成数据的存贮使用。本应用系统数据示例如表1、表2所示。
  一个数据库组件可以看成是数据库的一张表,对此我们分别使用两个数据库组件,命名为住户信息数据库、打卡记录数据库。
  3.1.2 编写程序
  App Inventor为本地数据库组件提供了内置功能模块——请求数据块和保存数据块,用于从数据库中存取数据。
  这两个数据块有两个参数,其中之一是“标记”。在使用该块时,需要为标记提供具体的值,用于请求或保存相关的数据。另外,请求数据块是一个有返回值的块,因此必须定义一个变量来接收请求数据块的返回值。当数据库为空时,此时数据库中不存在要访问的标记,为此,请求数据块提供了另一个参数——无标记返回。当调用请求数据块时,要为这个参数指定具体的值,以便当数据不存在时,请求数据块可以返回该参数的值。   App Inventor还提供了一个特别的事件处理程序——屏幕(Screen)初始化程序,屏幕启动时会触发该程序。本应用系统四个功能模块均需进行数据库的读取操作,且“新建住户”“查改信息”“出入打卡”三个模块均利用启动时屏幕初始化从数据库中提取某些数据,以“出入打卡”功能模块加载数据为例,程序编码如图2所示。
  当读取二维码屏幕(Screen4)扫描结束后,打卡屏幕(Screen5)启动,并将上一屏幕传递值赋给全局变量“扫得ID”,即该住户ID ,同时在屏幕页面显示获得的住户ID。
  建立二个请求数据块分别读取“住户数据库”“打卡数据库”数据。这里“住户数据库”请求数据使用的标记为全局变量“住户信息列表存储标记”,返回值写入“住户信息列表”变量中,如果没有与标记相对应的数据,则写入空列表。 “打卡数据库”请求数据使用的标记为全局变量“打卡信息列表存储标记”,返回值写入“打卡信息列表”变量中,如果没有与标记相对应的数据,同样写入空列表。
  调用“筛选住户ID”過程,完成检索“住户数据库”获取该住户ID的姓名、身份证号,手机号,住址信息,检索“打卡数据库”获取该住户ID最近一次的出入时间、出入状态记录,并显示。
  再看数据的保存操作。本地数据库组件有一个内置的功能模块——保存数据块,用于数据的存储操作。本应用系统“新建住户”“查改信息”“打卡记录”功能模块均需进行数据库存储操作,如图3所示为运用保存数据块完成“新建住户”功能住户信息数据的存储操作编码。
  首先,调用“已存住户ID”过程,获取住户信息数据库中已存住户ID赋值给变量“记录中住户ID”, 运用“记录中住户ID”判断本次住户录入信息是否重复,如果用户本次录入住户ID非空或不重复,则将本次录入的信息添加到“住户信息列表”中,利用保存数据块保存“住户信息列表”到“住户数据库”,对话框组件显示“保存成功”提示信息;如果用户本次录入住户ID为空或数据库中已存有该“住户ID”,对话框组件显示“住户ID不能为空或重复”提示信息。
  3.2 二维码生成
  草料二维码API平台提供了二维码免费在线生成服务,用户可以使用二维码生成接口地址,调整URL参数中的二维码内容(text),美化模板id(mhid)两个参数,即可获取二维码下载页面。API接口地址如下:
  3.3 二维码读取
  App Inventor提供了一个已经封装好的二维码扫描组件,在“出入打卡”功能模块中,首先打开二维码扫描屏幕,在该屏幕中用户点击扫描按钮,条码扫描器开始对电子出入证二维护码进行读扫,读取该出入证住户ID,扫描完成后,系统打开打卡功能屏幕并将扫描结果传递给打卡功能屏幕(Screen5)。本功能主要程序代码如图5所示。
  3.4 导出记录功能
  App Inventor的数据存储类组件中,有一个非可视组件--文件管理器,可以在设备上实现文件的读或写。通过数据库组件存储的记录信息,用户在正常环境中是无法查看的,所以我们首先提取数据库中数据,再通过文件管理器组件写入指定位置的文本文件中,即可实现数据库记录的导出。其主要程序代码如图6所示。
  4 结束语
  本文基于App Inventor开发环境设计提出了一款手机打卡App,实现了档案建立、二维码生成、扫码打卡等功能。引用App Inventor项目的负责人Harold Abelson (MIT教授)的一句话 “App Inventor编写的应用程序或许不是很完美,但它们却是普通人都能做的,而且通常是在几分钟内就可完成。”[2] App Inventor适用功能简单、结题期短的应用场景开发运用。本应用系统从需求提出到投入使用仅用了一个工作日,高效地解决了用户亟须,且具有良好的用户操作体验,对小区住户出入验证、登记,方便灵活,得到用户好评。本应用改用网络数据库组件,可轻松扩展为网络版,也可运用在考勤打卡等其他场景。
  参考文献:
  [1] 金从军. App Inventor开发训练营[M]. 北京: 人民邮电出版社, 2018: 163-167.
  [2] 郭守超, 周睿, 邓常梅, 等. 基于App Inventor和计算思维的信息技术课堂教学研究[J]. 中国电化教育, 2014(3): 91-96.
  【通联编辑:谢媛媛】
转载注明来源:https://www.xzbu.com/8/view-15315263.htm