APP下载

基于ThinkPHP+微信小程序的校园社团云平台的设计与实现

2019-12-16章春梅余永红

电脑知识与技术 2019年30期
关键词:微信小程序云平台

章春梅 余永红

摘要:针对目前高校社团管理系统采用的技术比较传统、用户体验感不佳的问题,采用ThinkPHP框架、Vue框架并结合微信小程序将传统的管理系统进行改造,设计并开发了一套完整的对高校社团的管理以及服务平台,并在系统的基础上构建云平台,为广大热爱开发的同学们提供资源及平台,方便他们开发出自己的社团应用,相比于传统的社团管理系统,提高了系统的安全性,用户的体验感。

关键词:微信小程序;校园社团;云平台;ThinkPHP

中图分类号:G642 文献标识码:A

文章编号:1009-3044(2019)30-0078-04

1概述

近年来,随着“互联网+”的快速推进,人们的消费和生活方式发生了巨大的变化,但是数字化校园的发展依然十分滞后,比如高校社团,据调查发现,大多数高校社团依然采用最原始的人工管理社团的方式来进行社团的管理,不仅效率低下,而且极其浪费资源。为了提高效率,减轻校园对社团的管理成本以及为校园学生提供全面而又高效的校园社团服务,校园社团管理系统的研发就显得尤为重要。目前对高校社团管理系统的研究,大都基于传统的HTML5的Web App,用户的体验感以及对新设备的支持度就显得很差,并且过多注重于管理,忽视了用户所能享受的服务,导致了系统功能粒度粗,不够完善。

微信小程序是近年来互联网行业中的新兴,它无需安装、触手可及、用完就走。微信小程序开发成本低,开发效率高,足以承载校园社团管理以及服务的业务场景。

本文采用ThinkPHP框架,Vue框架并结合微信小程序将传统的管理系统进行改造,完成一套完整的对高校社团的管理以及服务平台,此外,在系统的基础上构建开放平台,致力于建设一个良好的校园开发者生态,为广大热爱开发的同学们提供资源以及平台,以此来促进同学们的综合素质能力的提升。

2系统设计

2.1系统服务主体

系统的服务主体大致分为四类:校园管理者,社团管理者,学生和陌生人。服务主体的不同,要实现的功能也不同。

2.2系统工作流程设计

系统有两大客户端,微信小程序以及PC端管理后台。微信小程序是直接面向用户的客户端,而PC端管理后台只是校园管理者以及社团管理者管理校园以及社团的一个后台。系统具体工作流程如图1所示。

2.3系统功能设计

根据客户端来分,系统可分为两大类,小程序用户以及后台用户,具体功能如图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所示。而后台则采用ElementuI,如图6所示,秉承着美观大方,加强用户体验感的前提下进行设计与开发。

3系统实现

系统客户端包含微信小程序、校园以及社团管里后台,服务端则为部署在线上的服务器。前端采用开发技术Vue、web-pack、微信小程序等,后端采用ThinkPHP框架,MySQL,Linux、Nginx等技术。

本系统功能较多,除去基本功能模块外,下面对云平台的建设以及只能推荐模块的实现进行描述。

3.1开放平台的实现

实现开放平台主要分为两大块,第一块是服务器实现开放平台相应的逻辑,第二块则是用户如何对接使用开放平台。

对于第一块,服务器端主要逻辑为鉴权,对于鉴权,为了保护系统的安全性,采取如下措施:

第一,保证用户调用API接口均通过HTTPS进行通信,以此来提高系统的安全性。具体做法为,驳回所有80端口的开放平台接口访问,只允许443端口的开放平台接口访问。

第二,禁止用户的app秘钥在网络中传输,防止恶意抓包工具,盗取秘钥。具体做法为,使用数字签名的方式,通过加解密来验证用户的身份。

第三,禁止用户访问不在自己权限范围内的接口版本以及不在开放接口列表内的接口名称,保证安全性。

第四,防止常见的网络攻击,如SQL注入攻击,重放攻击等,由于框架底层已经使用PDO的方式对数据库CURD,因此,在这里,我们只需要考虑较为常见的重放攻击的防护。

用户要对接开放平台,必须在后台创建开放平台应用,为此,系统在设计上考虑到校园以及社团的不同需求,构建出了两套开放平台,一套是校园的开放平台,另外一套是社团的开放平台。两套方案在创建的数量以及在appid的识别方面有不同,但不管是哪种开放平台,他们的app秘钥生成,都是通過rod5随机生成的。

3.2协同过滤推荐的实现

采用协同过滤推荐,并且结合社交网络,挖掘用户的兴趣点,基于用户(user-based)的协同过滤主要考虑的是用户和用户之间的相似度,只要找出相似用户喜欢的物品,并预测目标用户对对应物品的评分,就可以找到评分最高的若干个物品推荐给用户。

3.2.1发现兴趣相似的用户

通常用Jaccard公式或者余弦相似度计算两个用户之间的相似度。设N(u1为用户u喜欢的物品集合,N(v)为用户v喜欢的物品集合,那么u和v的相似度为:

假设目前有A,B,C,D三个用户,a,b,c,d,e,f,g,h8个物品。用户与这些物品的喜欢管理如下表1:

现在假设给A用户推荐物品,则计算其他用户与A用户的相似度,在这里,我们采用余弦相似度算法。

4结束语

本系统主要是面向校园,社团,以及学生的一个服务平台,除此之外,本系统还建设了校园社团的云平台,为广大校园开发者提供RESTful API,方便校园开发者开发出自己的社团应用以及提升高校学生的素质能力。本系统采用时下较为流行的技术,比如Vue框架,微信小程序等,对于改善传统校园社团管理系统起到了很大的作用,同时开放平台的建设也让整个系统创新性十足,极大丰富了校园数字文化的建设。

猜你喜欢

微信小程序云平台
当图书馆遇上微信小程序
企业云平台建设研究