李雪 袁磊
摘要:針對目前市場存在的高校信息推薦系統(tǒng)中的可視化表達(dá)抽象、用戶理解不直觀的問題,基于微信小程序、移動GIS、Node.js和MongoDB等技術(shù),設(shè)計并實現(xiàn)了一種基于微信小程序的高校信息推薦系統(tǒng)。該系統(tǒng)通過結(jié)合用戶與高校的空間信息,對高校和專業(yè)進(jìn)行推薦、查詢。能夠幫助用戶更直觀方便的獲取周邊高校信息,豐富高校信息展示形式。
關(guān)鍵詞:高校信息推薦;移動GIS;MongoDB;微信小程序;系統(tǒng)設(shè)計
中圖分類號:TP311? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2022)09-0038-03
1 引言
根據(jù)教育部新發(fā)高等院校白名單,截至2021年9月30日,全國高等學(xué)校共計3012所(不包含港澳臺地區(qū)高等學(xué)校)。其中包含普通高等學(xué)校2576所、成人高等學(xué)校256所[1]。面對眾多的高校信息,如何高效快速地獲取到高校信息的需求一直存在。隨著移動信息技術(shù)的發(fā)展,推薦算法逐漸完善,結(jié)合大數(shù)據(jù)的數(shù)據(jù)挖掘等高新技術(shù),如今已有較完善的推薦系統(tǒng)[2]。主要的推薦信息的途徑逐漸從PC端過渡到移動端。目前在移動端的信息推薦平臺,需要進(jìn)行多端開發(fā),以適應(yīng)Android端和IOS端的不同用戶。
在現(xiàn)有的移動端的高校信息推薦系統(tǒng)中,高校信息多以表格,圖表等形式展示高校信息[3]。若是能與移動GIS技術(shù)相結(jié)合,那么將可以進(jìn)行高校的整體空間信息展示,便于用戶更直觀地獲取高校信息的推薦。微信小程序平臺可以實現(xiàn)一次開發(fā),多端支持。而且不需要通過下載或安裝即可以使用,具有“用完即走”的特性。這種方式不僅快捷方便而且因為載體是微信也更易普及使用。
基于以上情況,本文設(shè)計了基于微信小程序的高校信息推薦系統(tǒng)。本系統(tǒng)設(shè)計高校信息與騰訊地圖底圖相結(jié)合,構(gòu)成輕量級GIS應(yīng)用,由高校和個人空間位置的不同,推薦不同的高校,最后把推薦結(jié)果通過移動GIS技術(shù)進(jìn)行可視化展示推薦結(jié)果,豐富移動端展示高校信息的方式。
2 系統(tǒng)架構(gòu)及關(guān)鍵技術(shù)
2.1 系統(tǒng)架構(gòu)
本系統(tǒng)采用C/S架構(gòu),如圖1所示,其中客戶端部分采用微信小程序技術(shù)開發(fā),實現(xiàn)數(shù)據(jù)的可視化展示,提供用戶與服務(wù)器端的交互界面。后端實現(xiàn)采用Node.js環(huán)境與express框架相結(jié)合,處理客戶端與服務(wù)端之間的web通信,可以在不新增線程的情況下處理并行任務(wù)[4]。數(shù)據(jù)庫方面采用MongoDB實現(xiàn)。MongoDB是一個基于分布式文件存儲的數(shù)據(jù)庫,可以為Web應(yīng)用提供可擴(kuò)展的高性能的數(shù)據(jù)存儲解決方案,具有高性能、易部署、易使用、易于進(jìn)行數(shù)據(jù)存儲及管理等優(yōu)點[5]。
2.2 關(guān)鍵技術(shù)
1)微信小程序
微信小程序是一種采用WXML(HTML5)、WXSS(CSS)和JavaScript技術(shù)等主要技術(shù)進(jìn)行開發(fā)的即時通訊的應(yīng)用程序,與前端開發(fā)相似。在發(fā)展過程中,出現(xiàn)了眾多第三方框架等供開發(fā)人員使用,如:wepy、mpvue、taro、uni-app等。隨著不斷更新迭代,官方也在持續(xù)更新框架。
2)騰訊地圖微信小程序JavaScript API
騰訊地圖微信小程序JavaScript API 是專為微信小程序開發(fā)者打造的工具與接口,極大減少開發(fā)者工作量,實現(xiàn)快速接入。提供基于小程序原生的地圖接口,體驗流暢;全套功能模塊均源于騰訊位置服務(wù),天然匹配兼容,交互順暢。其與高校信息相結(jié)合,可以形成移動端輕量級GIS應(yīng)用,展示推薦信息[6]。
3)Node.js
Node.js是一個基于 Chrome V8 引擎的 JavaScript 運行環(huán)境。其使用的模型特點是事件驅(qū)動、非阻塞式I/O,使服務(wù)器端處理更高效。同時由于它是開源項目,它的包管理器NPM中有大量的第三方庫,豐富Node了平臺中的各項功能。
4)Express框架
Express框架是基于node.js平臺運行的Web應(yīng)用開發(fā)框架,可以快速簡潔的幫助開發(fā)者創(chuàng)建各種Web應(yīng)用,擁有靈活的擴(kuò)展機制,具有強大的路由功能和多模塊支持,使用起來簡單方便,具有詳細(xì)API文檔可供查詢[4]。
5)MongoDB數(shù)據(jù)庫
數(shù)據(jù)庫方面設(shè)計采用非關(guān)系型數(shù)據(jù)庫MongoDB。通過Jose B.等人的實驗可以看出來,MongoDB數(shù)據(jù)庫作為NOSQL數(shù)據(jù)庫在各方面都是優(yōu)于關(guān)系型數(shù)據(jù)庫MYSQL的[7]。同時MongoDB支持建立基于空間位置的索引,大大為系統(tǒng)節(jié)約了計算資源[8]。
3 系統(tǒng)設(shè)計與實現(xiàn)
3.1 業(yè)務(wù)流程設(shè)計
系統(tǒng)實現(xiàn)的主要服務(wù)流程為:用戶在客戶端進(jìn)行登錄注冊后,提交查詢信息,可以生成對應(yīng)的高校熱點圖或?qū)I(yè)熱點圖,在地圖上展示搜索結(jié)果。其中系統(tǒng)管理員在PC端負(fù)責(zé)對系統(tǒng)進(jìn)行維護(hù)管理,如對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行維護(hù);高校管理員與普通用戶,在小程序端進(jìn)行相應(yīng)操作。該業(yè)務(wù)處理流程如圖2所示。
3.2 系統(tǒng)功能設(shè)計
高校信息推介平臺主要功能在于對用戶進(jìn)行高校信息推介和查詢,其中推介信息可直接打開相關(guān)頁面以自身的地理位置接收到周邊高校的信息推介。所服務(wù)的角色大致分為兩類,即高校管理人員和普通用戶,則該平臺具有五大功能模塊:
1)用戶模塊
用戶模塊分為兩大類即高校管理員和普通用戶。高校管理員具有:注冊、登錄、修改認(rèn)證個人信息、創(chuàng)建高校信息、發(fā)布高校信息等功能。普通用戶具有:注冊、登錄、修改管理個人信息、搜索高校信息、查看高校推薦等功能。其中高校管理員具有子功能,修改高校信息。根據(jù)高校的政策發(fā)布和發(fā)展,更改前期爬蟲搜集的高?;A(chǔ)信息,同時便于維護(hù)平臺更新后的各項數(shù)據(jù)。
2)空間信息展示模塊
空間信息展示模塊分為兩個方面:高校熱點圖和專業(yè)熱點圖。高校熱點圖與專業(yè)熱點圖均是根據(jù)推薦模塊的推薦結(jié)果,形成熱點圖,顯示在地圖上,可以查看高校位置及信息。
3)搜索模塊
用戶可以根據(jù)自己的需要對高校名稱或者是專業(yè)名稱進(jìn)行搜索查詢,查詢結(jié)果將在地圖上進(jìn)行信息展示,信息主要為高校名稱及其基本信息等。也可以點擊查看全部排名列表。
4)推薦模塊
根據(jù)用戶的位置,查詢周圍的高校,或者專業(yè)信息,把結(jié)果按次序排列。
5)數(shù)據(jù)管理模塊
本模塊實現(xiàn)對于數(shù)據(jù)的管理和查詢功能。本平臺設(shè)計采用非傳統(tǒng)關(guān)系型數(shù)據(jù)庫MongoDB進(jìn)行數(shù)據(jù)管理,以實現(xiàn)靈活存儲管理平臺的各項數(shù)據(jù)。MongoDB 可以使用 JSON格式進(jìn)行數(shù)據(jù)存儲,由于其非結(jié)構(gòu)性數(shù)據(jù)庫數(shù)據(jù)間關(guān)聯(lián)性不強的特點,對于數(shù)據(jù)的存儲和使用都很靈活。存儲用戶和高校的各項信息,對數(shù)據(jù)進(jìn)行規(guī)范化管理。通過建立的索引,可以極大地減少系統(tǒng)消耗。
3.3 數(shù)據(jù)庫設(shè)計
針對高校的相關(guān)信息的采集的工作,主要是通過爬蟲工具從百度百科網(wǎng)站爬取到高校介紹的相關(guān)信息,最后將爬取到的數(shù)據(jù)以JSON格式存儲到 MongoDB 數(shù)據(jù)庫中,作為本平臺的初始狀態(tài)的基礎(chǔ)信息。同時建立基于專業(yè)評級和地理位置等的索引,方便用戶的查找。
由于本系統(tǒng)平臺運用非關(guān)系型數(shù)據(jù)庫MongoDB作為數(shù)據(jù)庫,對于關(guān)系型數(shù)據(jù)庫中的表等概念在MongoDB中也具有相似的因素與之對應(yīng)。根據(jù)系統(tǒng)需求建立集合,以下列出主要的集合及其字段名。以一個具有完整字段內(nèi)容的文檔為例,如下所示,表1是用戶集合及其所有字段,表2為高校集合及其所有字段:
3.4 系統(tǒng)實現(xiàn)
本系統(tǒng)在微信開發(fā)助手平臺采用微信原生框架進(jìn)行前端開發(fā),以Node.js+express+MongoDB 作為后端框架提供服務(wù)端支持。圖3為信息推薦平臺的主頁面,具有高校信息大全、專業(yè)大全等信息展示。其中高校大全和專業(yè)大全將以圖4的方式表現(xiàn)。本平臺的主要功能在右下角的高校模塊,點進(jìn)去后將展示高校的信息推薦如圖5所示,將用戶周圍的推薦高校標(biāo)注在地圖上。
4 結(jié)束語
本文設(shè)計了基于微信小程序的高校信息推介系統(tǒng)。在本設(shè)計中,針對高校的信息推薦方法,使用戶空間信息和高校的空間信息結(jié)合,得到個性化推薦結(jié)果。把高校空間信息和騰訊地圖相結(jié)合,構(gòu)成輕量級GIS系統(tǒng),在微信小程序中展示出高校信息的推薦結(jié)果,易用又方便,為高校的信息展示提供了新方式,為用戶獲取信息提供了新的推薦思路。系統(tǒng)采用了MongoDB數(shù)據(jù)庫支持,對于數(shù)據(jù)的管理和存儲提供了更多策略,提升了系統(tǒng)對資源管理的效率。MongoDB支持建立的空間索引,使得系統(tǒng)資源得到極大利用,節(jié)省了開發(fā)成本。
目前系統(tǒng)中對于高校和專業(yè)的推薦算法還有待完善,在軟件擁有更多的用戶信息后,根據(jù)用戶信息和日志記錄可以改進(jìn)推薦算法,使得推薦結(jié)果更精準(zhǔn)。
參考文獻(xiàn):
[1] 中華人民共和國教育部政府門戶網(wǎng)站公布全國高等學(xué)校白名單[EB/OL].[2.21-11-01].http://www.moe.gov.cn/jyb_xxgk/s5743/s5744/A03/202110/t20211025_574874.html.
[2] 許煥新,崔秀艷,李戰(zhàn)軍.基于大數(shù)據(jù)的高考志愿輔助填報系統(tǒng)設(shè)計與實現(xiàn)[J].河北軟件職業(yè)技術(shù)學(xué)院學(xué)報,2019,21(2):1-4.
[3] 卜明偉,朱正平,羅政,等.基于WebGIS的高校志愿填報智能推薦系統(tǒng)設(shè)計與實現(xiàn)[J].電腦知識與技術(shù),2020,16(1):79-82.
[4] 程桂花,沈煒,何松林,等.Node.js中Express框架路由機制的研究[J].工業(yè)控制計算機,2016,29(8):101-102.
[5] Kristina ChodorowK, Dirolf M.MongoDB權(quán)威指南[M].鄧強,王明輝,譯.北京:人民郵電出版社,2014.
[6] 解意.基于微信小程序的移動端輕量GIS系統(tǒng)的實現(xiàn)[J].城市勘測,2020(5):158-160.
[7] Jose B,Abraham S.Performance analysis MongoDB and MySQL[J].Materials Today: Proceedings, 2020, 24 (7):2036-2043.
[8] 潘國富.基于MongoDB的空間搜索引擎設(shè)計及優(yōu)化方法[J].測繪通報,2021(8):162-165.
【通聯(lián)編輯:梁書】