基于Vue的兴趣活动推荐APP的设计与实现_kaic

摘 要

近年来,随着互联网不断的普及与发展,生活也变的多姿多彩,每个人几乎都有属于自己的小小兴趣圈子,但人们的兴趣却不止一个,大多数人是没有时间为自己的兴趣"买单"的。为了解决我们在生活中对于各种兴趣活动的不确定性、复杂性和多样性等问题,结合每个人的喜好、特点、习性、生活方式和居住地等信息,通过基于海量数据的兴趣推荐算法,将兴趣活动的信息更直观的展现给用户。帮助用户更好的根据自己的兴趣爱好参加活动。项目前端用Vue实现数据动态绑定,后台运用SSM框架实现数据交互。Vue.js是现在流行的前端技术,是现在主流的构建用户界面的渐进式框架,选择其原因是相对其它前端主流框架有较好的性能优势。

基于内容的推荐算法可通过用户行为预测用户喜欢内容并应用于基于Vue的兴趣活动推荐APP,在极大程度上优化了用户体验。

关键词:Vue前端技术;SSM框架;兴趣推荐;Ajax

Abstract

In recent years, with the continuous popularization of the Internet, life has become colorful. Almost everyone has their own small interest circle, but people have more than one interest. Most people have no time to "pay" for their interest. In order to solve the uncertainty, complexity and diversity of various interest activities in our life, combined with everyone's preferences, characteristics, habits, lifestyles and residences and other information, through the interest recommendation algorithm based on massive data, the information of interest activities will be more intuitive displayed to users. Help users better according to their own interests to participate in activities. The front end of the project uses Vue to realize data dynamic binding, and the back end uses SSM framework to realize data interaction. Vue.js is a popular front-end technology, and it is the mainstream progressive framework for building user interface. The reason for choosing it is that it has better performance advantages than other front-end mainstream frameworks.

The content-based recommendation algorithm can predict the user's favorite content through the user behavior and apply it to the Vue based activity recommendation app, which greatly optimizes the user experience.

Keywords:Vue front-end technology; SSM framework; interest recommendation; Ajax

引 言

个性化推荐概念于1995年3月首次出现在美国人工智能协会。卡内基梅隆大学的罗伯特阿姆斯特朗建议使用个性化的导航系Web Watcher[1]。同时期,斯坦福大学的巴尔巴诺维奇等也推出了一个个性化推荐系统LIRA[2]。从此,个性化推荐的研究逐步开始发展。

此后,亚马逊开始使用推荐系统,对用户的浏览的商品和购买商品分析,试着对部分用户进行个性化推荐。根据国外一科技博客网站的统计,这种方法将该网站的销售额提升了三成之多。在此之后,个性化推荐的应用越来越广泛。

在本世纪初期,国内在推荐系统的研究方面取得了很好的成果。关于评估数据的稀缺性[3],研究人员提出了几种算法,其中包括:一种协同过滤推荐算法和一种基于项目评分推测的协同过滤推荐算算法等。推荐算法都有各自的优缺点,因此许多研究人员为了修正算法的缺点,运用了结合多种过滤技术的方法。

随着4G网络的全面落实,5G时代的到来,智能手机的更新换代速度,使人们更倾向于用手机代替电脑[4],希望手机可以实现更多的功能,因此使用移动端应用程序的社交网络将成为未来研究的热点。但就现有的移动端社交网络多数为PC端程序复制到手机上的,虽然具有很多功能,但是并不易操作,最不好的是,会伴随着一些扰人的信息;另外,在推荐网站方面关于用户的隐私问题并没有得到很多的关注和应有的保护,最后就是,市面上大多的应用、网站针对广大群众。有时候总会收到一些网络不良信息的影响,导致有时不仅不利于活动的展开,更是给社会风气带来了不好的作用。

