汪楷 廖慶涵 何澤鵬 呂晴陽(yáng)
摘要:在信息大爆炸的今天,人們的閱讀習(xí)慣逐漸發(fā)生了改變,閱讀的大部分時(shí)間都被微博、微信、新聞App等手機(jī)軟件所占用,能在圖書館借閱一本書慢慢品讀顯得彌足珍貴。而圖書館書籍種類多、借閱流程復(fù)雜,讀者需要耗費(fèi)較長(zhǎng)的時(shí)間來(lái)找到一本自己想要的書,這些問題給讀者帶來(lái)了極大的不便,設(shè)計(jì)一個(gè)智能圖書借閱平臺(tái)正好解決了這個(gè)難題。該系統(tǒng)以.NET為開發(fā)平臺(tái)、SQL Server作為數(shù)據(jù)庫(kù),實(shí)現(xiàn)了書籍搜索、借閱書籍、退還書籍、書籍預(yù)定、圖書推薦、到期提醒等功能。經(jīng)測(cè)試,該平臺(tái)簡(jiǎn)化了圖書借閱流程、為讀者帶來(lái)更為貼心的借閱體驗(yàn)。
關(guān)鍵詞:圖書館;智能借閱;借閱平臺(tái);智能圖書;圖書推薦
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)28-0069-03
Design and Implementation of Smart Lending Platform
WANG Kai, LIAO Qing-han, HE Ze-peng, LV Qing-yang
(Wuhan University of Science and Technology, Wuhan 430065, China)
Abstract: In today's big information explosion, people's reading habits have gradually changed. Most of the time of reading has been occupied by mobile phone software such as Weibo, WeChat, news App, etc., and they can borrow a book in the library and slowly read it. Its precious. The library has many kinds of books, and the borrowing process is complicated. The readers need to spend a long time to find a book they want. These problems bring great inconvenience to the readers. Designing a smart book lending platform can solve the problem precisely. The system uses .NET as the development platform and SQL Server as the database, which realizes the functions of book search, borrowing books, returning books, book reservations, book recommendation, and expiration reminders. After testing, the platform simplifies the book lending process and provides readers with a more intimate lending experience.
Key words: library; smart lending; lending platform; smart books; book recommendation
1 背景
智能手機(jī)已經(jīng)普及,人們?cè)缫蚜?xí)慣于每天使用手機(jī)來(lái)瀏覽資訊新聞,不管身在何處,都可以隨時(shí)拿起手機(jī)來(lái)閱讀信息,但實(shí)際上,人們每天都處于一種被各種短新聞“洗腦”的狀態(tài),這種長(zhǎng)期處于略讀、跳讀的狀態(tài)讓人們的閱讀理解能力弱化[1],加上圖書館需要辦卡、充值、刷卡等流程才能進(jìn)行借閱,這給想要借書閱讀的人帶來(lái)了極大的不便,也是現(xiàn)在紙質(zhì)閱讀低迷的原因之一,簡(jiǎn)化借閱流程對(duì)推動(dòng)紙質(zhì)化閱讀、提高讀者的閱讀理解能力至關(guān)重要。
智能圖書借閱平臺(tái)能夠簡(jiǎn)化書籍借閱的流程。從傳統(tǒng)的圖書館的借閱方式來(lái)看,用戶必須辦理讀者證,借書還書時(shí)必須攜帶,且借書必須親自到圖書館尋找相關(guān)的書籍信息。而通過智能圖書借閱平臺(tái),用戶可直接在手機(jī)上進(jìn)行書籍篩選、收藏、借閱等操作,無(wú)論在家還是在圖書館,都能在第一時(shí)間借閱或預(yù)約到自己喜歡的書籍。該平臺(tái)加入推薦閱讀、推薦書友等個(gè)性化功能,讓用戶不再只是枯燥的借閱,而是在大數(shù)據(jù)的支撐下快速找到自己喜歡的書籍,促進(jìn)讀者多進(jìn)行紙質(zhì)閱讀,通過網(wǎng)絡(luò)共享的方式,分享自己喜歡的書籍,推進(jìn)全民閱讀的目標(biāo),提升讀者的內(nèi)涵修養(yǎng),這樣既節(jié)省了讀者借閱書籍的時(shí)間,也提高了圖書館書籍的借閱率。
2 智能圖書借閱平臺(tái)的設(shè)計(jì)
2.1 主要功能模塊
2.1.1 圖書檢索
當(dāng)用戶需要搜索書籍時(shí),可以通過搜索書名,關(guān)鍵詞,首字母拼音,ISBN等信息進(jìn)行檢索。搜索結(jié)果中展示有書籍的縮圖、標(biāo)題、作者、可借副本、書籍評(píng)分等信息。搜索時(shí),搜索欄將自動(dòng)顯示最近的搜索歷史,點(diǎn)擊歷史搜索詞即可直接跳轉(zhuǎn)到相關(guān)搜索詞的結(jié)果頁(yè)面。
2.1.2 瀏覽書籍詳情
在書籍詳情頁(yè)面,用戶可以查看基本信息,如書籍的標(biāo)題、出版社、封面、藏書地址、書籍簡(jiǎn)介、書籍目錄、讀者評(píng)價(jià)等。也可以收藏書籍,對(duì)書籍進(jìn)行評(píng)論,對(duì)好的評(píng)論可以進(jìn)行點(diǎn)贊,也可以將書籍加入自己創(chuàng)建的個(gè)人書單。點(diǎn)擊加入預(yù)訂欄按鈕,可以開始預(yù)定書籍。點(diǎn)擊掃碼借閱按鈕,開啟掃一掃功能,用戶掃描書籍的條形碼即可開始進(jìn)行借閱下單操作。
2.1.3 書籍評(píng)論
在書籍詳情頁(yè)面,用戶可以查看其他用戶對(duì)該書籍的評(píng)論,可以對(duì)評(píng)論進(jìn)行點(diǎn)贊、回復(fù)等操作,熱門的評(píng)論也會(huì)出現(xiàn)在年度神評(píng)欄目中。
2.1.4 智能書籍推薦
系統(tǒng)可以根據(jù)用戶長(zhǎng)期的借閱記錄及一段時(shí)間的多次搜索習(xí)慣,定期為用戶個(gè)性化推薦書籍。用戶可以在個(gè)人中心的推薦頻率功能區(qū)設(shè)置推薦頻率,如果用戶覺得困擾,可以設(shè)置為不推薦。
2.1.5 在線預(yù)訂
當(dāng)要預(yù)訂的書籍在圖書館有館藏副本時(shí),用戶可以在圖書詳情頁(yè)面,點(diǎn)擊加入借閱欄,并選擇預(yù)約去圖書館取書的時(shí)間,完成微信支付押金操作后,該圖書會(huì)被圖書管理員預(yù)留保存,等待用戶在預(yù)約時(shí)間前前往圖書館進(jìn)行借閱確認(rèn)操作,即可完成借書流程。
2.1.6 書籍借閱
用戶通過掃碼功能掃描書籍上的條形碼,在圖書信息頁(yè)面確認(rèn)后,即可將書籍加入借閱欄。在借閱欄頁(yè)面,可以選擇這次自己想要借閱的圖書。提交借閱訂單后,會(huì)自動(dòng)發(fā)起微信支付,完成押金支付流程,用戶會(huì)收到支付成功提醒,系統(tǒng)將生成借書確認(rèn)二維碼,并通過自定義加密算法生成密匙進(jìn)行驗(yàn)證,二維碼每分鐘自動(dòng)刷新,確保用戶信息安全。圖書管理員打開App掃碼確認(rèn)后,微信端會(huì)自動(dòng)收到借閱成功提醒,借書流程結(jié)束。
2.1.7 書籍歸還
當(dāng)用戶到圖書館找管理員還書時(shí),打開訂單頁(yè)面,找到需要?dú)w還書籍的訂單,點(diǎn)擊二維碼圖標(biāo)生成還書二維碼,管理員掃碼確認(rèn)歸還書籍無(wú)誤后,點(diǎn)擊確認(rèn)歸還,用戶會(huì)自動(dòng)收到還書成功提醒,并收到退款成功提醒。
2.2 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
智能圖書借閱平臺(tái)由微信公眾號(hào)端、管理員App端構(gòu)成。微信公眾號(hào)端為用戶提供書籍瀏覽、借閱服務(wù),管理員App端在用戶借閱、歸還書籍時(shí)及時(shí)進(jìn)行掃碼確認(rèn)。系統(tǒng)結(jié)構(gòu)設(shè)計(jì)圖如圖1所示。
2.3 數(shù)據(jù)庫(kù)設(shè)計(jì)
智能圖書借閱平臺(tái)數(shù)據(jù)庫(kù)一共31張數(shù)據(jù)表,基本表有用戶表、書籍表、書籍條形碼表、訂單表等,整個(gè)數(shù)據(jù)庫(kù)的字段結(jié)構(gòu)精簡(jiǎn),盡可能地降低了數(shù)據(jù)的冗余,通過表與表之間的外鍵連接,盡可能保證數(shù)據(jù)的一致性。數(shù)據(jù)庫(kù)部分表的表結(jié)構(gòu)設(shè)計(jì)如表1所示。
3 智能圖書借閱平臺(tái)的實(shí)現(xiàn)
3.1 采用的技術(shù)框架
智能圖書借閱平臺(tái)基于.NET編寫,數(shù)據(jù)庫(kù)采用SQL Server 2008進(jìn)行管理,數(shù)據(jù)操作工具采用.NET Entity Framework進(jìn)行實(shí)體映射,方便對(duì)數(shù)據(jù)進(jìn)行增刪改查操作,提高開發(fā)效率。該平臺(tái)結(jié)合服務(wù)器的計(jì)劃任務(wù),每天夜間自動(dòng)進(jìn)行應(yīng)用池垃圾回收,確保服務(wù)器時(shí)刻緩存最新數(shù)據(jù),時(shí)刻處在熱啟動(dòng)的狀態(tài)。
3.2 業(yè)務(wù)邏輯的實(shí)現(xiàn)
智能圖書借閱平臺(tái)的業(yè)務(wù)邏輯較為復(fù)雜,每個(gè)功能模塊盡量提取共有的抽象功能為基礎(chǔ),面向接口編程,降低數(shù)據(jù)層與邏輯層之間的耦合度,使用恰當(dāng)?shù)能浖O(shè)計(jì)模式實(shí)現(xiàn)程序的復(fù)用,為軟件后期的更新維護(hù)工作打好基礎(chǔ)[2]。例如,在很多情況下,需要給用戶發(fā)送消息模板,如用戶支付成功后、預(yù)約成功后、還書成功后都需要給用戶發(fā)送消息提醒,所以該平臺(tái)專門實(shí)現(xiàn)了SendWechat類,將10個(gè)消息模板的ID編寫成類的Static變量,并且通過編寫幾個(gè)基礎(chǔ)的構(gòu)造函數(shù),用來(lái)適配所有消息模板的內(nèi)容構(gòu)造。僅僅三個(gè)構(gòu)造函數(shù),便可支持?jǐn)?shù)十種消息模板的發(fā)送。平臺(tái)整體上通過區(qū)分不同的業(yè)務(wù)模塊,盡可能地提高類的復(fù)用性并且降低耦合度。
3.3 協(xié)同過濾算法的實(shí)現(xiàn)
由于在搜索某一本書時(shí),需要推薦用戶一些相關(guān)的書籍,如果按書籍大類來(lái)進(jìn)行選擇推薦,最終能真正符合用戶需求的不多,而協(xié)同過濾算法就能基于用戶之間的喜好來(lái)相互進(jìn)行推薦,當(dāng)用戶量足夠大時(shí),對(duì)于有相同借書喜好特征的用戶,相互推薦的結(jié)果較為準(zhǔn)確,算法實(shí)現(xiàn)原理如下:
1)當(dāng)A用戶查找X書籍時(shí),系統(tǒng)開始搜索借閱過、收藏過X書籍的用戶作為第一次篩選的用戶集。
2)比較A用戶的借閱歷史,當(dāng)?shù)谝淮魏Y選的用戶集中有一B用戶也借閱過A曾借閱過的書籍,那么將B用戶放入到第二次篩選的用戶集。
3)在第二次篩選的用戶集中,對(duì)比X書籍以及用戶集的借閱收藏歷史,通過計(jì)算書籍之間的歐幾里得距離評(píng)價(jià)進(jìn)行排序,排序靠前的書籍進(jìn)行推薦。
3.4 界面設(shè)計(jì)
在前端頁(yè)面的設(shè)計(jì)上,該平臺(tái)采用了主流的響應(yīng)式設(shè)計(jì),通過Bootstrap響應(yīng)式布局,讓界面布局效果整體統(tǒng)一,兼容不同屏幕大小的移動(dòng)設(shè)備,為用戶帶來(lái)良好的交互體驗(yàn)[3]。在配色方面,整體采用色號(hào)#00CC99作為主題色,整體顏色全部采用Web安全色進(jìn)行搭配,樣式采用扁平化的設(shè)計(jì)理念,提高了用戶瀏覽信息的效率[4],同時(shí)大量使用陰影、圓角等特效,確保整體的UI統(tǒng)一美觀。由于微信端有多處需要彈出窗口對(duì)用戶的操作進(jìn)行提醒,該平臺(tái)統(tǒng)一采用了柔和色調(diào)的彈出窗口并加上動(dòng)畫效果,讓每個(gè)跳轉(zhuǎn)操作都生動(dòng)有趣。由于部分頁(yè)面需要進(jìn)行數(shù)據(jù)渲染的元素較多,該平臺(tái)通過動(dòng)態(tài)加載的方式來(lái)一次加載多個(gè)頁(yè)面的內(nèi)容,摒棄了傳統(tǒng)的iFrame選項(xiàng)卡的形式進(jìn)行頁(yè)面的加載,而是通過js文件動(dòng)態(tài)的添加HTML代碼來(lái)渲染表格信息的形式,節(jié)省了大量重復(fù)加載js、css文件所花費(fèi)的時(shí)間。經(jīng)測(cè)試,頁(yè)面渲染效率高,加載速度快,界面美觀。部分功能界面如圖2、圖3。
4 結(jié)束語(yǔ)
隨著互聯(lián)網(wǎng)時(shí)代的快速發(fā)展,手機(jī)上的信息量越來(lái)越大,越來(lái)越少的人會(huì)選擇靜下心來(lái)捧一本書閱讀,智能圖書借閱平臺(tái)呼吁用戶走進(jìn)圖書館,鼓勵(lì)讀者參與到全民紙質(zhì)閱讀的浪潮中。該平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)基于微信公眾平臺(tái),用戶無(wú)需下載App即可借閱書籍,很好地解決了傳統(tǒng)圖書館借書流程煩瑣、找書難的問題,幫助讀者更快定位書籍信息,更懂用戶。書籍上架提醒、圖書到期提前通知等人性化提醒,也讓用戶借的放心,感受到圖書館“無(wú)微不至”的呵護(hù),讓平臺(tái)成為用戶的貼心伴侶。
參考文獻(xiàn):
[1] 袁曦臨, 王駿, 劉祿. 紙質(zhì)閱讀與數(shù)字閱讀理解效果實(shí)驗(yàn)研究[J]. 中國(guó)圖書館學(xué)報(bào), 2015, 41(219): 35-46.
[2] 黃光芳. 面向接口編程在三層架構(gòu)系統(tǒng)中的設(shè)計(jì)與應(yīng)用[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2009, 26(6): 133-135.
[3] 李穎. 基于響應(yīng)式設(shè)計(jì)的Web App界面布局研究[J]. 安慶師范大學(xué)學(xué)報(bào): 自然科學(xué)版, 2017, 23(3): 62-67.
[4] 宋方, 金錦虹, 逯新輝. 析“扁平化”手機(jī)界面設(shè)計(jì)[J]. 包裝工程, 2012, 33(14): 60-63.
【通聯(lián)編輯:謝媛媛】