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

news2024/11/18 9:30:59

 摘   要
近年来,随着互联网不断的普及与发展,生活也变的多姿多彩,每个人几乎都有属于自己的小小兴趣圈子,但人们的兴趣却不止一个,大多数人是没有时间为自己的兴趣“买单”的。为了解决我们在生活中对于各种兴趣活动的不确定性、复杂性和多样性等问题,结合每个人的喜好、特点、习性、生活方式和居住地等信息,通过基于海量数据的兴趣推荐算法,将兴趣活动的信息更直观的展现给用户。帮助用户更好的根据自己的兴趣爱好参加活动。项目前端用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所示:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2136566.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

学习笔记缓存篇(一)

1、如何解决热key 1、本地缓存 采用本地缓存的优点在于简单,扩容方便。但是会带来一致性的问题。 2、离散热点key 做法:结合当前节点的ip或者机器的MAC地址去得出一个固定值拼接在key后面。访问时也是根据key,到后端固定的edis上。 优点&…

学习结构体的使用

对于结构体的创建,首先要创建一个结构体类型,像下面这样: 结构体对成员的访问,就是变量名.成员就可以了 当然对于结构体的声明还有一些特殊的声明 结构体的自引用 结构体的重命名

Linux 35.5 + JetPack v5.1.3@CUDA安装和版本切换

Linux 35.5 JetPack v5.1.3CUDA安装和版本切换 1. 源由2. 现象3. 分析3.1 看本质3.2 善动脑3.3 笔记回忆3.4 底层思考3.5 多版本 4. 版本切换5. 总结 1. 源由 最近遇到一些CUDA编程,以及编译链接过程出现一些版本不匹配的问题。 首先,申明下&#xff…

【网络安全的神秘世界】渗透测试基础

🌝博客主页:泥菩萨 💖专栏:Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 渗透测试基础 基于功能去进行漏洞挖掘 1、编辑器漏洞 1.1 编辑器漏洞介绍 一般企业搭建网站可能采用了通用模板&#xff…

神经网络的公式推导与代码实现(论文复现)

神经网络的公式推导与代码实现(论文复现) 本文所涉及所有资源均在传知代码平台可获取 概述 本文将详细推导一个简单的神经网络模型的正向传播、反向传播、参数更新等过程,并将通过一个手写数字识别的例子,使用python手写和pytorch…

充电管理芯片

1.接口 typec SBU引脚(辅助通道) SBU引脚是Type-C接口母座中的辅助通道,用于支持附加的功能,如模拟音频和视频传输。通过SBU引脚,Type-C接口母座可以实现更广泛的连接应用,包括连接到外部显示器、音频设备…

【前端】main.js中app.vue中 render函数的作用及使用背景

vue.js中的main.js中的作用是将app组件挂载到页面中&#xff0c;其中app组件是汇总所有组件元素的组件。main.js的创建vue实例。 #认为的版本 import APP from ./App.vue;new Vue({el:#root,template:<App></App>,components:{App}, })#实际的版本 /* 整个项目的入…

基于imx6ull平台opencv的图像采集和显示屏LCD显示功能(带Qt界面)

目录 一、概述二、环境要求2.1 硬件环境2.2 软件环境三、开发流程3.1 编写测试3.2 验证功能一、概述 本文档是针对imx6ull平台opencv的图像采集和显示屏LCD显示功能,创建Qt工程,在工程里面通过点击按钮,实现opencv通过摄像头采集视频图像,将采集的视频图像送给显示屏LCD进…

docker-compose elasticsearch 集群搭建(用户登录+https访问)

文章目录 前言docker-compose elasticsearch 集群搭建(用户登录+https访问)1. 效果2. 制作elasticsearch + 分词器镜像2.1. 拉取elasticsearch:7.11.12.2. 制作特定版本镜像3. docker-compose elasticsearch 集群制作4. es账户密码初始化前言 如果您觉得有用的话,记得给博主点…

<Python>基于python使用PyQt6编写一个延迟退休计算器

