符榮鑫 蔣繼平 韋剛
摘要:為提高圖書館員工作效率,自主激活讀者圖書證,采用Laravel框架作為平臺(tái)進(jìn)行設(shè)計(jì),構(gòu)建圖書證自主激活系統(tǒng)。系統(tǒng)采用MVC模型,用MySQL設(shè)計(jì)底層數(shù)據(jù)庫(kù),劃分前后端功能模塊,規(guī)劃自主激活系統(tǒng)流程,繪制系統(tǒng)數(shù)據(jù)流圖,建立自主激活平臺(tái),實(shí)現(xiàn)郵箱驗(yàn)證、讀者測(cè)試、試卷生成、試題評(píng)分、成績(jī)分析及證件激活等功能。讀者在測(cè)試完畢后能夠自主激活圖書證借閱權(quán)限,提高讀者服務(wù)質(zhì)量。
關(guān)鍵詞:Laravel;自主激活;讀者測(cè)試;MVC;系統(tǒng)設(shè)計(jì)
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):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é)生完成答題,獲得測(cè)試分?jǐn)?shù)之后,需要通過(guò)電子郵件或者親自到辦證處去把自己的測(cè)試結(jié)果交給辦證老師,由辦證老師核對(duì)分?jǐn)?shù)是否正確、有效,然后操作圖書館管理系統(tǒng)手動(dòng)激活圖書證的借閱權(quán)限。這種做法優(yōu)點(diǎn)是準(zhǔn)確,人工完全可以勝任這項(xiàng)工作,但最大的弊端在于工作量非常大,在有近萬(wàn)名新生的學(xué)校中,就需要手動(dòng)激活上萬(wàn)次證件權(quán)限,無(wú)形中給辦證老師增加了很大的工作量。為了解決這樣的問(wèn)題,研究設(shè)計(jì)了一套圖書證自主激活系統(tǒng),可以通過(guò)判斷讀者測(cè)試成績(jī)是否及格來(lái)自動(dòng)激活圖書證的借閱權(quán)限,使證件激活方式更加精確可靠,也大大降低了人工激活方式的人力成本,提高了圖書館的工作效率。
2 Laravel簡(jiǎn)介
為了實(shí)現(xiàn)圖書證自主激活系統(tǒng),研究采用Laravel框架來(lái)搭建。Laravel是目前國(guó)際上流行的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)、會(huì)話系統(tǒng)、緩存系統(tǒng)、郵件系統(tǒng)、日志系統(tǒng)、錯(cuò)誤處理等等,能夠勝任復(fù)雜的系統(tǒng)操作。它具有以下幾個(gè)特點(diǎn)[4]:
1)設(shè)計(jì)Eloquent作為框架Model的基類,封裝了大量的數(shù)據(jù)庫(kù)操作,方便開發(fā)者快速實(shí)現(xiàn)CRUD(Create-Read-Update-Delete)操作邏輯,是實(shí)現(xiàn)框架快速構(gòu)建的基礎(chǔ)。
2)設(shè)計(jì)Blade Template作為視圖模板,通過(guò)簡(jiǎn)潔的Blade語(yǔ)法顯示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èn)的網(wǎng)站上不會(huì)有性能瓶頸。
3 系統(tǒng)設(shè)計(jì)
3.1 功能模塊
系統(tǒng)分為前端應(yīng)用和后端管理兩大部分。前端應(yīng)用包括系統(tǒng)登錄、郵箱驗(yàn)證、試卷生成、試題評(píng)分、證件激活等功能模塊,后端管理包括用戶管理、試題管理、答案管理、成績(jī)管理、系統(tǒng)管理等功能模塊,模塊之間通過(guò)外鍵相互銜接,模塊內(nèi)部功能聚合緊密[5]。
前端模塊中:
1)系統(tǒng)登錄模塊提供給讀者登錄系統(tǒng)的功能,要求讀者輸入自己的證件號(hào)、姓名和密碼登錄系統(tǒng),并記錄讀者的登錄日志。
2)郵箱驗(yàn)證模塊在讀者提交自己的郵箱后,會(huì)自動(dòng)發(fā)送一封郵箱驗(yàn)證激活的郵件到讀者郵箱,保證錄入到系統(tǒng)中郵箱真實(shí)、可靠,方便圖書管理系統(tǒng)利用讀者郵箱提供個(gè)性化的服務(wù)。
3)試卷生成模塊可自動(dòng)生成試卷,并能對(duì)試題答案隨機(jī)排序,使相鄰讀者間同一題號(hào)的試題答案順序并不一致,可以在一定程度上防止作弊。
4)試題評(píng)分模塊對(duì)讀者提交答案可自動(dòng)閱卷評(píng)分,立即可得出讀者成績(jī),并判斷讀者成績(jī)是否及格,提供證件激活的成績(jī)依據(jù)。
5)證件激活模塊會(huì)根據(jù)讀者的測(cè)試成績(jī)及格與否判斷是否啟動(dòng)證件激活操作,激活操作根據(jù)數(shù)據(jù)庫(kù)的設(shè)計(jì)方式,需要將“停借”狀態(tài)改為“正?!睜顟B(tài)即可激活證件的借閱功能。
后端模塊中:
1)用戶管理模塊提供讀者管理功能,記錄讀者的登錄日志。由于系統(tǒng)采用讀者信息圖書管理系統(tǒng)托管方式,所以系統(tǒng)數(shù)據(jù)庫(kù)中不存放諸如讀者姓名、密碼等關(guān)鍵信息,這些信息從圖書管理系統(tǒng)中直接獲取,保證讀者信息的一致、安全、可靠。
2)試題管理模塊可錄入試題信息,包括題目、選項(xiàng)、得分等主要內(nèi)容,提供讀者提交答案后的評(píng)分依據(jù)。
3)答案管理模塊記錄讀者回答問(wèn)題后提交的每道題目的答案,是歷史查詢和回溯的依據(jù),方便了解讀者的測(cè)試狀況,評(píng)價(jià)題目難易程度。
4)成績(jī)管理模塊提供成績(jī)統(tǒng)計(jì)功能,可按分?jǐn)?shù)、學(xué)院、時(shí)間對(duì)成績(jī)進(jìn)行統(tǒng)計(jì)分析,便于評(píng)價(jià)測(cè)試結(jié)果,分析測(cè)試系統(tǒng)的有效性。
5)系統(tǒng)管理模塊用于管理系統(tǒng)基本參數(shù),方便系統(tǒng)更改設(shè)置。
這十大功能模塊提供了系統(tǒng)的主要功能,能夠讓讀者和管理員方便地使用系統(tǒng),實(shí)現(xiàn)讀者測(cè)試的智能化和人性化操作。
3.2 數(shù)據(jù)庫(kù)設(shè)計(jì)
這里顯示的是系統(tǒng)涉及的主要數(shù)據(jù)字段,系統(tǒng)專門設(shè)計(jì)一個(gè)成績(jī)表,用保存讀者每次測(cè)試的結(jié)果。由于測(cè)試可以多次進(jìn)行,直到測(cè)試成績(jī)及格為止,因此保存每次測(cè)試的結(jié)果,可以很好地回溯讀者的測(cè)試成績(jī),評(píng)估讀者的學(xué)習(xí)水平,檢驗(yàn)試題的難易程度。
數(shù)據(jù)表相對(duì)獨(dú)立,僅以外鍵相關(guān)聯(lián),以用戶表為核心,關(guān)聯(lián)獲取相關(guān)數(shù)據(jù)。用戶表僅用于保存讀者登錄日志,其余的私密信息均在圖書管理系統(tǒng)上托管。用戶表與答案表和成績(jī)表之間均為一對(duì)多的關(guān)系,試題表與答案表之間也是一對(duì)多的關(guān)系,數(shù)據(jù)庫(kù)設(shè)計(jì)滿足第三范式,大量降低了數(shù)據(jù)冗余,消除了傳遞依賴,避免數(shù)據(jù)的不一致性[6]。
3.3 系統(tǒng)流程設(shè)計(jì)
系統(tǒng)在讀者登錄時(shí)首先判斷讀者是否已經(jīng)激活證件,只有證件未激活的讀者才能登錄系統(tǒng)進(jìn)行測(cè)試。當(dāng)讀者登錄系統(tǒng)后,檢測(cè)讀者的郵箱是否已經(jīng)激活,若未激活,則要求讀者填寫自己的真實(shí)電子郵箱,激活以后才能繼續(xù)進(jìn)行測(cè)試。測(cè)試系統(tǒng)會(huì)根據(jù)導(dǎo)入的試題自動(dòng)生成試卷,試題選項(xiàng)隨機(jī)排列,在讀者試題回答完畢,提交答案后系統(tǒng)會(huì)自動(dòng)評(píng)分,即時(shí)得出成績(jī)。然后根據(jù)讀者的測(cè)試成績(jī),系統(tǒng)決定是否可以激活證件的借閱權(quán)限。生成的成績(jī)單可供培訓(xùn)者進(jìn)行成績(jī)分析。
本系統(tǒng)與其他系統(tǒng)不同之處就在于證件激活方式,無(wú)需人工介入,可以讀取讀者的測(cè)試成績(jī),與設(shè)置在系統(tǒng)中的及格線相比較,自動(dòng)判斷及格與否,只有成績(jī)及格的讀者證件才能激活借閱權(quán)限。激活方法則是修改圖書管理系統(tǒng)中的證件狀態(tài),將“停借”狀態(tài)修改為“正常”狀態(tài),讀者的借閱權(quán)限就激活了。
3.4 設(shè)計(jì)模式
系統(tǒng)架構(gòu)采用MVC(Model-View-Controller)模式來(lái)設(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ù)庫(kù)緊密相關(guān)的簡(jiǎn)單數(shù)據(jù)操作,實(shí)現(xiàn)系統(tǒng)模型上的數(shù)據(jù)關(guān)聯(lián),方便通過(guò)鏈?zhǔn)椒绞皆L問(wèn)模型數(shù)據(jù)。每個(gè)Model可以認(rèn)為是一個(gè)實(shí)體,是現(xiàn)實(shí)中的一個(gè)對(duì)象存在。
由于User Model直接派生于Eloquent的model基類,因此默認(rèn)的數(shù)據(jù)表名是“users”,可以通過(guò)“users”表中的字段自動(dòng)生成相關(guān)屬性,實(shí)現(xiàn)數(shù)據(jù)表的取值和賦值。自定義的scores函數(shù)通過(guò)關(guān)聯(lián)方式訪問(wèn)Score Model對(duì)象的相關(guān)屬性和方法,實(shí)現(xiàn)鏈?zhǔn)皆L問(wèn)操作。
Controller作為L(zhǎng)aravel的控制器,是系統(tǒng)的業(yè)務(wù)邏輯訪問(wèn)層,包含主要的業(yè)務(wù)邏輯處理代碼,郵箱驗(yàn)證、證件激活、成績(jī)分析等主要業(yè)務(wù)操作就是放在Controller中。系統(tǒng)針對(duì)每個(gè)功能模塊均生成一個(gè)對(duì)應(yīng)的Controller,為了避免沖突,后端管理相關(guān)的Controller放入admin命名空間中,更加有利于系統(tǒng)管理和維護(hù)。
View是系統(tǒng)的表示層,主要是為了把系統(tǒng)的顯示與數(shù)據(jù)相分離而做出來(lái)的。在Laravel中,使用views文件夾來(lái)存放視圖的相關(guān)文件。Laravel自己定義了Blade Template來(lái)生成視圖模板,Blade語(yǔ)法簡(jiǎn)潔、易用,能夠很好地實(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)過(guò)幾年的運(yùn)行,取得了較好的效果,能夠滿足高校讀者的測(cè)試需求。自2011年系統(tǒng)正式上線運(yùn)行以來(lái),每年都有大量的新生進(jìn)行測(cè)試。統(tǒng)計(jì)結(jié)果如所示:
表 1 測(cè)試結(jié)果統(tǒng)計(jì)表
測(cè)試開始時(shí)間一般為每年的10月份左右,統(tǒng)計(jì)時(shí)間一般為每年的年底,每年都大概會(huì)有60%~70%的新生在第一學(xué)期完成測(cè)試,激活自己證件的借閱權(quán)限到圖書館借書。面對(duì)大量的新生測(cè)試,系統(tǒng)有較好的承受能力,能夠接納大量的新生同時(shí)訪問(wèn)并完成測(cè)試,證明系統(tǒng)運(yùn)行穩(wěn)定可靠,具有良好效果。
5 結(jié)論
通過(guò)使用圖書證自主激活系統(tǒng),高校新生的圖書館知識(shí)水平有了明顯上升,對(duì)圖書館有了進(jìn)一步的了解,使圖書館的工作更加有序進(jìn)行。用Laravel框架進(jìn)行系統(tǒng)設(shè)計(jì),系統(tǒng)開發(fā)更快捷,維護(hù)更方便,最適合于高校當(dāng)中開發(fā)應(yīng)用系統(tǒng)。采用自動(dòng)激活證件的方式,可以讓圖書館減輕大量的工作量,在提高服務(wù)質(zhì)量的同時(shí),沒(méi)有增加服務(wù)窗口負(fù)擔(dān),對(duì)學(xué)生和老師來(lái)說(shuō)都是雙贏的結(jié)果。因此系統(tǒng)設(shè)計(jì)規(guī)范合理,適合高校當(dāng)中測(cè)試使用。
參考文獻(xiàn):
[1] 烏恩. 智慧圖書館及其服務(wù)模式的構(gòu)建[J]. 情報(bào)資料工作,2012(5):102-104.
[2] 歐建華.銀川市圖書館為讀者搭建學(xué)習(xí)交流服務(wù)平臺(tái)[J].圖書館理論與實(shí)踐,2016(4):107.
[3] 張世超. 跨平臺(tái)自動(dòng)培訓(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í)與技術(shù),2018,14(12):86-88.
[6] 王鄭敏.基于互聯(lián)網(wǎng)的學(xué)習(xí)與考試系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].中國(guó)新通信,2018,20(13):173.
[7] 呂智強(qiáng). 基于MVC模式的PHP框架設(shè)計(jì)[J]. 科技視界,2013(24):65-66.
[8] 嚴(yán)時(shí)國(guó),邵魁德.圖書館在線自主學(xué)習(xí)信息服務(wù)創(chuàng)新研究[J].蘭臺(tái)世界,2015(17):160-161.
【通聯(lián)編輯:謝媛媛】