随着移动互联网的迅猛发展,微信小程序作为一种轻量级的应用程序,因其无需安装、即用即走的特点,受到了广大用户的青睐。其中,阅读类小程序更是凭借其便捷性、实时性和个性化推荐等特性,成为了人们获取信息、享受阅读乐趣的重要平台。
微信阅读小程序旨在为用户提供一个沉浸式的阅读体验,而如何设计并实现一个高效、稳定、用户友好的文章阅读器则成为了关键。Spring Boot作为一种流行的Java开发框架,其简洁、快速和易于集成的特性,使得它成为构建后端服务的理想选择。结合Spring Boot与微信阅读小程序,我们可以实现前后端分离的开发模式,提高开发效率和系统稳定性。
本文旨在探讨基于Spring Boot与微信阅读小程序的文章阅读器的设计与实现。我们将从需求分析、系统设计、关键技术实现以及系统测试等方面进行详细阐述,以期为读者提供一个清晰、全面的技术解决方案。
通过本文的研究,我们期望能够为开发者提供一套高效、稳定、易扩展的文章阅读器实现方案,为微信阅读小程序的发展贡献一份力量。同时,也希望本文的研究能够对相关领域的研究和实践提供一定的参考和借鉴。
关键词:微信小程序;文章阅读器;Springboot
With the rapid development of mobile Internet, WeChat applet, as a lightweight application, is favored by the majority of users because of its characteristics of no installation, ready to use and ready to go. Among them, reading mini programs have become an important platform for people to obtain information and enjoy reading pleasure due to their convenience, real-time performance, and personalized recommendations.
The WeChat reading mini program aims to provide users with an immersive reading experience, and how to design and implement an efficient, stable, and user-friendly article reader has become the key. As a popular Java development framework, Spring Boot's concise, fast, and easy to integrate features make it an ideal choice for building backend services. By combining Spring Boot with WeChat reading mini programs, we can achieve a development mode of front-end and back-end separation, improving development efficiency and system stability.
This article aims to explore the design and implementation of an article reader based on Spring Boot and WeChat reading mini program. We will elaborate in detail on requirements analysis, system design, key technology implementation, and system testing, in order to provide readers with a clear and comprehensive technical solution.
Through the research in this article, we hope to provide developers with an efficient, stable, and easily scalable article reader implementation solution, and contribute to the development of WeChat reading mini programs. At the same time, it is also hoped that this study can provide some reference and inspiration for research and practice in related fields.
Keywords: WeChat Mini Program; Article reader; Springboot
1.1 课题研究背景和意义
随着移动互联网的迅速发展和智能手机的普及,人们的阅读习惯正在发生深刻变革。微信小程序作为一种新型的轻量化应用形态,凭借其即用即走、无需安装的特点,在为用户提供便捷服务的同时,也成为了众多内容创作者和平台推广阅读内容的重要渠道。微信阅读小程序作为其中的一种,以其个性化推荐、社交互动和丰富的内容资源,吸引了大量用户的关注和使用。然而,面对日益增长的用户需求和多样化的阅读场景,如何设计并实现一个功能完善、性能稳定、用户体验良好的文章阅读器,成为了微信阅读小程序发展中亟待解决的问题。这不仅涉及到前端界面的展示效果、交互体验,还包括后端服务的稳定性、数据处理能力和安全性等多个方面。
基于Spring Boot框架的文章阅读器设计与实现研究,正是在这样的背景下应运而生。Spring Boot以其快速构建、易于集成和高效运行的特点,为开发者提供了一个强大的后端支持。结合微信阅读小程序的特性,我们可以构建出一个既符合微信平台规范,又能满足用户阅读需求的文章阅读器。
该研究的意义不仅在于技术层面的创新与探索,更在于其实用价值和社会意义。首先,通过优化阅读器的设计和实现,可以提升用户的阅读体验,增加用户的粘性和活跃度,从而推动微信阅读小程序的发展。其次,该研究可以为其他类似平台或应用提供有益的参考和借鉴,推动整个移动互联网阅读领域的技术进步。最后,通过不断的技术创新和服务优化,我们可以为广大用户提供更加便捷、高效、个性化的阅读服务,推动全民阅读活动的深入开展,为社会的文化繁荣和进步贡献力量。
1.2 国内外研究现状
随着移动互联网的普及和智能手机的广泛使用,基于微信小程序的文章阅读器在国内外都受到了广泛的关注和研究。
国内研究现状:
在国内,随着微信小程序的快速发展,越来越多的企业和开发者开始投入到基于微信阅读小程序的文章阅读器的设计与实现中。这些阅读器不仅提供了丰富的文章内容,还通过个性化推荐、社交互动等功能,增强了用户的阅读体验。同时,国内的研究者和开发者也在不断探索新的技术和方法,以提升阅读器的性能和用户体验。例如,通过引入人工智能和大数据技术,对用户的阅读行为和偏好进行深度分析,为用户提供更加精准的内容推荐。
国外研究现状:
在国外,类似于微信小程序的平台,如Facebook的Instant Articles、Apple News等,也受到了广泛的关注。这些平台提供了类似的轻量化、快速加载的阅读体验,为用户带来了便捷的阅读方式。与此同时,国外的研术者和开发者也在积极研究如何提升文章阅读器的性能和用户体验。例如,通过优化文章加载速度、提升界面交互的流畅性等方式,为用户提供更加优质的阅读体验。
综上所述,基于微信阅读小程序的文章阅读器在国内外都受到了广泛的关注和研究。随着技术的不断进步和应用需求的提升,未来的研究将会更加深入和广泛,为阅读器的发展注入新的活力。
1.3系统开发技术的特色
在设计和实现基于Spring Boot与微信阅读小程序的文章阅读器时,系统开发技术展现出了以下几个显著的特色:
前后端分离的架构:采用Spring Boot作为后端服务框架,负责处理文章数据的存储、检索、推荐等逻辑。微信小程序作为前端,负责展示文章内容和用户交互界面,通过API与后端进行数据交换。
这种架构使得前后端可以独立开发和部署,提高了开发效率和系统的可维护性。
微服务化设计:Spring Boot支持微服务架构,可以将文章阅读器拆分为多个独立的服务,如用户服务、文章服务、评论服务等。每个服务都可以独立部署和扩展,提高了系统的灵活性和可扩展性。
快速构建与部署:Spring Boot通过自动配置和约定大于配置的原则,简化了项目的搭建和部署过程。结合Docker等容器化技术,可以实现快速部署和版本控制,提高了开发和运维的效率。
强大的集成能力:Spring Boot提供了丰富的生态系统和集成方案,可以轻松地与数据库、缓存、消息队列等中间件集成。这使得开发者能够快速地构建出功能完善、性能稳定的文章阅读器系统。
安全性与可靠性:Spring Boot内置了强大的安全框架,如Spring Security,可以方便地实现用户认证、授权和数据加密等安全措施。同时,Spring Boot也提供了监控和诊断工具,如Actuator,可以帮助开发者及时发现和解决问题,确保系统的稳定运行。
易于扩展与维护:基于Spring Boot开发的系统具有良好的可扩展性,可以通过添加新的模块或服务来扩展功能。同时,Spring Boot的文档和社区支持都非常完善,使得开发者在维护和升级系统时能够得到及时的帮助和支持。
与微信平台的紧密结合:微信小程序作为前端展示层,充分利用了微信平台的社交属性和用户基础,为文章阅读器提供了广泛的用户来源和社交互动功能。结合微信提供的API和服务,如微信支付、微信通知等,可以实现更多样化的商业模式和用户体验。
综上所述,基于Spring Boot与微信阅读小程序的文章阅读器在开发技术方面展现出了前后端分离、微服务化设计、快速构建与部署、强大的集成能力、安全性与可靠性、易于扩展与维护以及与微信平台的紧密结合等特色。这些特色使得系统能够高效、稳定地运行,并为用户提供优质、便捷的阅读体验。
2 文章阅读器系统分析
系统分析是开发一个项目的先决条件,通过系统分析可以很好的了解系统的主体用户的基本需求情况,同时这也是项目的开发的原因。进而对系统开发进行可行性分析,通常包括技术可行性、经济可行性等,可行性分析同时也是从项目整体角度进行的分析。然后就是对项目的具体需求进行分析,分析的手段一般都是通过用户的用例图来实现。接下来会进行详细的介绍。
2.1.1技术可行性分析
文章阅读器存储所使用的mysql数据库以及开发中所使用的IDEA、Tomcat这些开发工具的使用,能够给我们的编写工作带来许多的便利。系统使用Springboot框架进行开发,使系统的可扩展性和维护性更佳,减少java配置代码,简化编程代码,目前Springboot框架也是很多企业选择的框架之一。
2.1.2经济可行性分析
在开发文章阅读器中所使用的开发软件像IDEA开发工具、Tomcat8.0服务器、MySQL5.7数据库、Photoshop图片处理软件等,这些都是开源免费的,并且文章阅读器是自己设计并编码实现的,数据库是使用流行mysql进行数据的存储,开源的mysql等技术的使用,减少系统开发费用。
2.1.3操作可行性分析
在日常生活中,随着小程序的快速推广和使用,越来越多人掌握小程序的使用方法,文章阅读器在这种条件背景下是很容易被人们所接受和熟悉的,所以在操作上没任何问题。
2.2功能需求分析
文章阅读器中的web后台管理端采用了IntelliJ IDEA 2019.3.4 开发工具,配合了java开发语言中Springboot开发框架以及tomcat8.0服务器、jdk1.8,微信端采用了微信开发者工具稳定版1.05.2111300,页面使用wxss和wxml进行布局,微信端和web后台管理端采用json接口通信。
1. 注册用户功能:
登录:注册用户需要能够通过安全的登录界面输入用户名和密码,以便在小程序上进行个性化的阅读和交互。
注册登录:新用户可以通过注册功能创建账户,然后使用注册的用户名和密码进行登录,以便享受小程序提供的服务。
文章资讯:注册用户可以浏览小程序提供的文章资讯,包括各种领域的文章、新闻等内容。
文章信息:注册用户可以查看具体的文章信息,包括标题、作者、发布时间等。
文章文件:注册用户可以阅读文章内容,包括文本、图片等形式的文章文件。
网站公告:注册用户可以查看小程序发布的网站公告,包括系统更新、活动通知等内容。
基本信息:注册用户可以查看和编辑个人基本信息,如用户名、头像等。
文章信息:注册用户可以查看已阅读过的文章信息和历史记录。
收藏:注册用户可以收藏感兴趣的文章,方便以后查阅和分享。
2. 管理员功能:
登录:管理员需要通过安全的登录界面输入用户名和密码,以确保系统的安全性和身份验证。
系统用户管理:管理员可以管理系统的用户,包括注册用户、其他管理员等,进行用户信息的查看、编辑和删除。
文章分类管理:管理员可以管理文章的分类,包括添加新分类、编辑分类信息、删除分类等,方便用户查找和选择合适的文章。
文章信息管理:管理员可以管理文章的信息,包括发布新文章、编辑现有文章、删除文章等,确保文章内容的准确性和完整性。
文章文件管理:管理员可以管理文章的文件,包括上传文章文件、编辑文件信息、删除文件等,以确保文章的展示效果和用户体验。
轮播图管理:管理员可以管理小程序首页的轮播图,包括添加、编辑和删除轮播图图片,以提升用户体验和宣传重要信息。
公告管理:管理员可以发布、编辑和删除系统的公告,包括系统更新、活动通知等内容。
文章资讯管理:管理员可以管理文章资讯的发布、编辑和删除,确保资讯内容的准确性和时效性。
资讯分类管理:管理员可以对文章资讯进行分类管理,包括添加新分类、编辑分类信息、删除分类等,方便用户查找和阅读相关资讯。
以上是文章阅读器的功能需求分析,涵盖了注册用户和管理员两个角色的功能设计与实现要求。
文章阅读器的完整UML用例图分别是图2-1,图2-2。在参与者上包括注册用户、管理员。
注册用户角色的用例包括首页、文章资讯、文章信息、文章文件、 网站公告、我的(基本信息、文章信息、收藏)。
图2-1 文章阅读器注册用户角色用例图
管理员角色的用例包括后台首页、系统用户、文章分类管理、文章信息管理、文章文件管理、系统管理(轮播图)、公告管理、资源管理(文章资讯、资讯分类)。
图2-2 文章阅读器管理员角色用例图
2.4.1登录流程
登录模块主要满足管理员以及用户的权限登录,用户登录流程图如图2-3所示。
图2-3 登录流程图
2.4.2注册流程
未有账号的用户可进入注册界面进行注册操作,用户注册流程图如图2-4所示。
图2-4 注册流程图
2.4.3添加信息流程
用户在添加信息时,信息编号自动生成,系统会对添加的信息进行验证,验证通过则添加至数据库,添加信息成功,反之添加失败。添加信息流程如图2-5所示。
图2-5 添加信息流程图
2.4.4删除信息流程
用户可选择要删除的信息进行信息删除操作,在删除信息时系统提示是否确定删除信息,是则删除信息成功,系统数据库将信息进行删除。删除信息流程图如图2-6所示。
图2-6删除信息流程图
3文章阅读器系统总体设计
在上一章节中分析了文章阅读器的功能性需求,并且根据需求分析了文章阅读器中的用例。那么接下来就要开始对文章阅读器架构、主要功能和数据库开始进行设计。
3.1系统功能模块设计
通过对文章阅读器的功能需求分析以及用例分析,得出了文章阅读器的功能模块图如图3-1所示。
3.3数据库设计
3.3.1 数据库E-R模型
下面是整个文章阅读器的数据库表的E-R实体关系图,如图3-2所示:
3.3.2 数据库表设计
通过上一小节中文章阅读器中总E-R关系图上得出一共需要创建很多个数据表。在此主要罗列几个主要的数据库表结构设计。
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | token_id | int | 10 | 0 | N | Y | 临时访问牌ID | |
2 | token | varchar | 64 | 0 | Y | N | 临时访问牌 | |
3 | info | text | 65535 | 0 | Y | N | ||
4 | maxage | int | 10 | 0 | N | N | 2 | 最大寿命:默认2小时 |
5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户编号: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | article_id | mediumint | 8 | 0 | N | Y | 文章id:[0,8388607] | |
2 | title | varchar | 125 | 0 | N | Y | 标题:[0,125]用于文章和html的title标签中 | |
3 | type | varchar | 64 | 0 | N | N | 0 | 文章分类:[0,1000]用来搜索指定类型的文章 |
4 | hits | int | 10 | 0 | N | N | 0 | 点击数:[0,1000000000]访问这篇文章的人次 |
5 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
6 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
8 | source | varchar | 255 | 0 | Y | N | 来源:[0,255]文章的出处 | |
9 | url | varchar | 255 | 0 | Y | N | 来源地址:[0,255]用于跳转到发布该文章的网站 | |
10 | tag | varchar | 255 | 0 | Y | N | 标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开 | |
11 | content | longtext | 2147483647 | 0 | Y | N | 正文:文章的主体内容 | |
12 | img | varchar | 255 | 0 | Y | N | 封面图 | |
13 | description | text | 65535 | 0 | Y | N | 文章描述 |
表article_classification (文章分类)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | article_classification_id | int | 10 | 0 | N | Y | 文章分类ID | |
2 | article_type | varchar | 64 | 0 | Y | N | 文章类型 | |
3 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | article_file_id | int | 10 | 0 | N | Y | 文章文件ID | |
2 | article_name | varchar | 64 | 0 | Y | N | 文章名称 | |
3 | article_type | varchar | 64 | 0 | Y | N | 文章类型 | |
4 | release_date | date | 10 | 0 | Y | N | 发布日期 | |
5 | article_cover | varchar | 255 | 0 | Y | N | 文章封面 | |
6 | article_content | text | 65535 | 0 | Y | N | 文章内容 | |
7 | article_introduction | text | 65535 | 0 | Y | N | 文章简介 | |
8 | article_file | varchar | 255 | 0 | Y | N | 文章文件 | |
9 | article_audio | varchar | 255 | 0 | Y | N | 文章音频 | |
10 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
11 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | article_information_id | int | 10 | 0 | N | Y | 文章信息ID | |
2 | publish_users | int | 10 | 0 | Y | N | 0 | 发布用户 |
3 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
4 | article_name | varchar | 64 | 0 | Y | N | 文章名称 | |
5 | article_type | varchar | 64 | 0 | Y | N | 文章类型 | |
6 | release_date | date | 10 | 0 | Y | N | 发布日期 | |
7 | article_cover | varchar | 255 | 0 | Y | N | 文章封面 | |
8 | article_content | text | 65535 | 0 | Y | N | 文章内容 | |
9 | article_introduction | text | 65535 | 0 | Y | N | 文章简介 | |
10 | article_details | text | 65535 | 0 | Y | N | 文章详情 | |
11 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
12 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
13 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
14 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | type_id | smallint | 5 | 0 | N | Y | 分类ID:[0,10000] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000]决定分类显示的先后顺序 |
3 | name | varchar | 16 | 0 | N | N | 分类名称:[2,16] | |
4 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
5 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该分类的作用 | |
6 | icon | text | 65535 | 0 | Y | N | 分类图标: | |
7 | url | varchar | 255 | 0 | Y | N | 外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | auth_id | int | 10 | 0 | N | Y | 授权ID: | |
2 | user_group | varchar | 64 | 0 | Y | N | 用户组: | |
3 | mod_name | varchar | 64 | 0 | Y | N | 模块名: | |
4 | table_name | varchar | 64 | 0 | Y | N | 表名: | |
5 | page_title | varchar | 255 | 0 | Y | N | 页面标题: | |
6 | path | varchar | 255 | 0 | Y | N | 路由路径: | |
7 | position | varchar | 32 | 0 | Y | N | 位置: | |
8 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
9 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
10 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
11 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
12 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
13 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
14 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
15 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
16 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
17 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
18 | option | text | 65535 | 0 | Y | N | 配置: | |
19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | collect_id | int | 10 | 0 | N | Y | 收藏ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 收藏人ID: |
3 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
4 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
5 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
6 | title | varchar | 255 | 0 | Y | N | 标题: | |
7 | img | varchar | 255 | 0 | Y | N | 封面: | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | comment_id | int | 10 | 0 | N | Y | 评论ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 评论人ID: |
3 | reply_to_id | int | 10 | 0 | N | N | 0 | 回复评论ID:空为0 |
4 | content | longtext | 2147483647 | 0 | Y | N | 内容: | |
5 | nickname | varchar | 255 | 0 | Y | N | 昵称: | |
6 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
9 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
10 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
11 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | hits_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | notice_id | mediumint | 8 | 0 | N | Y | 公告id: | |
2 | title | varchar | 125 | 0 | N | N | 标题: | |
3 | content | longtext | 2147483647 | 0 | Y | N | 正文: | |
4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | novel_chapters_id | int | 10 | 0 | N | Y | 小说章节ID | |
2 | chapter_name | varchar | 64 | 0 | Y | N | 章节名称 | |
3 | sort | int | 10 | 0 | Y | N | 0 | 排序 |
4 | chapter_content | longtext | 2147483647 | 0 | Y | N | 章节内容 | |
5 | novel_reading_id | int | 10 | 0 | Y | N | 小说id | |
6 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | praise_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | status | bit | 1 | 0 | N | N | 1 | 点赞状态:1为点赞,0已取消 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | registered_users_id | int | 10 | 0 | N | Y | 注册用户ID | |
2 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
3 | user_gender | varchar | 64 | 0 | Y | N | 用户性别 | |
4 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
5 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
6 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | slides_id | int | 10 | 0 | N | Y | 轮播图ID: | |
2 | title | varchar | 64 | 0 | Y | N | 标题: | |
3 | content | varchar | 255 | 0 | Y | N | 内容: | |
4 | url | varchar | 255 | 0 | Y | N | 链接: | |
5 | img | varchar | 255 | 0 | Y | N | 轮播图: | |
6 | hits | int | 10 | 0 | N | N | 0 | 点击量: |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | upload_id | int | 10 | 0 | N | Y | 上传ID | |
2 | name | varchar | 64 | 0 | Y | N | 文件名 | |
3 | path | varchar | 255 | 0 | Y | N | 访问路径 | |
4 | file | varchar | 255 | 0 | Y | N | 文件路径 | |
5 | display | varchar | 255 | 0 | Y | N | 显示顺序 | |
6 | father_id | int | 10 | 0 | Y | N | 0 | 父级ID |
7 | dir | varchar | 255 | 0 | Y | N | 文件夹 | |
8 | type | varchar | 32 | 0 | Y | N | 文件类型 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | user_id | mediumint | 8 | 0 | N | Y | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
2 | state | smallint | 5 | 0 | N | N | 1 | 账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
3 | user_group | varchar | 32 | 0 | Y | N | 所在用户组:[0,32767]决定用户身份和权限 | |
4 | login_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 上次登录时间: |
5 | phone | varchar | 11 | 0 | Y | N | 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 | |
6 | phone_state | smallint | 5 | 0 | N | N | 0 | 手机认证:[0,1](0未认证|1审核中|2已认证) |
7 | username | varchar | 16 | 0 | N | N | 用户名:[0,16]用户登录时所用的账户名称 | |
8 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
9 | password | varchar | 64 | 0 | N | N | 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 | |
10 | | varchar | 64 | 0 | Y | N | 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 | |
11 | email_state | smallint | 5 | 0 | N | N | 0 | 邮箱认证:[0,1](0未认证|1审核中|2已认证) |
12 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
13 | open_id | varchar | 255 | 0 | Y | N | 针对获取用户信息字段 | |
14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
15 | vip_level | varchar | 255 | 0 | Y | N | 会员等级 | |
16 | vip_discount | double | 11 | 2 | Y | N | 0.00 | 会员折扣 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | group_id | mediumint | 8 | 0 | N | Y | 用户组ID:[0,8388607] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000] |
3 | name | varchar | 16 | 0 | N | N | 名称:[0,16] | |
4 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该用户组的特点或权限范围 | |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | register | smallint | 5 | 0 | Y | N | 0 | 注册位置: |
9 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
4 文章阅读器系统实现
文章阅读器主要是根据前面的需求分析和总体设计来设计页面并实现业务逻辑。主要从界面实现、业务逻辑实现这两部分进行介绍。
4.1.1 用户注册界面
不是文章阅读器的用户可以通过微信小程序在线进行注册,填写上自己的账号、密码、重复密码、昵称、邮箱登信息后点击“提交”按钮后将会验证是否有非空数据,再验证密码和重复密码是否一样,最后验证是否账号重复,都验证没问题后即可注册成功。注册实现了用户注册和发布者注册两部分,其用户注册界面展示如下图4-1所示。
图4-1用户注册界面图
4.1.2 用户登录界面
微信小程序上注册后的用户可以通过自己的用户名和密码进行登录,在用户填写好自己的用户名和密码信息并点击“登录”按钮后,将会先验证是否有非空数据,再验证填写的用户信息和数据库中保存的是否一致,一致后将会登录成功,登录成功后将会在左上角上显示用户信息;否则将会提示相应错误信息,用户登录界面如下图4-2所示。
图4-2用户登录界面图
输入有效的用户名和密码信息,点击“登录”按钮,自动跳转到“首页”页面,首页界面如下图4-3所示。
图4-3首页界面图
4.1.3 文章信息界面
点击“文章信息”,注册用户可以用户可以浏览系统推荐的文章信息,包括名称、类型、发布日期等。还可以进行点赞和评论的操作。界面如下图4-4所示。
图4-4文章信息详情界面图
4.1.4 修改密码界面
用户点击“修改密码”,用户使用该系统注册完成后,用户对登录密码有修改需求时,系统也可以提供用户修改密码权限。系统中所有的操作者能够变更自己的密码信息,执行该功能首先必须要登入系统,然后选择密码变更选项以后在给定的文本框中填写初始密码和新密码来完成修改密码的操作。在填写的时候,假如两次密码填写存在差异,那么此次密码变更操作失败,如下图4-5所示。
图4-5密码修改界面图
4.1.5 文章文件界面
用户点击“文章文件”,注册用户可以阅读文章内容,包括文本、图片等形式的文章文件。界面如下图4-6所示。
图4-6文章文件界面图
4.2管理员端
4.2.1 系统用户界面
管理员点击“系统用户”这一菜单会显示管理员、注册用户这两个子菜单,管理员可以对这两个角色的信息进行增删改查操作。界面如下图4-7所示。
图4-7系统用户管理界面图
4.2.2文章分类管理界面
管理员点击后台左边的“文章分类管理”菜单后将可以对文章分类进行管理,包括添加、编辑和删除文章分类等。界面如下图4-8和4-9所示。
图4-8文章分类列表界面图
图4-9文章分类添加界面图
4.2.3文章信息管理界面
管理员点击后台左边的“文章信息管理”同,管理员可以管理文章的信息,包括发布新文章、编辑现有文章、删除文章等,确保文章内容的准确性和完整性。界面如下图4-10和4-11所示。
图4-10文章信息列表界面图
图4-11文章信息添加界面图
4.2.4系统管理界面
管理员点击“系统管理”这一菜单会显示轮播图这一个子菜单,管理员可以对前台展示的轮播图进行设置,界面如下图4-12所示。
4.2.5公告管理界面
点击“公告管理”这个菜单,可以查看到系统中所有添加的通知公告,支持通过标题对通知公告进行查询,添加、删除等操作。公告管理界面如下图4-13所示。
图4-13公告管理界面图
4.2.6资源管理界面
管理员点击“资源管理”这一菜单会显示文章资讯、资讯分类这两个子菜单,管理员可以上传、编辑、删除资讯,设置资讯分类,同时可以查看和回复用户评论。界面如下图4-14和4-15所示。
图4-15资讯分类界面图
5 文章阅读器系统测试
文章阅读器测试是为了检验软件是否达到设计要求,是否存在错误,通过测试的方法来检查文章阅读器,以便发现文章阅读器中的错误。测试工作是保证文章阅读器质量的关键。
微信端上用户查看文章资讯功能测试:
表5-1微信端上用户查看文章资讯功能测试用例表
测试名称 | 测试功能 | 操作 | 操作过程 | 预期结果 | 测试结果 |
查看文章资讯功能模块测试 | 文章资讯信息正常的显示 | 浏览文章资讯详情信息 | 在小程序端上选择一个文章资讯信息将会进入该文章资讯的详情界面,同时可以评论、收藏、点赞。 | 进入该文章资讯的详情信息界面 | 正确 |
微信端上评论功能测试:
表5-2微信端上评论功能测试用例表
测试名称 | 测试功能 | 操作 | 操作过程 | 预期结果 | 测试结果 |
评论功能模块测试 | 评论信息正常的显示 | 浏览景点信息 | 点击文章信息底部“评论”按钮后点击填写评论内容点击提交即可。 | 评论内容提交成功 | 正确 |
web后台端上管理员发布文章资讯功能测试:
表5-3web后台端上管理员发布文章资讯功能测试用例表
测试名称 | 测试功能 | 操作 | 操作过程 | 预期结果 | 测试结果 |
管理员发布文章资讯功能测试 | 添加文章资讯的情况 | 输入新文章资讯信息的基本信息 | 后台选择“资源管理”菜单后,点击“文章资讯”,点击添加,填写新文章资讯信息后点击“提交”按钮 | 新文章资讯发布成功 | 正确 |
5.2测试结果
通过编写了文章阅读器的测试用例,已经检测完毕了5.1章节中的3大模块,它为文章阅读器系统的后期推广运营提供了强力的技术支撑。
总结与展望
本次文章阅读器的设计与实现,功能方面,通过功能模块图区分该程序的用户端与管理端各自的功能权限;数据库方面,数据库使用口碑较好的mysql进行数据的存储,开源的mysql等技术的使用,相对来说体积较小,服务稳定,减少系统开发成本费用,通过数据库表的E-R实体关系图建立了表单与表单之间的连接,区分不同的表单之间的关系,更好的完善数据库的内容;测试方面,通过测试用例检查文章阅读器的设计缺陷和程序存在的错误,在系统测试阶段的过程中,出现了一些问题,例如,注册信息,没有规范用户在注册页面填写信息时输入两次密码,而导致后期登录错误,最后通过多次修改程序和测试解决了问题。最终经过不断的检测、修改,实现项目的稳定,达到了预期的设计效果。
系统整体的功能到达预期的效果,但页面的美化方面还是存在一些不足,例如:小程序中的图标过于简洁;wxss页面的渲染布局方面不够完善,人们在使用软件过程中,对某些功能不易找寻,针对此次项目产生的问题,日后将不断改进,使该项目更加完善。
[1]杨吉欢,李娟,陈洋鑫,等.“红色旅游”微信小程序的设计与实现[J].办公自动化,2024,29(04):78-80+35.
[2]雷欣,马宏琳,郑霖,等.基于SpringBoot的域名信息系统设计与实现[J].电脑知识与技术,2024,20(05):44-47.DOI:10.14004/j.cnki.ckt.2024.0188.
[3]孙梦菲,周天源,王天澍.基于微信小程序的校园社团管理系统设计与实现[J].现代信息科技,2024,8(03):40-44.DOI:10.19850/j.cnki.2096-4706.2024.03.009.
[4]粟梁.基于Java的汽车租赁管理系统[J].电脑编程技巧与维护,2024,(01):43-45+52.DOI:10.16184/j.cnki.comprg.2024.01.035.
[5]贾文琦,滕建,贾萨尔·阿依肯.基于微信小程序的课程表系统[J].电脑编程技巧与维护,2024,(01):61-64+88.DOI:10.16184/j.cnki.comprg.2024.01.028.
[6]谭光兴,甘景,戚秋晨.基于Java语言的远程数据采集系统设计与实现[J].科技与创新,2024,(01):19-22.DOI:10.15913/j.cnki.kjycx.2024.01.005.
[7]Novitasari L ,Nurhidayati A S ,Cahyadi M , et al.Reproductive performance of female rabbit (Oryctolagus cuniculus) at the smallholder farmer in Karanganyar Regency, Central Java Province, Indonesia[J].IOP Conference Series: Earth and Environmental Science,2024,1292(1):
[8]Maria R ,Prasetio R ,Shoedarto R , et al.Assessment of Medical Geology from Major Element Trilinear Diagrams Cl-SOsub4/sub-HCOsub3/sub and Na-K-Mg from Geothermal and Non-Geothermal Springs; Case Study the Wayang Windu Geothermal Area, West Java, Indonesia[J].IOP Conference Series: Earth and Environmental Science,2024,1293(1):
[9]Indriasari N ,Roswintiarti O ,Kustiyo, et al.Spatial-temporal dynamics of paddy productivity on the north coast of Java Island, Indonesia based on the principal component analysis of MODIS NDVI anomaly data[J].IOP Conference Series: Earth and Environmental Science,2024,1291(1):
[10]赵旭东.计算机软件开发与设计中Java语言的应用研究[J].信息与电脑(理论版),2023,35(24):31-33.
[11]吴伶琳.基于SpringBoot的客户关系管理系统设计与实现[J].无线互联科技,2023,20(24):60-62.
[12]Riantini V ,Septi T A ,Nur T K I , et al.Developing a spatial-based predictive model for conservation area management prioritization using ecosystem service and site suitability index in Java Island[J].International Journal of Applied Earth Observation and Geoinformation,2024,126103606-.
[13]Syaeful H ,Ciputra C R ,Adimedha B T , et al.Radiometric Signatures of Gold Mineralization Zone in Pongkor, West Java, Indonesia: A Baseline for Radiometric Mapping Application on Low-Sulfidation Epithermal Deposit[J].Resources,2023,13(1):
[14]王馗,吴勇灵.基于微信小程序的点餐系统设计与实现[J].现代信息科技,2023,7(22):30-35+39.DOI:10.19850/j.cnki.2096-4706.2023.22.007.
[15]崔臣,宋甲旭.基于SpringBoot的校园二手交易系统研究[J].无线互联科技,2023,20(18):31-34.
[16]银莉,杜啸楠.基于SpringBoot和Vue的校园积分系统的设计与实现[J].集成电路应用,2023,40(07):414-415.DOI:10.19339/j.issn.1674-2583.2023.07.187.
[17]姜全坤,邬卓恒,闫娇娇.基于SpringBoot+AdminLTE3的博客管理系统设计与实现[J].信息与电脑(理论版),2021,33(24):124-127.
[18]王云,朱卓伦,黎达桦.基于SpringBoot技术的某官网系统设计与实现[J].无线互联科技,2021,18(08):57-59.
[19]刘子凡,郭昱君.基于SpringBoot+Mybatis的个人博客系统设计与实现[J].现代信息科技,2021,5(08):104-107+111.DOI:10.19850/j.cnki.2096-4706.2021.08.029.
[20]钟怡旸,郭昱君.基于Springboot的博客管理系统设计与实现[J].现代信息科技,2021,5(07):18-20+24.DOI:10.19850/j.cnki.2096-4706.2021.07.005.
至此论文结束,感谢您的阅读。首先,我要感谢我的父母对我的支持与理解,在两年的本科学习生活中,倾其所能的爱护我,使我能够心无旁骛,全心全意的投入到学习中;不断鼓励我,让我能够拥有不断前进的动力。其次还要感谢我的导师,感谢在这段时间给予我有效的建议,以至于我的毕设有了整体的设计思路,尽管我在实习期间很忙,论文撰写总是停停改改,但是导师依然十分负责,时不时的询问我的任务进展情况,跟进我的论文进度。在老师的帮助下,我逐步完成了自己的论文和程序,从导师身上也学习到很多知识,和经验,这些知识和经验令我受益匪浅。
此外,还要感谢我的同学,热心的解答了我在程序上遇到的问题,是他们在我编写程序过程中给了我很多的启发和感想,也帮助了我对于程序的调试和检测,让我受益良多。在这两年的时间里,我学会了许多专业的知识,还有老师们的谆谆教诲和同学们的帮助使我不断进步,能够做得更好;我也会不断给自己充电,不断突破,成为更好的自己。
最后向所有关心我、帮助我的老师及同学们表示衷心的感谢!
免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~