目录
随着生活水平的提升,人们对精神层面的追求越来越高,书籍和文章作为精神食粮的主要代表,其重要性不言而喻。本文基于小程序提供了文章推荐和阅读功能,满足读者的阅读需求和创作者的创作需要。经过深入调研并且收集了系统相关的资料,提出了系统的建设目标和主要功能,包括管理端和微信端,管理端包括用户管理、图书管理以及创作者管理,微信端包括的功能有图书阅读、推荐填写、推荐评论等功能。经过需求分析、系统设计和实现,最终建设了系统,经过验证,系统满足最初的建设要求。
资源链接
论文链接
后端系统链接
微信端系统链接
答辩PPT
1.绪论
1.1 课题背景
2021年张小龙表示微信用户数已经超过10亿,作为社交功能为基础的移动端应用,在我国基本上全面覆盖,因此,如果可以在微信端在线阅读,对有实时阅读需求的网民来说将非常便利。选用微信端作为在线阅读平台的原因有,一是微信跨平台,在IOS平台和安卓平台上面都可以直接使用,可以跨平台,不仅如此,微信还可以支持在PC端运行,这使得PC几乎可以跨域生活中使用的任何计算机平台;二是微信生态圈完善,社交链广泛,任何读本都可以在微信上面进行分享,极易产生基于阅读的朋友圈并状大;三是微信小程序开发速度较快,基于微信提供的工具可以快速搭建在微信上面的小程序应用;四是用户使用负担轻,不像移动App那样,如果用户使用的话必须要安装App,而微信小程序则可以免去这个环节,提升用户体验,降低使用负担。
总之,开发一款基于微信端的在线阅读平台,可以极大方便人们的阅读需求,使得人们可以随时随地获取知识。
1.2 研究目的和意义
基于微信小程序的在线阅读系统可以满足随时随地的阅读需求,提升知识获取的便利性,是移动互联网下实时在线阅读发展的必然结果。其研究目的有如下三条,一是可以满足随时随地阅读的需求,利用零碎时间随时随地进行阅读,符合构建全民阅读型社会的倡导和要求;二是可以跨平台使用,降低移植风险,提升平台兼容程度;三是基于协同过滤算法进行内容推荐,可以加速信息过滤速度,提升信息获取效率。
基于微信小程序的在线阅读系统意义深远,从理论上来讲,可以基于协同过滤算法在在线阅读细分行业中进行应用研究和应用推广;从实践角度来说可以满足大家在移动互联网环境下的在线实时阅读需求,还可以通过推荐引擎给用户推荐个性化内容,过滤无效和无用信息,解决知识爆炸带来的知识泛滥问题,可以有针对的给用户推荐自己感兴趣的内容。对我个人而言,可以利用四年所学进行实践,提升软件设计和开发能力,为今后的工作和创业积累经验。
1.3 文献回顾
随着人民受教育程度提高以及我国经济的高速发展,人们对于精神文化生活的追求也越来越高。数字化时代的到来,书籍作为人类进步的阶梯,也实现了数字化,越来越多的人在电子设备上进行阅读,为了提升大家对知识获取的便捷性,提出本课题。本课题可以基于微信小程序阅读文章,并基于用户喜好可以给用户进行相关文章的筛选并进行推荐。
在线阅读相关的系统设计研究成果在学术界较少,主要研究集中在算法推荐中,但是在工业界却有很多在线阅读类的产品。国外有很多知识分享平台、博客、电子书等阅读平台,比如谷歌博客、汤博乐等博客分享平台,可以在这些平台查看文章,平台也支持根据用户的个性而给用户推荐不同文章。国内的知识分享平台和文章阅读类系统有很多,比如知乎、博客园、CSDN等平台都给用户提供了知识阅读的平台,可以在这些系统中进行阅读。相关系统中基本都支持内容推荐,可以基于用户的个性化特征推荐对应文章。
2.关键技术介绍
2.1 前端技术
HTML和CSS是前端开发最常用的技术,HTML主要用来生成静态界面,也可以称之为界面模板,CSS则主要用来定义和规定界面的样式,也就是界面上各个部分的展现形式。在前端开发中,一般使用HTML和CSS来基本上确定界面的风格和形式,而使用JavaScript来生成交互设计和交互的体验,比如校验用户的输入,此外还可以使用JavaScript来调用后端服务,从而获取数据进行前端页面的渲染。HTML和CSS由于其使用简单,容易上手学习,而且被浏览器厂商支持,因此是前端开发中的基础知识和必备工具。任何其他前端框架和其他形式的技术也都以HTML和CSS为技术底座。
2.2 协同过滤
推荐算法一般是指在可选的物品空间中,通过一定手段给物品消费者或者使用者按照一定的方式进行排序,从而可以提炼出排在前n名的物品信息,排名前n位的就是要给读者推荐的物品[10]。推荐算法就是从这些物品空间中搜寻这n个物品所使用的程序和步骤。一般将用户和物品生成一个矩阵,这个矩阵表示了用户和物品之间的喜好程度,然后按照一定的方式和策略对这个矩阵进行变化,从而生成一个新的矩阵,新的矩阵是按照不同的用户对物品进行排序的,在新的矩阵中,可以找到某一个用户喜好的物品从高到低的排序[11]。协同过滤是将用户进行分类,然后每一个类别的用户有不同的喜好,按照不同的分类,可以分析和计算出某一个类别的用户对物品的喜好排名,当有一个新的用户出现的时候,就可以先将这个用户归类到某一个类别中,然后取这个类别用户的喜好物品排名,从而完成协同过滤推荐。这体现了“近朱者赤近墨者黑”的思想。
3. 需求分析
需求分析是需求分析对软件设计来说非常重要,是系统设计的初衷。当系统完成开发和测试工作之后,还需要将系统功能和需求分析进行核对,确保需求中的所有功能都得到完成。如果在需求分析过程中未能正确分析出系统用户的需求,那么就可能会导致程序开发进度就会收到影响,甚至直接导致项目无法进行。
需求分析既是系统设计和开发的目标,也是系统验收的依据。系统设计人员和系统开发人员一般是系统的实现者和承建者,而系统验收人员是系统的建设者,系统的建设者一般通过市场或者内建的方式来建设系统,如果通过市场购买的方式,那么就是典型的委托代理模型,即常说的甲乙方,如果是且或者部门内建,则验收者一般是企事业单位的业务领域的人员,而设计和开发者则是企业科技部门或者信息部门的人员。因此,需求分析对系统的成败起着关键的作用。
在需求分析之前,一般还需要进行一个重要的工作,也就是是整个项目的可行性研究,项目的可行性研究主要的作用是从当前的环境约束下确定该项目在各个层面和各个维度是否具备开发的可行性。
3.1 可行性分析
可行性分析是指系统建设的可行性,即在当前的环境约束之下,在目前所拥有的的资源的情况下,系统是否可以建设或者投资,使得从衡量角度来讲其具有可行性。可行性分析既要分析经济层面是否可行,也需要考虑技术是否可以达到并且当前具备技术储备和对应人才,此外还需要考虑社会可行性(一般是指法律可行性)等。一个项目是否可以开展,还需要对其从某些角度进行衡量,比如从经济层面进行衡量,一般可以使用投资收益率来衡量,也可以使用资本回收周期等工具来衡量,从本质上来讲,经济衡量标准实际上也是经济可行性。由于本文是毕业设计,并不用来进行商业推广,至少目前不进行推广,因此其经济收益无法评估,因而本文多从技术层面进行可行性。
技术可行性是指基于当前技术发展水平和建设者拥有的技术准备来进行开发系统的可行性。本系统的建设目标是建设基于微信小程序的推荐平台,因此需要有两个子模块,一个是微信端子系统,一个是后端子系统,因此需要从前后端分别进行技术可行性分析。
3.2 功能需求分析
在调研中,读者为了获取具备体系性的文章,他们还提出有预览图书简介的需求,可以通过零碎时间翻阅一下相关图书的简介,从而确定购买或者借书的动作,满足自己进一步阅读的要求。
因此,本课题既支持文集的操作,也包括图书的操作,一个文章集包含若干个有相关关联性的文章,一个图书也是如此,在本文实现过程中对“文集”和“图书”有时候不做具体分析,甚至可以替换使用。图书的信息,通过爬虫方式可以获取,但是受版权影响无法获知其内容,文集的信息,由于受版权影响,无法获取网络文集,因此通过输入的方法完成,这样就完成了图书信息和文章的输入,也满足了国家关于版权保护的要求。
从内容创作者的角度来讲,他们希望提供一个展示自己的作品的机会,因此需要提供一个管理端供创作者使用,他们可以在平台输入自己的创作内容,并进行编辑,编辑之后就可以让读者阅读。而如果是图书提供商,他们则可以提供借阅功能,可以编写图书的基本信息,让读者通过阅读图书概览了解图书并进一步产生借阅的欲望和需求。
3.2.1 用户管理
根据前期调研和系统定位,系统需要给读者和内容创作者提供一个平台,使得内容提供者的创作内容可以供读者阅读,因此系统用户分为两类,一是读者,二是创作者,创作者在系统内部统一称之为管理员,此外还有一个高级管理员或者超级管理员,可以管理内容创作者和读者。
超级管理员可以管理内容创作者,而内容创作者可以管理用户,在系统中形成一个三层管理体系。
3.2.2 文集管理
内容创作者可以自己创作文章,并将自己创作的文章按照一定次序组织形成一个文集,然后在系统管理端进行文集上传。文集的管理需要支持的功能有,一是文集的创建,包括文集的名称、文集的创作者和简单介绍等;二是文集的内容,需要将一个文集中的所有文章按照次序排列,并最终按照一定的次序提供给前端进行阅读。
3.2.3图书管理
由于受到国家相关法律和版权的限制,无法提供图书内容,因此通过爬虫的方式爬取相关图书的概览,包括图书的名称、出版社、作者和基本简介,然后在系统中展示,读者可以在系统进行预览、写推荐评语和评论。
3.2.4 文集和图书分类
对文集和图书进行分类,可以使得相关的文集和图书在一起展示,便于读者进行检索,也使得网站和小程序的展示错落有致,条理清晰。
3.2.5 文集和图书展示
对图书和文集的展示,通过三级视图展示,在数据科学中类似于数据钻取功能,先展示一级分类,读者点击自己想要阅读的分类,然后展示一级分类下面所有的文集和图书的概览,如果读者感兴趣,还可以继续阅读文集,并且按照文集的先后次序逐个文章给用户展示,如果是图书,在取的版权的情况下,可以给读者展示试读内容,试读内容的展示文集展示类似。
3.2.6 论坛功能
读者如果觉得某一个创作者的文章很好,就可以通过写推荐评语的方式给这个文集或者图书写推荐评语,这样别的读者看着推荐内容也会加快他对图书的了解速度。相反,如果对某一个文章或者图书不看好,也可以发表自己的观点,让其他读者看到,以提升他们的甄别效率。
3.2.7 评论功能
随着网络的持续普及,网络水军也充斥着网络,如果一个人写恶意差评或者水文,那就回混淆视听,导致大家误入歧途,因此,还可以对已经写好的推荐评语写评论,一是可以降低网络水军写水文的可能,二是可以增加读者之间的互动,可以互相评论,增加社交功能,提升网站的用户粘性。
3.2.8 推荐功能
推荐引擎的核心就是协同过滤算法,推荐的目标是使得用户获得信息的容易程度降低,使得那些无用信息被抛弃,提升网站的运营效率,提升阅读命中率。可以通过阅读相关文章的人阅读的其他文章给阅读对应文章的人推荐其他人的阅读文章,从而体现“物以类聚,人以群分”的推荐思想。
3.3 非功能需求分析
互联网时代,体验很重要,在一个商业环境中如果用户的阅读体验时延很长,就很难对这个用户产生吸引力,从而导致用户流失。但鉴于本文是课程设计,因此性能指标相对宽松,查询类事务可以1秒内完成,交易类事务可以2秒内完成即可。
4. 系统设计
系统设计是系统实现的前提,是需求分析的后续,系统设计基于需分析结果,产生系统实现的整体框架和流程,给系统实现提供蓝图。系统设计包括功能设计、性能设计、架构设计和数据库设计等,其中最重要的是系统功能设计和数据库设计。
4.1 数据库设计
4.1.1 ER图
4.1.2 数据库详细设计
读者表
字段名称 | 数据类型 | 说明 |
---|---|---|
user | 自动编号 | 序列号 |
id | 文本 | 用户标识 |
type | 文本 | 用户类型 |
name | 文本 | 用户姓名 |
password | 文本 | 用户密码 |
Tel | 文本 | 用户联系方式 |
文本 | 用户电子邮件 |
创作者表
字段名称 | 数据类型 | 说明 |
---|---|---|
user | 自动编号 | 序列号 |
id | 文本 | 用户标识 |
type | 文本 | 用户类型 |
name | 文本 | 用户姓名 |
password | 文本 | 用户密码 |
Tel | 文本 | 用户联系方式 |
文本 | 用户电子邮件 |
文集/图书表
字段名称 | 数据类型 | 说明 |
---|---|---|
bookid | 自动编号 | 序列号 |
name | 文本 | 名称 |
press | 文本 | 出版社 |
author | 文本 | 作者 |
direction | 文本 | 内容简介 |
date | 日期 | 上架时间 |
catalog | 文本 | 分类 |
阅读记录表
字段名称 | 数据类型 | 说明 |
---|---|---|
id | 自动编号 | 序列号 |
userId | 文本 | 用户ID |
bookId | 文本 | 图书ID |
count | 文本 | 阅读次数 |
rsrvStr1 | 文本 | 预留字段 |
rsrvStr2 | 文本 | 预留字段 |
rsrvStr3 | 文本 | 预留字段 |
文章内容表
字段名称 | 数据类型 | 说明 |
---|---|---|
bookid | 自动编号 | 文集编号,外键 |
contentid | 自动编号 | 序列号 |
conent | 文本 | 内容 |
currentpage | 整数 | 当前页码 |
nextpage | 整数 | 下一页页码 |
阅读论坛表
字段名称 | 数据类型 | 说明 |
---|---|---|
recommendid | 自动编号 | 序列 |
bookid | 自动编号 | 文集编号,外键 |
recommend | 文本 | 推荐评语 |
reader | 文本 | 推荐人 |
recommenddate | 日期 | 推荐时间 |
Rsrv | 文本 | 预留字段 |
评论表
字段名称 | 数据类型 | 说明 |
---|---|---|
commentid | 自动编号 | 序列号 |
recommendid | 整数 | 推荐id,外键 |
comment | 文本 | 评论内容 |
userid | 文本 | 评论人 |
precommentid | 文本 | 前一条评论 |
4.2 系统功能设计
4.2.1 用户管理
无论是读者还是创作者都需要注册和登录,其流程基本一致。用户管理包括用户的登录以及用户注册。
登录流程
4.2.2 文集管理
系统的文集管理,需要经过两个步骤,第一是录入一个文集,包括名称、作者、简要说明等基本概况;第二步是输入文集的内容,包括输入文集的次序和内容。
4.2.3 推荐算法
步骤 | 操作 |
---|---|
1 | 清空共现矩阵; |
2 | 循环所有用户,取出每一个读者喜好的图书,然后循环这些图书,生成共现矩阵,生成的规则就是依据于都i的人同时阅读j的人数进行计数,如果有人同时阅读i和j,就说明第i行第j列的共现矩阵值自增; |
3 | 取出当前读者阅读或者预览的的文集或者图书;根据文集生成这个文集和其他文集的距离,采用余弦公式计算wij=Nij/sqrt(Ni*Nj),将生成的文集都放入一个推荐列表,然后按照权值和喜好程度排序(权值为第一次序,喜好程度为第二次序) |
4 | 输出TopN的推荐列表 |
4.2.4 文集展示
4.2.5 推荐和评论
推荐流程
评论流程
5.系统实现
5.1 管理端实现
5.1.1 用户管理
添加图书
修改图书
5.1.2 创作者管理
权限管理
人员管理
5.1.3 图书管理
添加图书/文章
修改文章/图书
删除
添加内容
5.2 微信端实现
5.2.1 读者管理
注册
登录
5.2.2 底部导航
5.2.3 文章阅读
5.2.4 文章推荐
5.2.5 文章评论
总结
随着人们生活水平的提高,不再满足于单独提升物质生活,越来越追求精神生活。书籍和文章作为人类精神食粮的主食,是人们对知识追求和精神享受的主要内容。本文通过调研和资料分析,提出了一套构建在线文章推荐平台,搭建了创作者和读者之间的沟通桥梁,使得创作者的作品可以在读者层流传,提升了创作者的知名度,同时也传播了创作者的思想,并满足了读者的文化追求和知识享受。
经过深入调研和分析,系统基于微信端实现了文章的阅读和推荐,读者可以通过微信打开程序,而无需下载应用软件,实现了“用完即走”的用户体验,降低了用户的使用负担。给创作者提供的平台是基于网页端实现,这可以满足创作者的输入需求,由于创作者需要大量书写和构思,因此使用手机端操作会带来极大不便,因此可以基于手机端来进行操作。
本文最终给创作者提供的功能有文章管理、用户管理等核心功能,可以通过这些功能使得创作者的文章得以被阅读,知识得以被传播,而读者可以通过微信端吸取知识。
经过测试和验证,本系统实现了所有系统建设初期的需求,达到了建设目标。
致谢
略
参考文献
略
标签:创作者,毕设,微信,高分,用户,文集,阅读,文本,图书 From: https://blog.csdn.net/XiongWinds/article/details/145318501