为了丰富广大用户单一的业余时间,同时培养了用户的兴趣喜好,营造了健康的社会风气,通过移动端APP来满足人们随时随地进行交际,寻找志趣相投的朋友的需求,本论文就此设计了一款基于VUE的社交APP。此APP主要在安卓移动终端平台上运行,对于安卓端主要采用WebStorm开发,服务端也就是网页端主要采用SSM框架进行开发。后台数据库管理系统选用MySQL数据库,同时使用安卓模拟器模拟实际的安卓手机来测试程序。通过对一些社会人群的调查取样,然后分析当代人们信息建设的一些需求和弊端,再结合已有的具有推荐功能的APP,综合完善之后,最终呈现出一款面向社会的兴趣推荐APP。

众所周知,现在社会发展迅速,已经进入一个崭新的信息时代,人们只要连上网络,不管和亲人或者朋友相距多远,都可以随时随地联系、进行视频通话等。这些全都受惠于互联网的发展。也是因为互联网的发展,才使得人们对通信这方面需求更大,人们已经不满足于电脑PC端,而是更倾向于便捷的APP。

APP便是一款最新的且很轻巧的信息交互软件,本篇论文主要是基于移动端的兴趣推荐APP,主要针对广大人民群众群体,进行APP的开发,可以更好的服务人们,让人们的空余时间可以得到充足的体验。

本论文的主要工作是实现以下基本功能:

1、兴趣推荐:通过对多种推荐算法的研究,选取最适合本项目的推荐算法;

2、登录功能:用户若想进行操作,都必须先进行登录操作。在网络环境下,安卓端则需要用户自身先注册,才可登录;

3、系统主菜单:整个系统的核心,分为不同的板块和选项设置,用户可以根据自身的需求,点击对应的选项设置,进入该功能的界面,实行对应的操作;

4、活动发布功能:此功能可以添加好友,用户也可以查看好友的空间动态并且自己也可以发表动态,同时也可以对动态进行管理查看;

5、聊天功能:能够与所加好友即时通讯,可发送信息;

6、个人信息功能:包括用户密码、昵称、基本信息等的修改。

1 相关技术简介

1.1 框架

1.1.1 Spring MVC

基于Vue的兴趣活动推荐APP通过使用Spring MVC实现Servlet和JSP相互配合的方法实现所有功能[5]。其目的是为了解决由JSP或Servlet在实现系统功能时出现的固有问题。

1.1.2 Spring框架

Spring是一个开源框架,为解决基于Vue的兴趣活动APP开发的复杂性而创建的。它的优点是采用JavaBean这个概念去解决以前只有EJB才能做到的工作内容。Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架,任何JAVA应用都可以从Spring中受益[6]。

1.1.3 MyBatis框架

MyBatis是对于现阶段来说一个非常优秀的持久层框架,在基于Vue的兴趣活动APP中承担了与数据库交互的功能。它的优点是可以自定义SQL,存储过程,同时还能够实现高级映射。基于Vue的兴趣活动APP后台使用MyBatis避免了手动设置参数和获取结果集[7]。

1.1.4 VUE框架

Vue框架是一套用于构建用户界面的渐进式框架[8]。Vue 的所有的核心库几户都适用于视图层,其简单易上手的特性,便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动[9]。

1.2 开发语言

1.2.1 JAVA

JAVA是一种具有简单、跨平台、面向对象等特点的编程语言,相较其它语言来说具有出色的性能。基于Vue的兴趣活动APP选取JAVA语言开发的原因之一就是它可以在不同平台上运行,只需要在对应的平台上安装JAVA虚拟机即可[10]。并且JAVA还提供了NULL指针检测、数组边界检测、异常出口、Byte code校验等功能。以上优点非常符合本项目开发需求[11]。

1.2.2 JavaScript

JavaScript是一种脚本语言,是一种动态类型的,弱类型的,基于原型的语言。其主要用于服务器端执行,基于Vue的兴趣活动APP前端采用JSP页面开发[12],与JavaScript可以很好地兼容。JavaScript最大的作用还是用于浏览器端,因为它不需要服务器支持[13]。而随着服务器的强壮,虽然现在的程序员更喜欢运行于服务端的脚本以保证安全,但JavaScript仍然以其跨平台、容易上手等优势大行其道[14]。

