符榮鑫 蔣繼平 韋剛
摘要:為提高圖書館員工作效率,自主激活讀者圖書證,采用Laravel框架作為平臺進(jìn)行設(shè)計(jì),構(gòu)建圖書證自主激活系統(tǒng)。系統(tǒng)采用MVC模型,用MySQL設(shè)計(jì)底層數(shù)據(jù)庫,劃分前后端功能模塊,規(guī)劃自主激活系統(tǒng)流程,繪制系統(tǒng)數(shù)據(jù)流圖,建立自主激活平臺,實(shí)現(xiàn)郵箱驗(yàn)證、讀者測試、試卷生成、試題評分、成績分析及證件激活等功能。讀者在測試完畢后能夠自主激活圖書證借閱權(quán)限,提高讀者服務(wù)質(zhì)量。
關(guān)鍵詞:Laravel;自主激活;讀者測試;MVC;系統(tǒng)設(shè)計(jì)
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2019)05-0071-03
Research of Library Card Self-Activation System Base on Laravel Framework
FU Rong-xin, JIANG Ji-ping, WEI Gang
(Guangxi Normal University Library, Guilin 541004, China)
Abstract: For improving librarians operation efficiency and activating reader library card, design and construct library card self-activation system by Laravel framework. System using MVC model design database by MySQL, divide frontend and backend function modules, plan self-activation system process, draw system data flow diagram, establish self-activation platform and implement the functions of email verification, reader test, paper generation, test marked, score analyzation and card activation. Readers can activate library borrowing authority after testing by self and improve reader service quality.
Key words: Laravel; self-activation; reader testing; MVC; system design
1 概述
“互聯(lián)網(wǎng)+”圖書館智慧服務(wù)是當(dāng)前圖書館行業(yè)最先進(jìn)的服務(wù)領(lǐng)域。要提供良好的“互聯(lián)網(wǎng)+”的智慧服務(wù)首先就要構(gòu)建“智能化圖書館”,智能化的實(shí)現(xiàn)必須依靠人工智能和計(jì)算機(jī)技術(shù)[1]。搭建的智能化系統(tǒng)可以極大地提高圖書館員工的效率,并能為圖書館的運(yùn)作節(jié)省大量的時(shí)間和人力,為現(xiàn)代化圖書館的建設(shè)鋪平道路。圖書證自主激活系統(tǒng)則是其中一個(gè)智能化系統(tǒng)[2]。
目前,實(shí)現(xiàn)證件激活操作一般采用人工方式,就是在學(xué)生完成答題,獲得測試分?jǐn)?shù)之后,需要通過電子郵件或者親自到辦證處去把自己的測試結(jié)果交給辦證老師,由辦證老師核對分?jǐn)?shù)是否正確、有效,然后操作圖書館管理系統(tǒng)手動激活圖書證的借閱權(quán)限。這種做法優(yōu)點(diǎn)是準(zhǔn)確,人工完全可以勝任這項(xiàng)工作,但最大的弊端在于工作量非常大,在有近萬名新生的學(xué)校中,就需要手動激活上萬次證件權(quán)限,無形中給辦證老師增加了很大的工作量。為了解決這樣的問題,研究設(shè)計(jì)了一套圖書證自主激活系統(tǒng),可以通過判斷讀者測試成績是否及格來自動激活圖書證的借閱權(quán)限,使證件激活方式更加精確可靠,也大大降低了人工激活方式的人力成本,提高了圖書館的工作效率。
2 Laravel簡介
為了實(shí)現(xiàn)圖書證自主激活系統(tǒng),研究采用Laravel框架來搭建。Laravel是目前國際上流行的PHP開發(fā)框架之一,具有輕便、快速、易開發(fā)、易維護(hù)等特點(diǎn)[3]。這是一個(gè)開源框架,遵循于MIT License,最適合在學(xué)校這樣的非盈利機(jī)構(gòu)中使用。
Laravel以Symfony 作為核心組件,在其上構(gòu)建出自己的一整套系統(tǒng),包括驗(yàn)證系統(tǒng)、文件系統(tǒng)、會話系統(tǒng)、緩存系統(tǒng)、郵件系統(tǒng)、日志系統(tǒng)、錯誤處理等等,能夠勝任復(fù)雜的系統(tǒng)操作。它具有以下幾個(gè)特點(diǎn)[4]:
1)設(shè)計(jì)Eloquent作為框架Model的基類,封裝了大量的數(shù)據(jù)庫操作,方便開發(fā)者快速實(shí)現(xiàn)CRUD(Create-Read-Update-Delete)操作邏輯,是實(shí)現(xiàn)框架快速構(gòu)建的基礎(chǔ)。
2)設(shè)計(jì)Blade Template作為視圖模板,通過簡潔的Blade語法顯示Eloquent獲取到的復(fù)雜數(shù)據(jù),使系統(tǒng)界面的顯示更加方便快捷。
3)添加Redis緩存服務(wù),可以與外部的Redis緩存服務(wù)器掛接,實(shí)現(xiàn)數(shù)據(jù)緩存服務(wù),提高系統(tǒng)的運(yùn)行效率。
以上幾個(gè)特點(diǎn)使得Laravel在實(shí)現(xiàn)上千人并發(fā)訪問的網(wǎng)站上不會有性能瓶頸。
3 系統(tǒng)設(shè)計(jì)
3.1 功能模塊
系統(tǒng)分為前端應(yīng)用和后端管理兩大部分。前端應(yīng)用包括系統(tǒng)登錄、郵箱驗(yàn)證、試卷生成、試題評分、證件激活等功能模塊,后端管理包括用戶管理、試題管理、答案管理、成績管理、系統(tǒng)管理等功能模塊,模塊之間通過外鍵相互銜接,模塊內(nèi)部功能聚合緊密[5]。
前端模塊中:
1)系統(tǒng)登錄模塊提供給讀者登錄系統(tǒng)的功能,要求讀者輸入自己的證件號、姓名和密碼登錄系統(tǒng),并記錄讀者的登錄日志。
2)郵箱驗(yàn)證模塊在讀者提交自己的郵箱后,會自動發(fā)送一封郵箱驗(yàn)證激活的郵件到讀者郵箱,保證錄入到系統(tǒng)中郵箱真實(shí)、可靠,方便圖書管理系統(tǒng)利用讀者郵箱提供個(gè)性化的服務(wù)。
3)試卷生成模塊可自動生成試卷,并能對試題答案隨機(jī)排序,使相鄰讀者間同一題號的試題答案順序并不一致,可以在一定程度上防止作弊。
4)試題評分模塊對讀者提交答案可自動閱卷評分,立即可得出讀者成績,并判斷讀者成績是否及格,提供證件激活的成績依據(jù)。
5)證件激活模塊會根據(jù)讀者的測試成績及格與否判斷是否啟動證件激活操作,激活操作根據(jù)數(shù)據(jù)庫的設(shè)計(jì)方式,需要將“停借”狀態(tài)改為“正常”狀態(tài)即可激活證件的借閱功能。
后端模塊中:
1)用戶管理模塊提供讀者管理功能,記錄讀者的登錄日志。由于系統(tǒng)采用讀者信息圖書管理系統(tǒng)托管方式,所以系統(tǒng)數(shù)據(jù)庫中不存放諸如讀者姓名、密碼等關(guān)鍵信息,這些信息從圖書管理系統(tǒng)中直接獲取,保證讀者信息的一致、安全、可靠。
2)試題管理模塊可錄入試題信息,包括題目、選項(xiàng)、得分等主要內(nèi)容,提供讀者提交答案后的評分依據(jù)。
3)答案管理模塊記錄讀者回答問題后提交的每道題目的答案,是歷史查詢和回溯的依據(jù),方便了解讀者的測試狀況,評價(jià)題目難易程度。
4)成績管理模塊提供成績統(tǒng)計(jì)功能,可按分?jǐn)?shù)、學(xué)院、時(shí)間對成績進(jìn)行統(tǒng)計(jì)分析,便于評價(jià)測試結(jié)果,分析測試系統(tǒng)的有效性。
5)系統(tǒng)管理模塊用于管理系統(tǒng)基本參數(shù),方便系統(tǒng)更改設(shè)置。
這十大功能模塊提供了系統(tǒng)的主要功能,能夠讓讀者和管理員方便地使用系統(tǒng),實(shí)現(xiàn)讀者測試的智能化和人性化操作。
3.2 數(shù)據(jù)庫設(shè)計(jì)
這里顯示的是系統(tǒng)涉及的主要數(shù)據(jù)字段,系統(tǒng)專門設(shè)計(jì)一個(gè)成績表,用保存讀者每次測試的結(jié)果。由于測試可以多次進(jìn)行,直到測試成績及格為止,因此保存每次測試的結(jié)果,可以很好地回溯讀者的測試成績,評估讀者的學(xué)習(xí)水平,檢驗(yàn)試題的難易程度。
數(shù)據(jù)表相對獨(dú)立,僅以外鍵相關(guān)聯(lián),以用戶表為核心,關(guān)聯(lián)獲取相關(guān)數(shù)據(jù)。用戶表僅用于保存讀者登錄日志,其余的私密信息均在圖書管理系統(tǒng)上托管。用戶表與答案表和成績表之間均為一對多的關(guān)系,試題表與答案表之間也是一對多的關(guān)系,數(shù)據(jù)庫設(shè)計(jì)滿足第三范式,大量降低了數(shù)據(jù)冗余,消除了傳遞依賴,避免數(shù)據(jù)的不一致性[6]。
3.3 系統(tǒng)流程設(shè)計(jì)
系統(tǒng)在讀者登錄時(shí)首先判斷讀者是否已經(jīng)激活證件,只有證件未激活的讀者才能登錄系統(tǒng)進(jìn)行測試。當(dāng)讀者登錄系統(tǒng)后,檢測讀者的郵箱是否已經(jīng)激活,若未激活,則要求讀者填寫自己的真實(shí)電子郵箱,激活以后才能繼續(xù)進(jìn)行測試。測試系統(tǒng)會根據(jù)導(dǎo)入的試題自動生成試卷,試題選項(xiàng)隨機(jī)排列,在讀者試題回答完畢,提交答案后系統(tǒng)會自動評分,即時(shí)得出成績。然后根據(jù)讀者的測試成績,系統(tǒng)決定是否可以激活證件的借閱權(quán)限。生成的成績單可供培訓(xùn)者進(jìn)行成績分析。
本系統(tǒng)與其他系統(tǒng)不同之處就在于證件激活方式,無需人工介入,可以讀取讀者的測試成績,與設(shè)置在系統(tǒng)中的及格線相比較,自動判斷及格與否,只有成績及格的讀者證件才能激活借閱權(quán)限。激活方法則是修改圖書管理系統(tǒng)中的證件狀態(tài),將“停借”狀態(tài)修改為“正常”狀態(tài),讀者的借閱權(quán)限就激活了。
3.4 設(shè)計(jì)模式
系統(tǒng)架構(gòu)采用MVC(Model-View-Controller)模式來設(shè)計(jì)。MVC模式即為模型-視圖-控制器模式,是軟件工程中最常用的開發(fā)模式[7]。這個(gè)模式可以把數(shù)據(jù)、邏輯和表示三者相分離,有效地實(shí)現(xiàn)“低耦合,高內(nèi)聚”,提高協(xié)作開發(fā)的效率,降低后期系統(tǒng)維護(hù)成本[8]。
在系統(tǒng)中,Model作為系統(tǒng)底層模型,調(diào)用系統(tǒng)底層數(shù)據(jù)接口,派生于Eloquent模型基類,主要包含數(shù)據(jù)庫緊密相關(guān)的簡單數(shù)據(jù)操作,實(shí)現(xiàn)系統(tǒng)模型上的數(shù)據(jù)關(guān)聯(lián),方便通過鏈?zhǔn)椒绞皆L問模型數(shù)據(jù)。每個(gè)Model可以認(rèn)為是一個(gè)實(shí)體,是現(xiàn)實(shí)中的一個(gè)對象存在。
由于User Model直接派生于Eloquent的model基類,因此默認(rèn)的數(shù)據(jù)表名是“users”,可以通過“users”表中的字段自動生成相關(guān)屬性,實(shí)現(xiàn)數(shù)據(jù)表的取值和賦值。自定義的scores函數(shù)通過關(guān)聯(lián)方式訪問Score Model對象的相關(guān)屬性和方法,實(shí)現(xiàn)鏈?zhǔn)皆L問操作。
Controller作為Laravel的控制器,是系統(tǒng)的業(yè)務(wù)邏輯訪問層,包含主要的業(yè)務(wù)邏輯處理代碼,郵箱驗(yàn)證、證件激活、成績分析等主要業(yè)務(wù)操作就是放在Controller中。系統(tǒng)針對每個(gè)功能模塊均生成一個(gè)對應(yīng)的Controller,為了避免沖突,后端管理相關(guān)的Controller放入admin命名空間中,更加有利于系統(tǒng)管理和維護(hù)。
View是系統(tǒng)的表示層,主要是為了把系統(tǒng)的顯示與數(shù)據(jù)相分離而做出來的。在Laravel中,使用views文件夾來存放視圖的相關(guān)文件。Laravel自己定義了Blade Template來生成視圖模板,Blade語法簡潔、易用,能夠很好地實(shí)現(xiàn)數(shù)據(jù)與表示相分離的目的。
MVC模式本身就是Laravel框架所推崇的設(shè)計(jì)方式,因此在框架生成的時(shí)候就已經(jīng)把所有MVC所涉及到的相關(guān)架構(gòu)已經(jīng)實(shí)行了,作為開發(fā)者只需要向其中添加相應(yīng)的代碼即可很好的運(yùn)行整個(gè)系統(tǒng),所以Laravel框架能夠?qū)崿F(xiàn)系統(tǒng)的快速生成和開發(fā)。
4 系統(tǒng)運(yùn)行效果
系統(tǒng)經(jīng)過幾年的運(yùn)行,取得了較好的效果,能夠滿足高校讀者的測試需求。自2011年系統(tǒng)正式上線運(yùn)行以來,每年都有大量的新生進(jìn)行測試。統(tǒng)計(jì)結(jié)果如所示:
表 1 測試結(jié)果統(tǒng)計(jì)表
測試開始時(shí)間一般為每年的10月份左右,統(tǒng)計(jì)時(shí)間一般為每年的年底,每年都大概會有60%~70%的新生在第一學(xué)期完成測試,激活自己證件的借閱權(quán)限到圖書館借書。面對大量的新生測試,系統(tǒng)有較好的承受能力,能夠接納大量的新生同時(shí)訪問并完成測試,證明系統(tǒng)運(yùn)行穩(wěn)定可靠,具有良好效果。
5 結(jié)論
通過使用圖書證自主激活系統(tǒng),高校新生的圖書館知識水平有了明顯上升,對圖書館有了進(jìn)一步的了解,使圖書館的工作更加有序進(jìn)行。用Laravel框架進(jìn)行系統(tǒng)設(shè)計(jì),系統(tǒng)開發(fā)更快捷,維護(hù)更方便,最適合于高校當(dāng)中開發(fā)應(yīng)用系統(tǒng)。采用自動激活證件的方式,可以讓圖書館減輕大量的工作量,在提高服務(wù)質(zhì)量的同時(shí),沒有增加服務(wù)窗口負(fù)擔(dān),對學(xué)生和老師來說都是雙贏的結(jié)果。因此系統(tǒng)設(shè)計(jì)規(guī)范合理,適合高校當(dāng)中測試使用。
參考文獻(xiàn):
[1] 烏恩. 智慧圖書館及其服務(wù)模式的構(gòu)建[J]. 情報(bào)資料工作,2012(5):102-104.
[2] 歐建華.銀川市圖書館為讀者搭建學(xué)習(xí)交流服務(wù)平臺[J].圖書館理論與實(shí)踐,2016(4):107.
[3] 張世超. 跨平臺自動培訓(xùn)考核系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 數(shù)字技術(shù)與應(yīng)用,2015(2):145.
[4] 陳顯軍,耿強(qiáng),紀(jì)洲鵬,等.基于Laravel框架的RESTful API構(gòu)建[J].信息與電腦:理論版,2017(15):42-44.
[5] 鄭亮亮,王志明.智慧考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識與技術(shù),2018,14(12):86-88.
[6] 王鄭敏.基于互聯(lián)網(wǎng)的學(xué)習(xí)與考試系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].中國新通信,2018,20(13):173.
[7] 呂智強(qiáng). 基于MVC模式的PHP框架設(shè)計(jì)[J]. 科技視界,2013(24):65-66.
[8] 嚴(yán)時(shí)國,邵魁德.圖書館在線自主學(xué)習(xí)信息服務(wù)創(chuàng)新研究[J].蘭臺世界,2015(17):160-161.
【通聯(lián)編輯:謝媛媛】