李雪 袁磊






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