一个基于微信小程序的高校信息推荐系统的设计与实现
2022-05-10李雪袁磊
李雪 袁磊
摘要:针对目前市场存在的高校信息推荐系统中的可視化表达抽象、用户理解不直观的问题,基于微信小程序、移动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.
【通联编辑:梁书】