張昕,林洪芳
海軍潛艇學(xué)院,山東 青島 266199
隨著信息技術(shù)的發(fā)展,如何利用信息化技術(shù)快速管理、配置和使用圖書席位,實(shí)現(xiàn)圖書館席位預(yù)約系統(tǒng)高效、穩(wěn)定運(yùn)行成為目前高校信息化普及工程的重點(diǎn)方向[1]。
微信是眾多手機(jī)應(yīng)用中最突出的社交工具之一,不僅具有新媒體的特性和優(yōu)勢,還擁有廣泛的用戶基數(shù)。本文選用HBuilderX開發(fā)工具、LNMP系統(tǒng)架構(gòu),基于PHP語言、MySQL數(shù)據(jù)庫關(guān)聯(lián)接口實(shí)現(xiàn)前后端數(shù)據(jù)的調(diào)用;后臺(tái)管理頁面使用Bootstrap的UI框架進(jìn)行設(shè)計(jì),用戶操作頁面基于Uni-app框架實(shí)現(xiàn),利用Uni-app社區(qū)提供的UI完成用戶前端的設(shè)計(jì),通過調(diào)用云函數(shù)及自編程序接口實(shí)現(xiàn)功能的開發(fā)。經(jīng)過系統(tǒng)功能頁面、業(yè)務(wù)流程測試,界面運(yùn)行效果良好[2]。圖書館座位預(yù)約管理系統(tǒng)適用于任何一所擁有圖書館的高校。通過該系統(tǒng)的部署不僅可以實(shí)現(xiàn)書館座位數(shù)字化管理,還可以極大的提升了圖書館座位的利用率[3]。
該系統(tǒng)對主要業(yè)務(wù)功能需求性較強(qiáng),不需要設(shè)計(jì)多余的功能去映襯功能量的多少,能讓用戶清晰地進(jìn)行座位的預(yù)約及取消等功能操作。一個(gè)標(biāo)準(zhǔn)的預(yù)約系統(tǒng)不僅需特定的功能,還需要特定的權(quán)限申請、認(rèn)證才能進(jìn)入系統(tǒng)。用戶進(jìn)入該系統(tǒng)后可以清晰的分辨出功能模塊,根據(jù)需求對座位、時(shí)間選擇,當(dāng)選定座位后,座位會(huì)進(jìn)入鎖定狀態(tài),其他用戶則無法對被鎖定座位進(jìn)行操作。座位可以進(jìn)行取消、簽到、暫離、暫離簽到、簽退等操作。與之相對應(yīng)的管理員用戶,也可以對本項(xiàng)目中所有權(quán)限的數(shù)據(jù)進(jìn)行管理、維護(hù)。
本系統(tǒng)所擁有的如下。
(1)超級管理員對使用規(guī)則、閱覽室信息、通知公告、預(yù)注冊信息、預(yù)約信息、信用信息、用戶信息、反饋信息、臨時(shí)用戶信息的管理等模塊;
(2)管理員對通知公告、預(yù)注冊信息、預(yù)約信息、信用信息、用戶信息、反饋信息、臨時(shí)用戶信息管理等模塊;
(3)學(xué)生用戶信息管理、座位選擇、選座信息查詢、違約信息查詢、通知公告查詢、使用規(guī)則查詢、反饋信息等模塊。
1.2.1 擴(kuò)展性
由于各個(gè)高校的圖書館座位數(shù)量不同,座位預(yù)約管理系統(tǒng)的需求也有所差異,因此需要在擴(kuò)展本項(xiàng)目初期就做好地理位置的調(diào)研,獲取樓層平面圖。通過獲取的平面圖進(jìn)行座位的編排,將編排好的座位后統(tǒng)一部署,即可完成項(xiàng)目的拓展。
1.2.2 靈活性
基于環(huán)境、空間限制,不僅各高校的圖書館空間不同,而且高校圖書館內(nèi)部的樓層與樓層之間的布置格局也不盡相同。因此在設(shè)計(jì)數(shù)據(jù)庫之初,就要對數(shù)據(jù)表的結(jié)構(gòu)進(jìn)行合理的規(guī)劃,功能模塊具有較高的兼容性,可以嵌套多個(gè)子模塊,將模塊化的設(shè)計(jì)理念融入到整個(gè)設(shè)計(jì)開發(fā)中。
1.2.3 穩(wěn)定性
校方與學(xué)生用戶都希望預(yù)約平臺(tái)在使用時(shí)能保證服務(wù)器的穩(wěn)定性,網(wǎng)絡(luò)延遲、無法連接、數(shù)據(jù)丟失等這類問題均為服務(wù)器不穩(wěn)定的展現(xiàn)形式。首先設(shè)備供應(yīng)商要能保障服務(wù)器的正常使用,在出現(xiàn)問題時(shí)能隨時(shí)聯(lián)系維護(hù)方及時(shí)進(jìn)行服務(wù)器的維護(hù),避免服務(wù)器主機(jī)的宕機(jī)或異常;其次,通過上線前系統(tǒng)測試保障程序安全、穩(wěn)定;最后,數(shù)據(jù)庫的穩(wěn)定和可靠,需要定期檢查導(dǎo)出的logs文件,發(fā)現(xiàn)錯(cuò)誤信息可及時(shí)處理。
1.2.4 易用性
系統(tǒng)的易用性對于管理員來說,主要體現(xiàn)管理員專業(yè)知識(shí)、素養(yǎng)積累。對于學(xué)生來說,程序設(shè)計(jì)頁面的簡潔、清晰可以更加直觀的滿足用戶的使用,實(shí)現(xiàn)操作頁面可視化明了、操作易學(xué)、上手簡單等效果,當(dāng)操作頁面做到完全可視化后不需要學(xué)校的統(tǒng)一培訓(xùn)即可通過清晰的頁面掌握系統(tǒng)的操作流程[4]。
該系統(tǒng)在用戶登錄上做了相應(yīng)的判斷,因?yàn)槭敲嫦蛟谛4髮W(xué)生的系統(tǒng),因此在注冊的時(shí)候需要進(jìn)行相關(guān)的認(rèn)證,認(rèn)證通過后才能注冊。同時(shí)在后續(xù)的登錄中,由于本地緩存保存了相關(guān)的信息,因此不需要重復(fù)輸入賬號(hào)密碼即可實(shí)現(xiàn)快速登錄,若因?yàn)檫`約賬號(hào)被凍結(jié),則無法登錄。
該系統(tǒng)的主要功能是學(xué)生進(jìn)行座位預(yù)約,座位預(yù)約的流程為進(jìn)入選座頁面選擇合適的座位及入座時(shí)間,再確認(rèn)選座信息后,將會(huì)進(jìn)入到下一個(gè)流程。提前取消預(yù)約,未按時(shí)到場簽到則算違約,按時(shí)簽到則進(jìn)入下一流程[5]。中途暫離用戶需要進(jìn)行暫離操作,暫離歸來后點(diǎn)擊歸來按鍵,否則違約一次。脫離學(xué)習(xí)狀態(tài)后按時(shí)點(diǎn)擊簽退,否則也算違約或者時(shí)長已達(dá)到系統(tǒng)預(yù)定將會(huì)自動(dòng)釋放座位。
系統(tǒng)架構(gòu)是基于Uni-app、B/S、LNMP三個(gè)架構(gòu)結(jié)合協(xié)調(diào)設(shè)計(jì)。服務(wù)器采用Centos7.2系統(tǒng),利用寶塔面板搭建起LNMP系統(tǒng)架構(gòu),將服務(wù)器與前端分別放置于兩個(gè)不同系統(tǒng),保證系統(tǒng)穩(wěn)定性。使用Uni進(jìn)行應(yīng)用頁面的編輯,優(yōu)先選擇開源的封裝接口進(jìn)行調(diào)用。在后端完成部署后,利用Nginx的反向代理技術(shù)及Redis的負(fù)載均衡技術(shù)為系統(tǒng)提供穩(wěn)定的服務(wù),系統(tǒng)架構(gòu)圖如圖1所示。
圖1 系統(tǒng)架構(gòu)圖
座位預(yù)約模塊是對各個(gè)校區(qū)圖書館的座位空閑、預(yù)定和占用情況進(jìn)行查詢。針對不同的讀者需要,可以對根據(jù)不同的閱覽室進(jìn)行查詢。座位管理模塊是用戶對座位進(jìn)行預(yù)約后,根據(jù)自己的實(shí)時(shí)需求對座位的狀態(tài)進(jìn)行調(diào)整變更的一個(gè)功能模塊[6]。
個(gè)人資料模塊是用戶對自身各個(gè)信息進(jìn)行查詢修改的模塊,其中可以分為座位預(yù)約記錄的查詢、違約記錄查詢、個(gè)人信息查詢、修改個(gè)人信息等功能。
學(xué)生信息管理模塊是由超級管理員對學(xué)生的預(yù)注冊信息進(jìn)行管理,預(yù)注冊信息進(jìn)入數(shù)據(jù)庫后,用戶才能進(jìn)行賬號(hào)的注冊。管理員則負(fù)責(zé)對注冊后的信息進(jìn)行管理,一些信息的修改及信用的管理都屬于模塊的功能。
用戶進(jìn)入系統(tǒng)沒有登錄歷史留下的本地緩存的情況下,進(jìn)入系統(tǒng)頁面是登錄頁面,需要用戶輸入賬號(hào)密碼進(jìn)行認(rèn)證才能進(jìn)入系統(tǒng)。從數(shù)據(jù)庫中查找學(xué)號(hào),若數(shù)據(jù)庫中有此學(xué)號(hào),會(huì)回傳使用者學(xué)號(hào)所對應(yīng)的密碼,并對照此密碼與輸入密碼是否相符。如果密碼是正確的,使用者將會(huì)成功的登入系統(tǒng)。如果密碼不符合,或是數(shù)據(jù)庫中沒有這個(gè)使用者的學(xué)號(hào),會(huì)傳回一條提示,讓使用者檢查自己的學(xué)號(hào)和密碼后再次登入。
在進(jìn)入系統(tǒng)后,首頁會(huì)讀取預(yù)約記錄將最近的預(yù)約記錄以列表的形式展示,該列表自動(dòng)讀取用戶在數(shù)據(jù)庫中的預(yù)約記錄,若有預(yù)約記錄則將預(yù)約記錄羅列出來,若沒有預(yù)約記錄則顯示為無。
用戶需要查看個(gè)人信息及修改部分個(gè)人信息時(shí),點(diǎn)擊個(gè)人資料進(jìn)入相應(yīng)頁面,該頁面進(jìn)入后系統(tǒng)會(huì)通過用戶的唯一標(biāo)識(shí)進(jìn)行查詢,將查詢結(jié)果一一展示出來,且用戶需要更改部分信息時(shí),可以直接點(diǎn)擊對數(shù)據(jù)進(jìn)行修改。
當(dāng)用戶有座位使用需求時(shí),點(diǎn)擊進(jìn)入“我要預(yù)約”功能頁面,進(jìn)入該功能頁面后可先選擇對應(yīng)校區(qū);再選擇相應(yīng)的閱覽室和入座時(shí)間,在選座時(shí)間上做了相應(yīng)的判斷,擇時(shí)間不能超出系統(tǒng)規(guī)定的時(shí)間,否則座位會(huì)被釋放。
用戶在完成預(yù)約功能后,需要在預(yù)約時(shí)間之前來到座位進(jìn)行掃碼簽到,未及時(shí)取消座位的預(yù)約且未按時(shí)來到座位進(jìn)行掃碼簽到的則會(huì)被記違約一次,且座位會(huì)被釋放。點(diǎn)擊簽到后,數(shù)據(jù)庫中status從0變?yōu)?,顯示出來就是已簽到狀態(tài),點(diǎn)擊暫離后status變?yōu)?,系統(tǒng)開始計(jì)算時(shí)間,若45min內(nèi)未點(diǎn)擊“已回來”按鍵,則會(huì)判定違約一次;若點(diǎn)擊按鍵,status狀態(tài)則會(huì)變?yōu)?。用戶結(jié)束學(xué)習(xí)狀態(tài)點(diǎn)擊簽退后,status會(huì)變?yōu)?,隨后座位將釋放,座位變?yōu)橹匦驴蛇x擇狀態(tài),該條預(yù)約記錄也因此而結(jié)束流程,變?yōu)橐粭l不可修改的數(shù)據(jù)隨后可從預(yù)約記錄中查詢到該條記錄。
該頁面支持留言反饋及在線反饋兩種反饋方式。留言反饋即用戶輸入反饋信息,該條數(shù)據(jù)保存至zuowei_fankui表中,管理員可以通過反饋管理進(jìn)行查看。用戶點(diǎn)擊在線反饋后,通過contact接口彈出類似微信聊天的窗口頁面來實(shí)現(xiàn)在線反饋。
管理員通過輸入對應(yīng)地址進(jìn)入后臺(tái)管理頁面,隨后輸入賬號(hào)密碼驗(yàn)證碼進(jìn)行身份驗(yàn)證,身份驗(yàn)證通過后進(jìn)入后臺(tái)系統(tǒng),認(rèn)證錯(cuò)誤則無法進(jìn)入系統(tǒng)。
用戶預(yù)約管理頁面設(shè)定為,管理員可通過該頁面對用戶預(yù)約的信息進(jìn)行查閱,在必要的時(shí)候可以通過“取消”按鍵,幫用戶取消所預(yù)定的座位。
管理員可以查詢用戶的違約記錄,進(jìn)入該頁面首先通過查詢所有的違約信息,將所有信息羅列出來,其次可以通過輸入學(xué)號(hào)對單個(gè)用戶的違約信息進(jìn)行查詢。
進(jìn)入頁面后首先進(jìn)行全體學(xué)生的用戶信息查詢,其次可以根據(jù)需求,輸入學(xué)號(hào)或姓名對目標(biāo)進(jìn)行查詢。該頁面實(shí)現(xiàn)的功能有:修改學(xué)生的違約信息、重置用戶密碼。
黑盒測試則與功能檢測相對應(yīng),通過觀測法等手段來檢測該系統(tǒng)所實(shí)現(xiàn)的功能模塊測試,以驗(yàn)證其與實(shí)際的系統(tǒng)計(jì)劃與設(shè)計(jì)要求相符。本文按照預(yù)定操作流程分別對用戶預(yù)約座位功能進(jìn)行功能測試,頁面展示信息完整、模塊功能均符合預(yù)計(jì)結(jié)果,具體測試結(jié)果和流程如表1所示。
表1 系統(tǒng)測試
本文選用HBuilderX,使用PHP編寫與MySQL關(guān)聯(lián)的接口實(shí)現(xiàn)后端數(shù)據(jù)的調(diào)用,后臺(tái)管理頁面使用Bootstrap的UI框架進(jìn)行設(shè)計(jì),用戶操作頁面基于Uni-app框架實(shí)現(xiàn),利用Uni-app社區(qū)提供的UI完成用戶前端的設(shè)計(jì),調(diào)用云函數(shù)及自寫接口來對功能進(jìn)行實(shí)現(xiàn)。經(jīng)過系統(tǒng)功能頁面和業(yè)務(wù)流程測試,效果良好,運(yùn)行正常。