基于thinkphp+微信小程序的校园社团云平台的设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于ThinkPHP+微信小程序的校园社团云平台的设计与实现
章春梅1,余永红2
(1.南京信息职业技术学院计算机与软件学院,江苏南京210000;2.南京邮电大学通达学院,江苏扬州210009)
摘要:针对目前高校社团管理系统采用的技术比较传统、用户体验感不佳的问题,采用ThinkPHP框架、Vue框架并结合微信小程序将传统的管理系统进行改造,设计并开发了一套完整的对高校社团的管理以及服务平台,并在系统的基础上构建云平台,为广大热爱开发的同学们提供资源及平台,方便他们开发出自己的社团应用,相比于传统的社团管理系统,提高了系统的安全性,用户的体验感。
关键词:微信小程序;校园社团;云平台;ThinkPHP
中图分类号:G642文献标识码:A
文章编号:1009-3044(2019)30-0078-04开放科学(资源服务)标识码(OSID):
Design and Implementation of Campus Community Cloud Platform Based on ThinkPHP+Wechat
ZHANG Chun-mei1,YU Yong-hong2
(1.Institute of Computing and Software,Nanjing Vocational College of Information Technology,Nanjing210000,China;2.Tongda College,Nanjing University of Post and Telecommunications,Nanjing200009,China)
Abstract:Considering of the traditional technology and poor user experience in the management system of College associations,the traditional management system is reformed by using ThinkPHP framework,Vue framework and Wechat.A complete management and service platform for college associations is designed and developed.On the basis of the system,a cloud platform is constructed for the students who love to develop it.Provide resources and platforms for them to develop their own community pared to the traditional community management system,it improves the security of the system,the sense of user experience.
Key words:Wechat;Campus community;Cloud platform;ThinkPHP
1概述
近年来,随着“互联网+”的快速推进,人们的消费和生活方式发生了巨大的变化,但是数字化校园的发展依然十分滞后,比如高校社团,据调查发现,大多数高校社团依然采用最原始的人工管理社团的方式来进行社团的管理,不仅效率低下,而且极其浪费资源。
为了提高效率,减轻校园对社团的管理成本以及为校园学生提供全面而又高效的校园社团服务,校园社团管理系统的研发就显得尤为重要。
目前对高校社团管理系统的研究,大都基于传统的HTML5的Web App[1],用户的体验感以及对新设备的支持度就显得很差,并且过多注重于管理,忽视了用户所能享受的服务,导致了系统功能粒度粗,不够完善。
微信小程序是近年来互联网行业中的新兴,它无需安装、触手可及、用完就走。
微信小程序开发成本低,开发效率高,足以承载校园社团管理以及服务的业务场景。
本文采用ThinkPHP框架,Vue框架并结合微信小程序将传统的管理系统进行改造,完成一套完整的对高校社团的管理以及服务平台,此外,在系统的基础上构建开放平台,致力于建设一个良好的校园开发者生态,为广大热爱开发的同学们提供资源以及平台,以此来促进同学们的综合素质能力的提升。
2系统设计
2.1系统服务主体
系统的服务主体大致分为四类:校园管理者,社团管理者,学生和陌生人。
服务主体的不同,要实现的功能也不同。
2.2系统工作流程设计
系统有两大客户端,微信小程序以及PC端管理后台。
微信小程序是直接面向用户的客户端,而PC端管理后台只是校园管理者以及社团管理者管理校园以及社团的一个后台。
系
收稿日期:2019-07-26
基金项目:南京信息职业技术学院自然科研基金项目“基于ThinkPHP+微信小程序的校园社团云平台”(YK20180402)
作者简介:章春梅(1979—),女,江苏太仓人,讲师,硕士,主要研究方向为网络应用程序开发,数据挖掘;余永红(1978—),男,湖北鄂州人,副教授,博士,主要研究方向为机器学习、数据挖掘。
Computer Knowledge and Technology 电脑知识与技术
第15卷第30期(2019年10月)
统具体工作流程如图1
所示。
图1系统工作流程
2.3系统功能设计
根据客户端来分,系统可分为两大类,小程序用户以及后台用户,具体功能如图2所示。
由于功能繁多,下面仅对系统
较为重要的功能做描述。
图2系统功能结构图
2.3.1登录小程序
将登录令牌存储于缓存,在用户每次向服务器请求数据的时候,将缓存中的token 取出和请求一并发送与服务器,服务器通过解析token 即可知道当前用户的信息。
关于登录状态的更新,每当用户重新进入小程序的时候,如果缓存中不存在token 或者当前时间超过了令牌过期时间,就重新登录小程序获取新的token 以及新的过期时间。
2.3.2用户扫码进入校园及社团后台
传统的管理系统的后台大都是已账号密码登录的,这样的方式其实并不是很安全,只要知道账号以及密码,无论是谁都可以登录后台,假设有一个恶意的人,盗取了账号以及密码,那么系统的安全性就得不到保障了。
本系统充分考虑到传统的方式带来的弊端,对后台的登录做了两步操作,第一步是要求用户输入正确的账号以及密码,第二步则是要求验证用户的身份。
其中,第二步能够实现也是依托于微信的结果,因为每一个用户持有的每一个移动设备都只能有一个微信账号,如果要验证用户的身份,只要让用户使用该微信账号向服务器表明即可。
2.3.3权限管理
权限管理对于整个后台来讲十分重要,无论是校园还是社团,都应该构建自己的权限管理体系,保证不同的用户不能越权操作,以此来提高系统的安全性以及可靠性。
设定用户权限这个操作只允许当前账号下作为超级管理员的用户来进行,因此,在进行权限管理的过程中,需要对当前操作者进行身份认证,认证通过,方可进行下一步操作。
对于校园来讲,权限管理不需要做的特别的复杂,我们可以将校园管理者分为两大类用户,超级管理员以及运营人员,超级管理员拥有最高的权限,包括分配运营人员的权限,而运营人员的权限则有超级管理员来分配,即每一个运营人员都有自己对应的权限。
相比于校园来讲,社团的权限管理就复杂得多,在社团中,影响用户权限的因素还有当前用户所处的部门以及该用户在部门中承担的职位。
并且每个社团的部门以及职位我们都是不可穷举的。
为此,本系统将社团管理者分为两大类,超级管理员以及其他管理员,超级管理员拥有最高的权限并且不受所处部门以及职位的影响,而其他管理员的权限将受到当前所处部门以及职位的影响,超级管理员负责创建部门,以及在部门下创建职位,在创建职位的同时,将该职位拥有的权限一并设置好。
2.3.4开放平台
开放平台的设计是为了满足校园开发者对本系统资源的利用,方便大家利用这些资源去开发属于自己的应用,但是,可能会有一些恶意的人利用一些网络攻击手段来损害系统的正常运行或者非法获取他人数据,为了防止这一切发生,系统的开发平台的设计应该采取一定的方案,具体流程如图3所示。
2.3.5社交平台
在完成用户的一些基本需求之后,本系统尝试在校园中建立一个小型的社交平台,通过用户关注其他用户或者社团这个行为,分析其兴趣点,采用协同过滤推荐算法,发掘用户与其他用户之间的联系,图4是关于构建小型社交平台的大致流程图。
2.4界面设计
本系统有两大客户端,一个为小程序客户端,一个为PC 端管理后台,在界面设计上,小程序采用微信原生的WeUI 套件,如图5所示。
而后台则采用Element UI ,如图6所示,秉承着美观大方,加强用户体验感的前提下进行设计与开发。
3系统实现
系统客户端包含微信小程序、校园以及社团管里后台,服务端则为部署在线上的服务器。
前端采用开发技术Vue 、web⁃pack 、微信小程序等,后端采用ThinkPHP 框架,MySQL ,Linux 、Nginx 等技术。
本系统功能较多,除去基本功能模块外,下面对云平台的建设以及只能推荐模块的实现进行描述。
Computer Knowledge and Technology 电脑知识与技术第15卷第30期(2019年10月)
3.1开放平台的实现
实现开放平台主要分为两大块,第一块是服务器实现开放平台相应的逻辑,第二块则是用户如何对接使用开放平台。
对于第一块,服务器端主要逻辑为鉴权,对于鉴权,为了保护系统的安全性,采取如下措施:
第一,保证用户调用API 接口均通过HTTPS 进行通信,以此来提高系统的安全性。
具体做法为,驳回所有80端口的开放平台接口访问,只允许443端口的开放平台接口访问。
第二,禁止用户的app 秘钥在网络中传输,防止恶意抓包工具,盗取秘钥。
具体做法为,使用数字签名的方式,通过加解密来验证用户的身份。
第三,禁止用户访问不在自己权限范围内的接口版本以及不在开放接口列表内的接口名称,保证安全性。
第四,防止常见的网络攻击,如SQL 注入攻击,重放攻击等,由于框架底层已经使用PDO 的方式对数据库CURD ,因此,在这里,我们只需要考虑较为常见的重放攻击的防护。
用户要对接开放平台,必须在后台创建开放平台应用,为此,系统在设计上考虑到校园以及社团的不同需求,构建出了两套开放平台,一套是校园的开放平台,另外一套是社团的开放平台。
两套方案在创建的数量以及在appid 的识别方面有不同,但不管是哪种开放平台,他们的app 秘钥生成,都是通过md5随机生成的。
3.2协同过滤推荐的实现
采用协同过滤推荐,并且结合社交网络,挖掘用户的兴趣点,基于用户(user-based)的协同过滤主要考虑的是用户和用户之间的相似度,只要找出相似用户喜欢的物品,并预测目标用户对对应物品的评分,就可以找到评分最高的若干个物品推荐给用户。
3.2.1发现兴趣相似的用户
通常用Jaccard 公式或者余弦相似度计算两个用户之间的相似度。
设N(u)为用户u 喜欢的物品集合,N(v)为用户v 喜欢的物品集合,那么u 和v 的相似度为:
Jaccard 公式:
w uv =
||N (u )⋂N (v )|
|N (u )⋃N (v )(1)余弦相似度:
w uv =
||N (u )⋂N (v )||N (u )×|
|N (v )(2)
假设目前有A ,B ,C ,D 三个用户,a ,b ,c ,d ,e ,f ,g ,h 8个物
品。
用户与这些物品的喜欢管理如下表1
:
图3构建开放平台的流程图
图4构建小型社交平台的流程
图5小程序校园首页
图6校园以及社团管理后台
Computer Knowledge and Technology 电脑知识与技术
第15卷第30期(2019年10月)
表1用户喜欢物品表(举例)
用户A B C
D
喜欢的物品a ,b ,e ,f b ,c ,d
a ,d ,f ,g ,h g ,h 现在假设给A 用户推荐物品,则计算其他用户与A 用户的相似度,在这里,我们采用余弦相似度算法。
表2其他用户与A 用户共同喜欢物品表(举例)
用户B C
D 喜欢的物品b ,c ,d
a ,d ,f ,g ,h g ,h 和A 共同喜欢的物品
120
根据上表2,即可得出余弦相似度的分子部分,则B,C ,D 三
个用户与A 用户余弦相似度分别为:1
23
≈0.2887,1
5≈0.4472,0。
由高到底排序,则是C ,B 。
3.2.2推荐物品
首先需要找出与目标用户u 最相似的K 个用户(即从上一
步骤中,根据相似度由高到低排序,取前K 个用户),用集合S(u,K)表示,将S 中用户喜欢的物品全部提取出来,并去除u 已经喜欢的物品。
对于每个候选物品i ,用户u 对它感兴趣的程度用如下公式计算:
p (u ,i )=
∑
v ∈S ()u ,K ⋂N (i )
w uv ×r vi (3)
其中r vi 表示用户v 对i 的喜欢程度,在本例中都是为1,在一些需要用户给予评分的推荐系统中,则要代入用户评分。
现在我们要给A 推荐物品,相似用户则是:C 、B 那么他们喜欢过并且A 没有喜欢过的物品有:c 、d 、g 、h ,根据公式(3)可以
得到以下结果:
p (A ,c )=w AB =0.2887;
p (A ,d )=w AB +w AC =0.7359;p (A ,g )=w AC =0.4472;p (A ,h )=w AC =0.4472。
对这几个喜欢程序进行排序,那么推荐给A 用户的,则为
d ,g ,h ,c 。
对于推荐用户而言,把物品换成人就可以了。
4结束语
本系统主要是面向校园,社团,以及学生的一个服务平台,除此之外,本系统还建设了校园社团的云平台,为广大校园开发者提供RESTful API ,方便校园开发者开发出自己的社团应用以及提升高校学生的素质能力。
本系统采用时下较为流行的技术,比如Vue 框架,微信小程序等,对于改善传统校园社团管理系统起到了很大的作用,同时开放平台的建设也让整个系统创新性十足,极大丰富了校园数字文化的建设。
参考文献:
[1]胡香平.基于微信公众平台的社团管理系统的应用与研究[J].信息与电脑:理论版,2017(7):112-114.
[2]刘青文.基于协同过滤的推荐算法研究[D].合肥:中国科学技术大学,2013.
[3]王璇.协同过滤算法的改进与应用研究[D].南京:南京邮电大学,2017.
[4]江庆,叶浩荣.Vue+Webpack 框架在银行App 前端开发的应用[J].金融科技时代,2016(11):15-19.
[5]时子庆,刘金兰,谭晓华.基于OAuth2.0的认证授权技术[J].计算机系统应用,2012,21(3):260-264.
[6]李少杰.基于ThinkPHP 框架开放教育微课平台的设计与实现[J].电脑知识与技术,2017,13(3):116-118.
[通联编辑:王力]
(上接第75页)
本APP 除包含回收这一主要功能外,
还包含余额充值、饮料商城等功能,如图6所示。
图6APP 其他功能
4结束语
基于Android 平台设计了一款智能饮料瓶回收APP ,很好
地解决了物资回收机的低效益问题。
随着科学技术和社会需求的发展,未来的物资回收机将具有更多功能,APP 的功能因此也会不断提升,不断地为人类的美好生活做出贡献。
参考文献:
[1]康婷婷.饮料瓶回收装置物品形状检测研究[D].太原:中北大学,2015.
[2]李涵,韩淼,韩冬.采用Android 架构的网络约球软件[J/OL].软件导刊:1-5[2019-08-25]./kcms/detail/42.1671.TP.20190820.1123.020.html.
[3]雷聚超,史冬蕾.Android 平台下的SQLite 数据库安全性研究[J].电脑编程技巧与维护,2015(7):37-38,47.
[通联编辑:梁书]。