前言 这两天关于延迟退休的话题比较火&#xff0c;官方也退出了延迟退休计算器的小程序&#xff0c;我们使用python来实现一个。 环境配置 系统&#xff1a;windows 平台&#xff1a;visual studio code 语言&#xff1a;python 库&#xff1a;pyqt6 程序依据 程序的算法依据…

常见本地大模型个人知识库工具部署、微调及对比选型

文章目录 常见本地大模型个人知识库工具部署、微调及对比选型知识库侧AnythingLLMMaxKBRAGFlowFastGPTDifyOpen WebUI小结大模型侧OllamaLM StudioXinference小结大模型侧工具安装部署实践Ollama部署Windows部署OllamaLinux部署OllamaOllama使用技巧模型更换存储路径导出某个模…

外国车牌字符识别与分类系统源码分享

外国车牌字符识别与分类检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Co…

【Java面试】第九天

&#x1f31f;个人主页&#xff1a;时间会证明一切. 目录 Spring中如何开启事务&#xff1f;编程式事务声明式事务声明式事务的优点声明式事务的粒度问题声明式事务用不对容易失效 Spring的事务传播机制有哪些&#xff1f;Spring事务失效可能是哪些原因&#xff1f;代理失效的情…

Ubuntu下beanstalkd无法绑定局域网IP地址以及消息队列beanstalkd上的error: JOB_TOO_BIG的解决

一、ubuntu下beanstalkd无法绑定局域网IP地址 今天因为业务需要&#xff0c;我把之前安装的beanstalkd所绑定的IP地址由127.0.0.1改成局域网IP地址&#xff0c;但是怪了&#xff0c;显示beanstalkd已经启动&#xff0c;查看端口监控也显示IP地址变了&#xff0c;但是使用telnet…

matlab绘制不同区域不同色彩的图,并显示数据(代码)

绘图结果如下&#xff1a; 代码如下&#xff1a; A为绘图的数据&#xff0c;每个数据对应着上图中的一个区域&#xff0c;数据大小决定区域的颜色 % 假设有一系列的数据点 Arand(5,6); %A为绘图的数据&#xff0c;数据大小决定颜色 wei_shu%.3f; %代表数据保留三位小…

[Golang] Channel

[Golang] Channel 文章目录 [Golang] Channel什么是Channelchannel的初始化channel的操作双向channel和单向channel为什么有channel有缓冲channel和无缓冲channlechannel做一把锁 从之前我们知道go关键字可以开启一个Goroutine&#xff0c;但是Goroutine之间的通信还需要另一个…

Recyclerview实现滑动居中缩放菜单

最近项目中需要的一个滑动菜单效果:要求当前居中选项放大、滑动时有缩放效果、点击两边的选项滑动到屏幕中央、停止滑动选项停留在屏幕中间(类似viewPager的效果),为了直观,先上最终实现效果图: 大体思路: Recyclerview item头尾添加空数据,让第一个和最后一个item也能…

计算机组成原理(第二次笔记)

各种码 真值 (书写用)&#xff1a; 将用“”、“-” 表示正负的二进制数称为真值 机器不能识别书写格式&#xff0c;故用“0/1”表示“/-”符号。 机器码 (机器内部使用)&#xff1a; 将符号和数值一起编码表示的二进制数称为机器码。 常用机器码&#xff1a;原码、 反码、 补…

Linux网络编程 --- 高级IO

前言 IO Input&&Output read && write 1、在应用层read && write的时候&#xff0c;本质把数据从用户层写给OS --- 本质就是拷贝函数 2、IO 等待 拷贝。 等的是&#xff1a;要进行拷贝&#xff0c;必须先判断读写事件成立。读写事件缓冲区空间满…

Kafka+PostgreSql,构建一个总线服务

之前开发的系统&#xff0c;用到了RabbitMQ和SQL Server作为总线服务的传输层和存储层&#xff0c;最近一直在看Kafka和PostgreSql相关的知识&#xff0c;想着是不是可以把服务总线的技术栈切换到这个上面。今天花了点时间试了试&#xff0c;过程还是比较顺利的&#xff0c;后续…