曹春華,彭春起,黃瑞鵬,武家宇
(廣州軟件學(xué)院,廣東 廣州 510663)
自2020年新型冠狀病毒性肺炎在全球大流行,新冠肺炎的防治給人們帶來新的挑戰(zhàn)。目前國外的抗疫形勢非常嚴(yán)峻,國外部分地區(qū)人員防控意識差,目前新型冠狀病毒在部分地區(qū)甚至出現(xiàn)了變異。
2020年6月,習(xí)近平總書記提出:在“后疫情時(shí)代”,織密防護(hù)網(wǎng)、筑牢筑實(shí)隔離墻是我國疫情防控的主要對策。2020年6月30日,習(xí)近平總書記主持召開中央全面深化改革委員會第十四次會議。會議指出,“把預(yù)防為主擺在更加突出位置”“完善相關(guān)配套支撐政策,打好改革組合拳”“要抓緊從體制機(jī)制上想辦法、補(bǔ)漏洞,堅(jiān)決防止疫情反彈”[1]。因此防控一直在進(jìn)行,防控疫情進(jìn)入了常態(tài)化階段。目前國內(nèi)外的防控措施主要在地鐵、飛機(jī)、車站等地方,面對高校的防控措施仍有欠缺,比如高校主要對飯?zhí)眠M(jìn)行隔座處理、校門把控等方面,防控措施還不夠全面高效。
無論是從高的國家層面,還是低的大學(xué)校園管理層面,預(yù)防都是“后疫情時(shí)代”最主要的疫情防控對策。因此對高校疫情的防控尤為重要,高校培養(yǎng)大量國家知識技術(shù)人才,為國家發(fā)展和進(jìn)步提供源源不斷的動力。本系統(tǒng)充分利用了微信小程序的使用優(yōu)勢,結(jié)合了目前高校學(xué)生活動管理以及疫情管理的現(xiàn)狀,設(shè)計(jì)了一個(gè)抗疫常態(tài)化下的智慧校園系統(tǒng)。本系統(tǒng)包括點(diǎn)餐跳轉(zhuǎn)、自習(xí)座位預(yù)約、行蹤查詢?nèi)笾饕δ?,點(diǎn)餐功能一方面不僅對師生提供便利,而且還有效減少了食堂的人流量,解決了人流過多問題;自習(xí)座位預(yù)約功能讓高校管理圖書館和自習(xí)室座位的利用更加高效,并結(jié)合目前疫情還規(guī)定了座位不能面對面,更能解決入口接觸密集情況;行蹤查詢功能,讓每個(gè)師生都能知道自己的行蹤記錄,一旦發(fā)現(xiàn)病情能更好地處理,讓管理更高效。
系統(tǒng)結(jié)構(gòu)是一個(gè)系統(tǒng)開發(fā)進(jìn)程、結(jié)構(gòu)、功能以及各種要素之間相互聯(lián)系的重要部署,是要素構(gòu)成系統(tǒng)的媒介。系統(tǒng)結(jié)構(gòu),也用來表述對計(jì)算機(jī)系統(tǒng)中各級機(jī)器間界面的劃分和定義以及對各級界面上、下的功能進(jìn)行分配。各級都有自己的系統(tǒng)結(jié)構(gòu)。開發(fā)系統(tǒng)時(shí),應(yīng)先確定系統(tǒng)框架及結(jié)構(gòu),合理的系統(tǒng)框架及結(jié)構(gòu),會讓系統(tǒng)開發(fā)更快速,因此系統(tǒng)結(jié)構(gòu)對于每個(gè)系統(tǒng)開發(fā)尤為重要。系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)
微信智慧校園小程序采用基于Vue.js和微信小程序云開發(fā)創(chuàng)建云函數(shù)進(jìn)行開發(fā)實(shí)現(xiàn)的。其功能主要有點(diǎn)餐跳轉(zhuǎn)、座位預(yù)約、行蹤軌跡查詢、預(yù)約座位信息查詢等。當(dāng)用戶進(jìn)入微信小程序時(shí)需要授權(quán)登錄,獲取用戶的openID,本系統(tǒng)openID獲取使用微信小程序的云開發(fā)來實(shí)現(xiàn),編寫云函數(shù)getopenID來獲取微信用戶唯一標(biāo)識符[2]。
首先創(chuàng)建云開發(fā)環(huán)境,編寫云開發(fā)函數(shù),進(jìn)行初始化函數(shù),編寫云函數(shù)入口函數(shù),讓后續(xù)獲取openID時(shí)調(diào)用該接口函數(shù)進(jìn)行獲取。創(chuàng)建云開發(fā)環(huán)境及云函數(shù)圖片效果如圖2所示。
圖2 創(chuàng)建云函數(shù)界面
用戶授權(quán)登錄后可以進(jìn)行線上點(diǎn)餐,本系統(tǒng)點(diǎn)餐功能是建立在其他點(diǎn)餐系統(tǒng)上的,當(dāng)用戶點(diǎn)擊點(diǎn)餐按鈕時(shí),系統(tǒng)會跳轉(zhuǎn)到店鋪顯示頁面,點(diǎn)擊相應(yīng)店鋪會出現(xiàn)相應(yīng)的店鋪二維碼入口。
基本使用流程:(1)用戶授權(quán)登錄;(2)點(diǎn)擊點(diǎn)餐按鈕;(3)后臺接收命令,返回相關(guān)數(shù)據(jù)給微信小程序;(4)小程序跳轉(zhuǎn)店鋪顯示頁面,點(diǎn)擊某一店鋪;(5)后臺接收命令,返回相關(guān)數(shù)據(jù)給微信小程序,微信小程序跳轉(zhuǎn)顯示相應(yīng)店鋪入口二維碼。
用戶進(jìn)入智慧校園微信小程序時(shí),跟其他App一樣需要進(jìn)行一些授權(quán)或者登錄等操作,但小程序沒有App那么煩瑣的登錄注冊等操作,當(dāng)用戶打開智慧校園微信小程序時(shí),首先進(jìn)入微信小程序home界面,該界面顯示功能模塊[3]。
用戶授權(quán)登錄后可在線上進(jìn)行自習(xí)座位預(yù)約,當(dāng)用戶點(diǎn)擊預(yù)約座位按鈕時(shí),系統(tǒng)跳轉(zhuǎn)至選擇自習(xí)教室頁面,當(dāng)選擇教室后系統(tǒng)跳轉(zhuǎn)至座位選擇頁面,選好座位后會跳出選擇成功彈窗,并更新座位,用戶可以查看自己預(yù)約的座位信息。
基本使用流程:(1)用戶授權(quán)登錄;(2)點(diǎn)擊預(yù)約座位按鈕,后臺接收請求返回自習(xí)室數(shù)據(jù)給微信小程序; (3)跳轉(zhuǎn)顯示自習(xí)室頁面,點(diǎn)擊某一開放自習(xí)室,后臺接收請求返回自習(xí)室座位數(shù)據(jù)給微信小程序;(4)跳轉(zhuǎn)顯示座位界面,選擇座位,返還座位信息給后臺,后臺進(jìn)行記錄修改等;(5)提示信息及更新座位信息。
用戶使用該功能時(shí)系統(tǒng)需要獲取用戶的openID進(jìn)行相關(guān)操作,后臺將數(shù)據(jù)信息錄入數(shù)據(jù)庫,因此用戶需要授權(quán)登錄,讓后臺調(diào)用云開發(fā)函數(shù)getopenID獲取openID。授權(quán)成功,用戶可以點(diǎn)擊預(yù)約自習(xí)座位按鈕,微信小程序?qū)⑻D(zhuǎn)到自習(xí)室選擇界面,在此界面,用戶可以選擇不同的自習(xí)室,點(diǎn)擊某一自習(xí)室時(shí),將跳轉(zhuǎn)到座位顯示頁面。
用戶授權(quán)登錄后可在線上查詢自己的相關(guān)行蹤軌跡,系統(tǒng)通過sipeed MF1模塊進(jìn)行人臉識別,然后將數(shù)據(jù)記錄返至數(shù)據(jù)庫,當(dāng)用戶點(diǎn)擊查詢行蹤記錄時(shí)可以查詢到自己的行蹤記錄。
基本使用流程:(1)用戶授權(quán)登錄;(2)點(diǎn)擊行蹤記錄查詢;(3)顯示相關(guān)記錄;(4)用戶在使用該功能時(shí)同樣需要進(jìn)行授權(quán)登錄,讓系統(tǒng)獲取到openID進(jìn)行相關(guān)查詢;在此基礎(chǔ)上用戶必須聯(lián)系管理員要將自己的人臉信息錄入sipeed MF1模塊,并將人臉I(yè)D跟openID進(jìn)行數(shù)據(jù)的綁定才能使用該功能。
當(dāng)用戶通過sipeed MF1模塊人臉識別時(shí),sipeed MF1模塊顯示識別成功并將數(shù)據(jù)信息返回到數(shù)據(jù)庫中,以便后續(xù)行蹤記錄查詢。當(dāng)人臉識別記錄成功后,用戶就可以在微信小程序上進(jìn)行行蹤記錄查詢。用戶在微信小程序上點(diǎn)擊行蹤記錄查詢按鈕時(shí)將跳轉(zhuǎn)到行蹤記錄顯示界面。
硬件支持模塊:其中該功能模塊運(yùn)用到sipeed MF1人臉識別模塊。sipeed MF1 是一個(gè)基于RISC-V 的K210雙核芯片的人臉識別模組。sipeed MF1模塊如圖3所示。
圖3 sipeedMF1模塊
小程序后臺服務(wù)器使用Java進(jìn)行編寫,利用Java的輕量型框架SpringBoot作為整體后臺服務(wù)器框架,引入JPA簡化對數(shù)據(jù)庫的操作。后臺創(chuàng)建been包,been包下的類一一對應(yīng)數(shù)據(jù)庫的表;創(chuàng)建controller包,controller包下的類對應(yīng)一些提供給前端微信小程序接口以及一些對數(shù)據(jù)庫進(jìn)行增刪改查的操作;創(chuàng)建repository包,repository包下對應(yīng)的是每個(gè)been類的接口繼承JpaRepository,該接口還可以自定義對數(shù)據(jù)庫進(jìn)行相關(guān)操作方法;創(chuàng)建common包,common包下的ResultVO是請求返回的最外層對象;創(chuàng)建utils包,utils包下的APIUtil類是返回json數(shù)據(jù)的工具類[4]。
系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)。本系統(tǒng)需要一個(gè)后臺服務(wù)器端來提供數(shù)據(jù)接口服務(wù)給微信小程序,當(dāng)然龐大的數(shù)據(jù)信息的保存尤為重要,本系統(tǒng)后臺服務(wù)器采用MySQL數(shù)據(jù)庫存放數(shù)據(jù)。MySQL數(shù)據(jù)庫是一種關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫的特點(diǎn)是將數(shù)據(jù)保存在不同的表中,而不是將所有的數(shù)據(jù)都放在一個(gè)大倉庫里進(jìn)行存儲,這樣不僅提高了操作速度而且還提高了靈活性。本系統(tǒng)使用多個(gè)數(shù)據(jù)庫表,數(shù)據(jù)庫的ER圖和每個(gè)表的詳細(xì)設(shè)計(jì)結(jié)構(gòu)如圖4所示。
圖4 系統(tǒng)ER圖
在開發(fā)軟件系統(tǒng)的過程中,需要面對錯(cuò)綜復(fù)雜的問題,在軟件生存周期的每個(gè)階段都不可避免地會產(chǎn)生錯(cuò)誤,所以軟件測試極其重要,否則后期可能出現(xiàn)不可逆轉(zhuǎn)的錯(cuò)誤或者造成巨大的損失。軟件測試主要測試微信小程序的功能是否正確,根據(jù)需求文檔和設(shè)計(jì)來測試其功能即可。本章節(jié)軟件測試將從功能測試方面對軟件進(jìn)行檢測,站在用戶的角度進(jìn)行測試用例。
“授權(quán)”獲取openID測試,云開發(fā)云函數(shù)getopenID函數(shù)調(diào)用,“授權(quán)”獲取用戶的openID是用戶使用本系統(tǒng)小程序的前提,它完成了對用戶使用本系統(tǒng)的初始化,獲取openID來區(qū)分不同的用戶,本測試用例測試是云函數(shù)的獲取openID功能,測試的目的是驗(yàn)證云函數(shù)是否能成功獲取openID并返回。
首先用戶打開微信小程序界面,點(diǎn)擊我的,來到我的界面,點(diǎn)擊授權(quán)登錄,登錄成功云函數(shù)返回openID結(jié)果顯示。