1.3 设计模式

该系统使用MVC设计模式来实现系统构建。基于Vue的兴趣活动APP的前端用JSP页面,模型层用MySQL作为数据库层;控制层用SSM框架进行搭建,Bean层和Dao层则采用Mybatis逆向工程生成,减少部分开发周期。在某种意义上,架构的模式部分是让应用程序处于领先地位的全部原因[17]。综上所述,最终选择MVC的开发模式。

1.4 数据库

本系统使用MySQL数据库,基于Vue的兴趣活动APP选取其是因为性价比高,它是少数在开源免费的同时还具有极高性能的一款开源数据库,考虑到开发成本的问题,最终选取MySQL数据库作为基于Vue的兴趣活动APP的数据库层。另外它的可移植性强,MySQL能够运行与多种系统平台上,如windouws,Linux,Unix等,MySQL支持最常用的数据管理功能,适用于中小型企业甚至大型网站应用[18]。

2 可行性分析

系统分析也称为可行性分析,是开发基于Vue的兴趣活动APP的必要阶段。在这个阶段内首先要研究的就是系统开发的必要性和可能性。必要性是指在现在的情况下是否有必要开发一个基于Vue的兴趣活动APP来填补这个查询类工具的不足。可行性就要从"社会可行性","经济可行性","技术可行性"和"操作可行性"四个方面进行分析了,如图2.1所示。例如开发这个系统是否会造成资源浪费等等。

图2.1 可行性分析

2.1 社会可行性

社会可行性有的时候也被称为操作可行性。其主要论述了一些需要发布上线的系统在开发和运行中是否可以执行下去,并且也论述了系统在开发和运行中对企业等组织的影响。

在当前通讯速度的不断加快,计算机技术和软件技术的不断更新使管理系统不仅适用于企业或单位,甚至大众群体也可能需要采用这种先进的推荐技术。新的推荐技术对传统的查询方式产生了影响,并将带来一些积极的影响。而且,该系统满足相关产业的要求,不与国家法律法规相抵触,对促进信息产业的发展具有一定的作用,因此在社会方面是可行的。

2.2 经济可行性

根据成本/收益分析方法,可以使用此系统所需的软件和硬件资源。由于基于Vue的兴趣活动推荐APP是作为本人毕业项目自行开发的,因此开发成本的投资非常小。最初的资本投资主要集中在购买服务器上。因此,这在经济上是可行的。

2.3 技术可行性

该系统主要依靠JAVA技术以MySQL数据库实现,后台采用目前较为成熟的SSM框架搭建,另外依赖管理采用Maven。Maven将jar包保存到自定义仓库中,随用随取,用之如无,则会自动下载。并且Maven可以将一个项目拆分成多个文件,以实现项目的分布式发布。

基于Vue的兴趣活动推荐APP采用现阶段流行的开发技术,这样的技术在安全性和健壮性上相对稳定,当然这些技术的兼容性也是足够的,可以匹配市面上大部分电脑机型、系统等。所以,基于Vue的兴趣活动推荐APP在技术上是完全可行的。

2.4 操作可行性

基于Vue的兴趣活动推荐APP开发的核心就是方便。在绘制前端页面时应该有简约、美观等特点,在操作方面应该简单化,使初次操作本系统的用户也可以得心应手。基于系统美观、简介、可操作的特点使得它在操作性上可行。

3 系统概要设计

3.1 总体功能模块设计

基于Veu的兴趣活动推荐APP开发的目标是实现推荐算法,减少用户查询信息时的时间。其主要目的是通过用户过去喜欢的活动内容,通过推荐算法为其推荐经过算法过滤后极有可能是该类用户所感兴趣的活动信息,达到推荐的目的。其中,算法主要以内容推荐为主[19]。在查询类、浏览类系统或应用中,内容推荐算法算是现如今各类推荐算法的鼻祖,因此现在很多算法都可以从中看到内容推荐算法的影子,也有很多应用或者系统依旧采用此类算法推荐信息。

普通用户的需求是推过兴趣推荐算法查看到自己所感兴趣的活动内容并报名参加。还可以自愿发起活动。以及个人注册信息的修改;提供较为完善用户界面。

3.2 系统设计思想

兴趣推荐APP主要是便于普通用户查询活动相关信息。此系统的普通用户应该在系统中注册,只有注册成功后,通过注册后的账号密码登录,才可以查询活动的信息。另外还需要有对应的活动信息,因为只有系统中存在的活动信息,用户才可以对活动进行相报名活动、查看活动信息等相关操作[20]。

3.3 系统功能描述

普通用户的功能主要包括两部分:查看自己感兴趣的活动并报名(根据标签查询活动、兴趣推荐查看活动等);用户信息管理(普通用户的注册功能、修改功能、注销注册信息功能等等)。

普通用户页面应具有的功能如下:

注册系统用户功能:对于新用户,需要在系统中注册系统用户方可使用该系统;

注销用户功能:如果用户想不再使用本系统,可对自己的注册信息进行注销操作;

活动查看与报名功能:通过可选条件或输入模糊查询信息对系统中已存在的活动信息进行查询,并通过链接找到活动主页,了解更详细的信息;

好友聊天:可以与关注的人或者好友进行通讯。

功能如图3.1所示。

图3.1普通用户功能模块

3.4 系统用例图

用例图(Use Case Diagram)是由基于Vue的兴趣活动推荐APP需求分析到最终实现的第一步,其中要有对角色的设计以及角色对系统的操作。用例图在各种开发之前的设计阶段中被广泛的应用,但是它最常用来描述系统及子系统,如图3.2所示。

图3.2普通用户用例图

3.5 数据库设计

3.5.1 数据库技术简介

数据库技术与计算机软件之间的关系密不可分,最早的数据库是IMS数据库系统。在本系统中,我们选用MySQL进行数据管理。

MySQL最大的优点就是容易上手、操作方便,其特性对于初学者相当友好,本系统的设计与实现主要是针对广大用户群体的,考虑到MySQL特性中的稳定性、安全机制、处理大数据、处理速度等方面,本系统非常适合采用MySQL数据库。

3.5.2 E-R图

通过实体关系模型来表示数据库的关系,例如账号信息表与个人基本信息表之间就是一一对应的关系,一个账号信息对应着一个个人基本信息,一个账号信息则对应着多个发布活动信息等,如图3.3所示。

图3.3 E-R图

3.5.3 总体表设计

本系统中共用到了20个数据表。在创建数据表的是过程中,组合主键的字段应该尽可能的减少。毕竟主键的功能其中一个是作为索引,另一个是做为子表的外键,组合主键越少,运行时间越短,成本越低,而且节省了索引存储空间,具体如表3.1所示:

相关推荐
全智能时代10 分钟前
宝塔部署python项目
python
Python大数据分析@18 分钟前
一般在写SQL时需要注意哪些问题,可以提高查询的效率?
数据库
DYS_0000118 分钟前
阿里短信服务+Redis创建定时缓存
数据库·redis·缓存
kuiini24 分钟前
python学习-09【文件和目录操作】
python·学习
羊十一25 分钟前
C++(C++的文件I/O)
开发语言·c++·cocoa
来一杯龙舌兰27 分钟前
【JAVA】自动生成常量类、自动生成所需代码(附源码)
java·开发语言·c#·自动生成代码
炸膛坦客29 分钟前
深度学习:(四)python中的广播
人工智能·python·深度学习
Flying_Fish_roe32 分钟前
Spring Boot-依赖冲突问题
java·linux·spring boot
Am心若依旧40933 分钟前
[C++进阶[六]]list的相关接口模拟实现
开发语言·数据结构·c++·算法·list
月临水37 分钟前
JavaEE:网络编程(套接字)
java·网络·java-ee