摘 要
随着信息技术的快速发展,便携式记事工具在个人和组织管理中的重要性日益凸显。传统的纸质记事方式不仅不便于携带和存储,也难以实现信息的高效检索与管理。因此,本研究旨在设计并实现一款基于Android平台的记事本APP应用程序,旨在为用户提供一个高效、安全的数字记事记录工具能。
本系统的设计与实现采用了Java作为主要开发语言,后端使用Spring Boot框架,数据存储使用MySQL数据库。在移动端,选择Android平台进行应用开发,同时利用uni-app框架实现跨平台支持。项目实现过程主要分为需求分析、系统设计、功能实现及测试等阶段,服务于注册用户和管理员两大用户,实现了包括注册登录、记事日志管理、记事类型管理、系统管理、公告通知管理和资源管理等核心功能模块。
通过本记事本APP,用户可以高效地管理个人信息和日常及工作等事务记录,提高记事效率和质量。同时,管理员能够对系统进行有效管理,增强了整体应用的可扩展性与维护性,该记事本APP的开发符合现今用户对信息管理的需求,为进一步的应用开发与研究提供了基础。
关键词:记事本APP;Spring Boot;Java;便携式记事工具;Android
Abstract
With the rapid development of information technology, the importance of portable note taking tools in personal and organizational management is becoming increasingly prominent. The traditional paper-based record keeping method is not only inconvenient to carry and store, but also difficult to achieve efficient retrieval and management of information. Therefore, this study aims to design and implement a notepad APP application based on the Android platform, aiming to provide users with an efficient and secure digital note taking tool.
The design and implementation of this system use Java as the main development language, Spring Boot framework for backend, and MySQL database for data storage. On the mobile end, choose the Android platform for application development and utilize the uni app framework to achieve cross platform support. The project implementation process is mainly divided into stages such as requirement analysis, system design, functional implementation, and testing, serving two major users: registered users and administrators. It implements core functional modules including registration and login, note log management, note type management, system management, announcement and notification management, and resource management.
Through this notepad app, users can efficiently manage personal information and daily and work transaction records, improving the efficiency and quality of note taking. At the same time, the administrator is able to effectively manage the system, enhancing the scalability and maintainability of the overall application. The development of this notepad APP meets the information management needs of current users and provides a foundation for further application development and research.
Keywords: Notepad APP; Spring Boot;Java;Portable note taking tools; Android
目 录
第1章绪 论
1.1 项目背景与意义
1.1.1 研究背景
随着数字化时代的到来,人们对于信息的获取、整理和保存的需求日益增长。传统的纸质记事方式在携带性、信息存储和检索效率方面都存在局限,这推动了数字记事工具的逐步普及。移动便携式记事本应用作为一种新兴的信息管理工具,不仅能够便捷地帮助用户记录日常事务,还能智能化地进行信息管理和提取。
尤其在现代快节奏的生活中,个人和组织如何有效管理和利用信息已成为关键问题。研究数据显示,良好的时间管理和信息组织能够显著提升工作效率。为此,开发一款能够满足用户需求的记事本应用程序,帮助用户更好地管理自己的信息,具有重要的现实意义。
1.1.2 研究意义
本研究旨在基于Android平台,利用Spring Boot框架结合uni-app框架设计与实现一款记事本APP,不仅可以有效提升信息记录和管理效率,通过开发一种高效、便捷且安全的移动记事工具,能够帮助用户快速记录和检索事务信息和数据,提升工作和生活中的效率;而且能够提高用户体验,针对用户在传统记事方式中遇到的问题,本研究将关注用户体验的设计,包括界面友好性、功能便捷性,从而增强应用的吸引力。同时,本研究的实现可以推动技术应用的创新,本记事本APP的开发与实现将结合现代信息技术,采用模块化设计,探索如何在记事本应用中有效整合多种功能,为今后的相关应用开发提供参考和借鉴。此外,通过对记事工具应用的深入分析和研究,为进一步的学术研究和实际应用案例提供数据和理论支持,推动信息管理领域的创新与发展。
1.2.1 国内研究现状
在国内,便携式记事本应用的研究和应用也逐渐受到重视。近年来,许多公司和开发者开始推出多款记事本类应用,如“Evernote”、“炫图记”等。这些应用通常具备云存储、跨平台访问、信息共享等功能,满足用户对数据安全和信息协同的需求。同时,国内学者在这方面的研究也逐渐增多,涉及的信息管理、用户体验、数据分析等领域。例如,有研究对移动记事工具的用户使用习惯进行了调查,分析了用户对功能的需求和对界面设计的偏好,指出应增强应用的个性化和智能化。此外,随着自媒体和社交媒体的兴起,很多用户开始习惯于使用记事应用记录生活点滴和工作灵感,这也为相关应用的发展提供了新的市场机遇。
1.2.2 国外研究现状
国外方面,数字记事本的研究和应用已形成较为成熟的市场。诸如“Microsoft OneNote”、“Notion”和“Google Keep”这些知名应用在海外市场上享有广泛好评。这些应用不仅具备强大的记事功能,还集成了任务管理、项目协作等多种功能,满足用户的多样化需求。国外的研究机构对便携式记事工具的使用和发展进行了深入的探讨。有学者通过数据分析指出,使用数字记事工具的用户在信息检索速度和任务完成效率上显著高于传统方式。另外,国外还有部分研究探讨了用户在信息安全、隐私保护等方面的关注,对如何提升应用的安全性进行了实证研究。
总的来看,国内外在便携式记事工具的研究和应用上均在快速发展,虽然市场环境和用户需求存在一定差异,但都在朝着智能化和多功能化的方向发展。本研究将把国内外最新的研究成果与市场需求结合,推动数字记事本的发展与创新。
1.3 主要研究内容
在开发记事本APP时,后端采用了Java作为编程语言,并利用了Spring Boot框架,这使得复杂的业务逻辑和数据操作得以高效完成。与此同时,系统的数据存储和管理通过MySQL数据库实现。在前台用户端,基于Android平台进行应用开发,同时利用uni-app框架提供良好的用户体验和流畅的界面实,现跨平台支持。在开发工具的选取上,使用了Eclipse,它的强大功能和易用性使得编程工作更为高效;而Navicat作为数据库管理工具,使得数据库操作更为方便和快捷。这样的技术选择,确保了管理系统的开发流程既高效又稳定。本系统主要实现包括注册登录、系统用户、记事日志管理、记事类型管理、系统管理、公告通知管理、资源管理等多元且全面的系统功能,能够很好地满足不同用户的需求,采用前后端分离和模块化设计,具有良好的可扩展性和稳定性。
第2章开发环境及技术架构
2.1 开发环境与工具
记事本APP基于Android平台,使用Java语言作为主要语言,利用Spring Boot后端框架结合uni-app前端框架开发而成,存储数据使用的是使用较为广泛的MySQL数据库。系统所使用的系统开发环境如下表2-1所示。
表2-1系统开发环境
| 操作系统版本: | Win10 |
| 数据库环境: | MySQL5.7 |
| JDK版本: | JDK1.8.0_191 |
| 主要技术: | Spring Boot2、uni-app、Android、Apache Tomcat8.5、Webpack 4.0、Element UI、Navicat、bootstrap…… |
| 浏览器: | Chrome |
- Java
作为主要的编程语言,Java以其跨平台特性和丰富的第三方库支持,在后端开发中发挥了关键作用。Java语言的面向对象特性使得系统设计更加模块化,有助于后期的维护和扩展。
- MySQL
MySQL是一款广受欢迎的关系数据库管理系统,它能够高效地存储和处理大量的数据。MySQL在Web应用程序中有着卓越的表现,是众多开发者的首选。MySQL遵循SQL语言的标准,这是一种通用的数据库操作语言,简单易学,功能强大。结合Apache服务器,MySQL可以构建出一个优秀的开发环境。
- Spring Boot
Spring Boot是一个新颖的框架,由Pivotal团队推出,旨在简化Spring应用的创建和开发过程。Spring Boot通过提供一些默认的配置和约定,避免了开发者重复编写模板化的代码。Spring Boot力求成为快速应用开发领域的领导者,让开发者能够更专注于业务逻辑。
- uni-app
uni-app这是一个跨平台开发框架,允许开发者使用Vue.js构建移动应用。本项目中的使用旨在提升开发效率,实现一次开发多平台部署的目标。
- Android
作为移动应用开发的主流平台,Android提供了强大的API和SDK支持,使得开发者能够快速构建功能丰富的移动应用程序。。
Mybatis是一个优秀的持久层框架,它支持定制化SQL、存储过程和高级映射。Mybatis可以消除大部分的JDBC代码和参数的手工设置,让开发者更方便地操作数据库。Mybatis可以和Spring框架完美地集成,提高开发效率和性能。
Tomcat是一种免费的服务器,它能够有效地处理大量的网络访问,特别是在访问量较少的情况下。当将Tomcat安装在电脑上时,它能够自动分析前端HTML页面的请求,从而提高网络的性能。事实上,Tomcat是对Apache的一种延伸[7],但它与Apache之间的关系更加紧密,因为它们在不同的进程中运行,而且它们之间也有着自己的独立性。
2.2 技术架构
本系统是基于Spring Boot框架和uni-app框架,采用B/S模式,实现前后端完全分离的管理系统。
2.2.1 B/S模式
B/S模式,即浏览器/服务器模式,是一种常见的网络应用架构模式。在B/S模式中,用户通过浏览器作为客户端与服务器进行交互。在浏览器/服务器(browser / Server Architecture)系统中,用户只需通过浏览器,就能够轻松地向分布在网络各处的众多服务器发送海量的请求。B/S系统大大地简化了客户端的工作,让用户体验更加便捷。
2.2.2 Spring Boot框架
Spring是一个知名的开源框架,它于2003年诞生于Rod Johnson的《Expert One-on-One Java EE Development and Design》一书中。Spring的初衷是为了解决企业级应用开发的复杂性,它让简单的JavaBean也能够实现原本只有EJB才能做到的功能。Spring不仅适用于服务器端的开发,它还能够为任何Java应用程序带来简洁、可测试和低耦合的优势。尽管Spring的组件代码很轻量级,但是它的配置却很繁琐。最初,Spring是使用XML配置的,但是随着项目的增长,XML配置也变得越来越多。
为了改进和优化Spring的缺点,Spring Boot框架应运而生,它基于约定优于配置的理念,让开发者无需编写大量的配置文件,只需遵循一些简单的规则即可。Spring Boot使开发者能够专注于业务逻辑的编码,而不用在配置和业务之间切换思维,这在很大程度上提高了开发效率,缩短了项目开发周期。
2.2.3 uni-app框架
uni-app是一个跨平台的应用开发框架,可以同时用于开发微信小程序、H5应用、Android和iOS应用等,减少了开发成本和时间。uni-app提供了丰富的组件库和插件,可以快速构建各种功能模块,提高开发效率。通过优化渲染引擎和网络请求,提高了应用程序的性能和用户体验。App端支持原生渲染,可支撑更流畅的用户体验。小程序端的性能优于市场其他框架。
第3章需求分析
3.1 可行性分析
通过综合考虑经济、操作、技术等因素,可以对基于Spring Boot的记事本APP的可行性进行全面评估。这将有助于确定项目的成功概率,并为项目规划提供坚实的基础。
3.1.1 经济可行性分析
本项目所选择的开发工具和技术等皆可在网上免费下载,且可由本人独自开发完成,无需额外开发成本,此外,目前该模式下的相关系统的数量日益增多,记事本APP的平民化、普及化使用户人数呈上升趋势,当用户人数庞大了,运维成本可以由广告费进行填补,包括开发成本。 所以经济可行性没有问题。
3.1.2 操作可行性分析
此次项目设计参考了几个该模式下系统的开发案例,对他们的操作界面分析,将众多案例结合在一起,突出以人为本简化操作,所以具有基本计算机知识的人都会操作本项目。因此操作可行性也没有问题。
3.1.3 技术可行性分析
技术可行性指的是对于搭建框架的可行性,以及有更优秀的技术出现时系统的技术更新换代的纳新性如何,开发时间成本费用比如何。现有的Java语言能够迎合所有系统的搭建。开发这个记事本APP的时候采用了JAVA+Spring Boot+uni-app+MySQL用以运行整体程序。 综上所述技术可行性也没有问题。
通过对应的功能做了需求分析以后该记事本APP各角色主要包括的功能说明如下:
根据使用该系统的用户角色可以划分为注册用户和管理员,其中管理员是系统最高权限拥有者,负责维护和管理系统;注册用户可同时登录系统前后台。
- 注册用户角色:可在系统前台进行注册,同时登录系统前后台。
系统前台用户端功能:
- 注册登录:提供注册登录功能,用户可在系统前台注册成为系统用户,使用账号密码登录系统,可对个人信息进行管控。
- 首页:用户登录系统后首先进入首页界面,可查看轮播图、公告通知、新闻资讯等系统概览和推荐信息,并提供记事日志等系统功能入口子菜单。
- 公告通知:当用户点击首页的“公告通知”这一菜单时,可查看管理员发布的系统公告内容。
- 记事日志:当用户点击首页的“记事日志”这一菜单时,可进入记事日志添加界面,可根据提示输入记事信息,支持上传图片、视频、音频等附件,提交的记事日志可在“我的”模块中管理。
- 新闻资讯:当注册用户点击“新闻资讯”这一菜单时,可查看关于家教辅导的相关资讯、新闻或者是文章,可进行点赞、评论、收藏操作。
- 我的:注册用户在前台点击“我的”可以对用户的基本信息、收藏、记事日志等信息进行管理。可在“基本信息”中修改资料和密码;可在“收藏”中查看管控自己收藏的各类系统信息;可在“记事日志”中管理自己的记事日志,包括进行增改删查等操作。
后台管理端功能:
- 登录:注册用户在系统前台注册成功后,可同时使用账号密码登录系统后台,进行管理,可对自己的个人信息和密码信息进行修改。
- 后台首页:当注册用户登录系统后,首先进入后台首页界面,该界面主要提供系统重要信息概览、功能导航等信息。
- 记事日志管理:注册用户可管理自己的记事日志信息的添加、删除、更新等操作,提供搜索功能,支持上传和在线播放或预览视频、音频和图片等附件。
记事本APP注册用户角色用例图如下所示。
图3-1 注册用户角色用例图
- 管理员角色:
- 登录:管理员的账户信息直接在数据库添加,可直接使用账号密码登录系统后台,进行管理,可对自己的个人信息和密码信息进行修改。
- 系统用户:管理员可管理系统的所有系统用户信息,包括注册用户和管理员账号等,支持用户权限管理和角色设置,可增改删查和审核系统用户信息。
- 记事日志管理:管理员可管理所有记事日志信息的添加、删除、更新等操作,提供搜索功能,支持上传和在线播放或预览视频、音频和图片等附件。
- 记事类型管理:管理员可管理记事类型信息,包括新增、编辑、删除记事类型。
- 系统管理:管理员可管理系统的轮播图信息,包括新增、编辑、删除轮播图,支持附带图片链接。
- 公告通知管理:管理员可管理平台发布的公告通知信息,包括新增、编辑、删除公告通知。
- 资源管理:管理员可管理新闻资讯和资讯分类的添加、编辑、删除等操作,提供搜索功能,支持对新闻资讯的评论管控和查看。
记事本APP管理员角色用例图如下所示。

图3-2 管理员角色用例图
3.3 性能需求分析
用户操作响应时间:系统应保证用户在操作平台时的响应速度,例如添加、查询、删除、更新等操作应该迅速响应。
系统稳定性:平台应具备一定的容错能力和稳定性,防止因为意外情况导致系统崩溃。
数据安全:用户信息、记事信息等敏感数据需要加密存储,确保数据安全性。
系统并发能力:平台应考虑到可能大量用户同时访问的情况,保证系统的并发处理能力。
日志记录:系统需要记录用户操作日志、异常日志等,便于排查问题和分析用户行为。
基于以上性能需求将确保记事本APP能够稳定、高效地运行,能够很好地满足用户和管理员的需求。
3.4 系统流程分析
3.4.1 用户注册流程图
注册的过程,第一部分是账号的注册,第二部分是信息完善。在业务开展过程中,管理员可对用户信息进行修改等管理操作,注册流程如图3-3用户注册流程图所示。

图3-3 用户注册流程图
3.4.2 用户登录流程图
登录时,用户填写用户名、密码、选择身份进行登录,在登录过程中后端会对发送过来的信息进行验证和判断,具体的登录流程如图3-4用户登录流程图所示。

图3-4 用户登录流程图
第4章系统设计
4.1 系统功能设计
4.1.1 前台功能模块
基于基于Android的记事本APP程序采用前后端分离的设计,游客可以浏览系统前台信息,注册成为系统用户,登录后才可进行其他操作。注册用户注册后,可登录系统前台,搜索和浏览包括公告通知、新闻资讯等信息,可在线添加记事日志,并进行查询、删除和更新等操作,同时可对自己的个人信息进行管理。系统前台功能模块图如下图所示。

图4-1系统前台功能模块图
4.1.2 后台功能模块
注册用户在前台注册成功后,可使用账号密码登录系统前台的同时登录系统后台,对自己的记事日志进行管理;管理员是系统最高权限拥有者,可以登录系统后台对系统进行管理和维护,包括可管理用户、记事日志、记事类型、轮播图、公告通知、新闻资讯及资讯分类等信息,并保证及时更新系统信息,维护系统正常运行。系统后台功能模块图如下图所示。

图4-2系统后台功能模块图
数据库的设计是系统的设计中比较重要的一部分内容,数据库设计是一切系统设计的基础,首先需要进行概念模型E-R图的设计,然后进行关系模型物理模型的建立。
4.2.1 概念模型
本文在系统分析阶段就抽取了一些实体,根据实体之间的关系,经过分析进行系统E-R图的设计。记事本APP总体E-R图如下图所示。

图4-3 系统总体E-R图
4.2.2 物理模型
本系统采MySQL数据库管理系统对数据进行管理。下面是对各个表中的表中各个字段数据类型、大小等做简短描述。记事本APP所需要的部分数据结构表如下表所示。
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | 文章描述 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | parent | varchar | 64 | 0 | Y | N | 父级菜单 | |
| 8 | parent_sort | int | 10 | 0 | N | N | 0 | 父级菜单排序 |
| 9 | position | varchar | 32 | 0 | Y | N | 位置: | |
| 10 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
| 11 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
| 12 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
| 13 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
| 14 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
| 15 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
| 16 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
| 17 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
| 18 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
| 19 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
| 20 | option | text | 65535 | 0 | Y | N | 配置: | |
| 21 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 22 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | code_token_id | int | 10 | 0 | N | Y | ||
| 2 | token | varchar | 255 | 0 | Y | N | ||
| 3 | code | varchar | 255 | 0 | Y | N | 验证码 | |
| 4 | expire_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 失效时间 |
| 5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 6 | 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 | diary_of_notes_id | int | 10 | 0 | N | Y | 记事日志ID | |
| 2 | memo_title | varchar | 64 | 0 | Y | N | 记事标题 | |
| 3 | type_of_notes | varchar | 64 | 0 | Y | N | 记事类型 | |
| 4 | memorable_user | int | 10 | 0 | Y | N | 0 | 记事用户 |
| 5 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
| 6 | video_attachments | varchar | 255 | 0 | Y | N | 视频附件 | |
| 7 | audio_attachments | varchar | 255 | 0 | Y | N | 音频附件 | |
| 8 | image_attachment | varchar | 255 | 0 | Y | N | 图片附件 | |
| 9 | recording_time | datetime | 19 | 0 | Y | N | 记事时间 | |
| 10 | notes_details | text | 65535 | 0 | Y | N | 记事详情 | |
| 11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | 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_user_id | int | 10 | 0 | N | Y | 注册用户ID | |
| 2 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
| 3 | user_gender | varchar | 64 | 0 | Y | N | 用户性别 | |
| 4 | user_age | varchar | 64 | 0 | Y | N | 用户年龄 | |
| 5 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
| 6 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
| 7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | schedule_id | smallint | 5 | 0 | N | Y | 日程ID:[0,32767] | |
| 2 | content | varchar | 255 | 0 | Y | N | 日程内容 | |
| 3 | scheduled_time | datetime | 19 | 0 | Y | N | 计划时间 | |
| 4 | user_id | int | 10 | 0 | N | N | 用户id | |
| 5 | create_time | datetime | 19 | 0 | Y | N | 创建时间 | |
| 6 | update_time | datetime | 19 | 0 | Y | N | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | score_id | int | 10 | 0 | N | Y | 评分ID: | |
| 2 | user_id | int | 10 | 0 | N | N | 0 | 评分人: |
| 3 | nickname | varchar | 64 | 0 | Y | N | 昵称: | |
| 4 | score_num | double | 5 | 2 | N | N | 0.00 | 评分: |
| 5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 7 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
| 8 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
| 9 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | type_of_notes_id | int | 10 | 0 | N | Y | 记事类型ID | |
| 2 | type_of_notes | 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 | 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 | int | 10 | 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 | 创建时间: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | 更新时间: |
第5章系统实现
5.1 系统实现概述
本文研究的记事本APP基于Spring Boot框架开发,旨在提供便捷且全面,高效且安全的记事本APP管理工具。系统支持用户注册和登录,用户可同时登录系统前后台,用户登录前台后浏览各类新闻资讯、公告通知等信息,提供在线增改删查记事日志信息,支持上传图片、音频、视频等附件内容;用户登录后台只拥有对自己的记事日志的管理功能。平台还包括管理员功能,用于管理用户、记事日志、记事类型、公告、资讯、轮播图等所有系统数据信息的整合、天机、编辑、更新和处理。整体设计追求简洁高效,以提升用户体验和平台运行效率为目标。
本设计的前端系统每个页面都具备必要的交互设计,较好地呈现了记事本APP的基础功能。组件的构建上思路清晰,易于理解,扁平风格突出简洁,配色清新。游客注册成为注册用户即可登录系统前台实现各项操作。
前台登录界面布局如下图:
图5-1 前台登录UI界面
登录关键代码如下:
| /** * 登录 * @param data * @param httpServletRequest * @return */ @PostMapping("login") public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) { log.info("[执行登录接口]"); String username = data.get("username"); String email = data.get("email"); String phone = data.get("phone"); String password = data.get("password"); List resultList = null; Map<String, String> map = new HashMap<>(); if(username != null && "".equals(username) == false){ map.put("username", username); resultList = service.selectBaseList(service.select(map, new HashMap<>())); } else if(email != null && "".equals(email) == false){ map.put("email", email); resultList = service.selectBaseList(service.select(map, new HashMap<>())); } else if(phone != null && "".equals(phone) == false){ map.put("phone", phone); resultList = service.selectBaseList(service.select(map, new HashMap<>())); }else{ return error(30000, "账号或密码不能为空"); } if (resultList == null || password == null) { return error(30000, "账号或密码不能为空"); } |
前台注册界面布局如下图:
图5-2 前台注册UI界面
注册关键代码如下:
| /** * 注册 * @param user * @return */ @PostMapping("register") public Map<String, Object> signUp(@RequestBody User user) { // 查询用户 Map<String, String> query = new HashMap<>(); Map<String,Object> map = JSON.parseObject(JSON.toJSONString(user)); query.put("username",user.getUsername()); List list = service.selectBaseList(service.select(query, new HashMap<>())); if (list.size()>0){ return error(30000, "用户已存在"); } map.put("password",service.encryption(String.valueOf(map.get("password")))); service.insert(map); return success(1); } |
前台首页模块是系统的主入口,为用户提供导航和重要信息展示。通过清晰的界面布局和内容展示,为用户提供良好的导航菜单、轮播图、系统推荐内容、公告通知和信息展示浏览体验,引导用户进行登录、注册及系统内相关功能操作。
前台首页界面布局如下图:
图5-3 前台首页UI界面
本设计的后台管理系统,功能全面,以便管理员和用户能够快速上手,用户可便捷地管理自己的记事日志信息,管理员可高效地维护和更新系统信息数据,保证系统的正常运转。页面整体呈左右布局,设计简洁明晰。
后台登录界面布局如下图:
图5-4 后台登录UI界面
后台首页界面是管理员登录后的起始页面,提供系统整体状态的概览和重要信息的展示,包括功能导航。
后台首页界面布局如下图:
图5-5 后台首页UI界面
5.2 系统前台用户端功能模块的实现
5.2.1 记事日志模块
记事日志功能模块是系统中的重要组成部分。当用户点击首页的“记事日志”这一菜单时,可进入记事日志添加界面,可根据提示输入记事信息,支持上传图片、视频、音频等附件,提交的记事日志可在“我的”模块中管理。
首页记事日志界面布局如下图:
图5-6 首页记事日志添加UI界面
添加记事日志信息关键代码如下:
| @PostMapping("/add") @Transactional public Map<String, Object> add(HttpServletRequest request) throws IOException { service.insert(service.readBody(request.getReader())); return success(1); } public Map<String, Object> addMap(Map<String,Object> map){ service.insert(map); return success(1); } @PostMapping("/upload") public Map<String, Object> upload(@RequestParam("file") MultipartFile file) { log.info("进入方法"); if (file.isEmpty()) { return error(30000, "没有选择文件"); } try { //判断有没路径,没有则创建 String filePath = System.getProperty("user.dir") + "/src/main/resources/static/"; File targetDir = new File(filePath); if (!targetDir.exists() && !targetDir.isDirectory()) { if (targetDir.mkdirs()) { log.info("创建目录成功"); } else { log.error("创建目录失败"); } } String fileName = file.getOriginalFilename(); File dest = new File(filePath + fileName); log.info("文件路径:{}", dest.getPath()); log.info("文件名:{}", dest.getName()); file.transferTo(dest); JSONObject jsonObject = new JSONObject(); jsonObject.put("url", "/api/upload/" + fileName); return success(jsonObject); } catch (IOException e) { log.info("上传失败:{}", e.getMessage()); } return error(30000, "上传失败"); } |
5.2.2 新闻资讯模块
当注册用户点击“新闻资讯”这一菜单时,可查看关于家教辅导的相关资讯、新闻或者是文章,可进行点赞、评论、收藏操作。
新闻资讯界面布局如下图:
图5-7 新闻资讯详情页UI界面
5.2.3 我的模块
注册用户在前台点击“我的”可以对用户的基本信息、收藏、记事日志等信息进行管理。可在“基本信息”中修改资料和密码;可在“收藏”中查看管控自己收藏的各类系统信息;可在“记事日志”中管理自己的记事日志,包括进行增改删查等操作。
我的基本信息界面布局如下图:
图5-8 我的基本信息UI界面
我的记事日志界面布局如下图:
图5-9 我的记事日志UI界面
5.3 系统后台管理端功能模块的实现
5.3.1 系统用户模块
当管理员点击“系统用户”这一菜单时,可查看注册用户和管理员两个子菜单,如需添加新的用户,点击右侧“添加”按钮,输入用户信息,选择状态,点击“提交”按钮进行添加。同时可对系统用户进行增删改查操作。
系统用户界面布局如下图:
图5-10 系统用户UI界面
系统用户管理关键代码如下:
| @RequestMapping("/get_obj") public Map<String, Object> obj(HttpServletRequest request) { List resultList = service.selectBaseList(service.select(service.readQuery(request), service.readConfig(request))); if (resultList.size() > 0) { JSONObject jsonObject = new JSONObject(); jsonObject.put("obj",resultList.get(0)); return success(jsonObject); } else { return success(null); } } @PostMapping("/add") @Transactional public Map<String, Object> add(HttpServletRequest request) throws IOException { service.insert(service.readBody(request.getReader())); return success(1); } public Map<String, Object> addMap(Map<String,Object> map){ service.insert(map); return success(1); } |
5.3.2 记事日志管理模块
当管理员点击“记事日志管理”这一菜单时,可查看记事日志列表和记事日志添加这两个子菜单,在记事日志列表,可查询和删除已添加的记事日志,可进入详情页进行查看和编辑;如需添加新的记事日志,点击“记事日志添加”这一子菜单,根据提示输入记事日志信息,点击“提交”按钮进行添加。注册用户只可管理自己的记事日志信息。
记事日志管理界面布局如下图:
图5-11记事日志管理UI界面
记事日志管理关键代码如下:
| @PostMapping("/add") @Transactional public Map<String, Object> add(HttpServletRequest request) throws IOException { service.insert(service.readBody(request.getReader())); return success(1); } public Map<String, Object> addMap(Map<String,Object> map){ service.insert(map); return success(1); } @RequestMapping(value = "/del") @Transactional public Map<String, Object> del(HttpServletRequest request) { service.delete(service.readQuery(request), service.readConfig(request)); return success(1); } public void delete(Map<String,String> query,Map<String,String> config){ QueryWrapper wrapper = new QueryWrapper<E>(); toWhereWrapper(query, "0".equals(config.get(FindConfig.GROUP_BY)),wrapper); baseMapper.delete(wrapper); log.info("[{}] - 删除操作:{}",wrapper.getSqlSelect()); } @PostMapping("/set") @Transactional public Map<String, Object> set(HttpServletRequest request) throws IOException { service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader())); return success(1); } |
5.3.3 系统管理模块
当管理员点击“系统管理”这一菜单时,可进行系统首页轮播图的设置和修改,可点击添加,上传新的图片,支持附带图片链接。
系统管理界面布局如下图:
图5-12系统管理UI界面
图片上传关键代码如下:
| @PostMapping("/upload") public Map<String, Object> upload(@RequestParam("file") MultipartFile file) { log.info("进入方法"); if (file.isEmpty()) { return error(30000, "没有选择文件"); } try { //判断有没路径,没有则创建 String filePath = System.getProperty("user.dir") + "/src/main/resources/static/"; File targetDir = new File(filePath); if (!targetDir.exists() && !targetDir.isDirectory()) { if (targetDir.mkdirs()) { log.info("创建目录成功"); } else { log.error("创建目录失败"); } } String fileName = file.getOriginalFilename(); File dest = new File(filePath + fileName); log.info("文件路径:{}", dest.getPath()); log.info("文件名:{}", dest.getName()); file.transferTo(dest); JSONObject jsonObject = new JSONObject(); jsonObject.put("url", "/api/upload/" + fileName); return success(jsonObject); } catch (IOException e) { log.info("上传失败:{}", e.getMessage()); } return error(30000, "上传失败"); } |
5.3.4 资源管理模块
当管理员点击“资源管理”这一菜单时,可查看新闻资讯和资讯分类这两个子菜单,管理员可发布和删除前台新闻资讯信息,查看资讯评论内容,并对新闻资讯进行分类管理。
资源管理界面布局如下图:
图5-13 资源管理UI界面
资源管理关键代码如下:
| @PostMapping("/add") @Transactional public Map<String, Object> add(HttpServletRequest request) throws IOException { service.insert(service.readBody(request.getReader())); return success(1); } public Map<String, Object> addMap(Map<String,Object> map){ service.insert(map); return success(1); } |
第6章系统测试
6.1 测试目的
在对该系统进行完详细设计和编码之后,就要对记事本APP的程序进行测试,检测程序是否运行无误,反复进行测试和修改,使之最后成为完整的软件,满足用户的需求,实现预期的功能。系统测试的目的在于确保软件正常运作,并实现其应有的功能,促进行中出现的错误和逻辑问题。系统测试不但可以找见程序运行中的系统错误,还可以找见程序运行的需要改进的地方,并去协助改良程序运行使其获得最高幅度的完备。世界一流的安装测试员可以增加软件品质,将软件系统错误概率降至最少。
6.2 功能测试
本系统的主要功能就是注册用户登录后,可以获取和浏览各类资讯、公告、记事日志等多元信息,支持增改删查记事日志信息操作,而管理员可以登录系统后台后可对系统的各类信息进行管理、更新和维护,包括增改删查操作。测试设计如下所示:
用户需注册成为系统用户,才能拥有系统账户登录系统,使用系统各项功能。用户注册功能测试用例设计如下表所示:
表6-1 用户注册功功能测试用例
| 测试编号 | 测试目的 | 测试步骤 | 预期结果 | 实际结果 | 是否通过 |
| TC001 | 验证成功注册功能 | 1. 打开注册页面 2. 输入有效用户名、密码和邮箱 3. 点击注册按钮 | 注册成功,跳转到登录页面 | 注册成功,跳转到登录页面 | 通过 |
| TC002 | 验证重复用户名注册 | 1. 打开注册页面 2. 输入已存在的用户名和有效密码 3. 点击注册按钮 | 显示用户名已被占用 | 显示用户名已被占用 | 通过 |
| TC003 | 验证空用户名注册 | 1. 打开注册页面 2. 不输入用户名、密码和邮箱 3. 点击注册按钮 | 显示用户名不能为空 | 显示用户名不能为空 | 通过 |
| TC004 | 验证空密码注册 | 1. 打开注册页面 2. 输入有效用户名,密码留空 3. 点击注册按钮 | 显示密码不能为空 | 显示密码不能为空 | 通过 |
| TC005 | 验证邮箱格式有效性 | 1. 打开注册页面 2. 输入有效用户名和密码 3. 输入无效邮箱格式 4. 点击注册按钮 | 显示邮箱格式不正确 | 显示邮箱格式不正确 | 通过 |
- 登录模块功能测试
注册用户和管理员在登录界面输入账号和密码可进行登录。用户登录功能测试用例设计如下表所示:
表6-2 用户登录功功能测试用例
| 测试编号 | 测试目的 | 测试步骤 | 预期结果 | 实际结果 | 是否通过 |
| TC001 | 验证有效登录 | 1. 输入正确的用户名和密码 2. 点击登录按钮 | 显示登录成功,跳转至用户首页 | 登录成功,跳转至用户首页 | 通过 |
| TC002 | 验证空用户名登录 | 1. 不输入用户名,输入正确密码 2. 点击登录按钮 | 显示用户名不能为空提示信息 | 显示用户名不能为空提示信息 | 通过 |
| TC003 | 验证空密码登录 | 1. 输入正确用户名,不输入密码 2. 点击登录按钮 | 显示密码不能为空提示信息 | 显示密码不能为空提示信息 | 通过 |
| TC004 | 验证错误用户名登录 | 1. 输入错误的用户名和正确密码 2. 点击登录按钮 | 显示用户名或密码错误提示信息 | 显示用户名或密码错误提示信息 | 通过 |
| TC005 | 验证错误密码登录 | 1. 输入正确用户名和错误密码 2. 点击登录按钮 | 显示用户名或密码错误提示信息 | 显示用户名或密码错误提示信息 | 通过 |
- 记事日志模块功能测试
记事日志模块测试包括记事日志展示功能测试、记事日志添加功能测试、记事日志搜索功能测试。记事日志模块测试用例如表6.3-6.5所示。
记事日志展示功能测试用例设计如下表所示:
前提:注册用户及管理员已登录。
表6-3 记事日志展示功能测试用例
| 测试编号 | 测试目的 | 测试步骤 | 预期结果 | 实际结果 | 是否通过 |
| TC001 | 验证正常展示记事日志 | 1. 进入记事日志展示页面 2. 浏览展示的记事日志内容 | 能够正常显示记事日志内容 | 记事日志内容正常显示 | 通过 |
| TC002 | 验证记事日志链接跳转 | 1. 进入记事日志展示页面 2. 点击记事日志链接 | 能够跳转至相应记事日志详情页面 | 成功跳转至记事日志详情页面 | 通过 |
| TC003 | 验证搜索功能 | 1. 进入记事日志展示页面 2. 使用搜索功能搜索记事日志 | 显示符合搜索条件的记事日志列表 | 显示符合搜索条件的记事日志列表 | 通过 |
记事日志添加功能测试用例设计如下表所示:
前提:注册用户及管理员已登录。
表6-4 记事日志添加功能测试用例
| 测试编号 | 测试目的 | 测试步骤 | 预期结果 | 实际结果 | 是否通过 |
| TC001 | 验证添加记事日志 | 1. 进入记事日志添加界面 2. 输入记事日志信息 3. 点击添加按钮 | 记事日志成功添加到系统页面中 | 记事日志成功添加到系统页面中 | 通过 |
| TC002 | 验证记事日志内容输入 | 1. 进入记事日志添加界面 2. 输入正确记事日志内容和答案 3. 点击添加按钮 | 记事日志内容成功录入系统 | 记事日志内容成功录入系统 | 通过 |
| TC003 | 验证记事日志图片上传 | 1. 进入记事日志添加界面 2. 上传记事日志相关图片 3. 点击添加按钮 | 图片成功上传并与记事日志关联 | 图片成功上传并与记事日志关联 | 通过 |
| TC004 | 验证记事日志音频上传 | 1. 进入记事日志添加界面 2. 上传记事日志相关音频 3. 点击添加按钮 | 音频成功上传并与记事日志关联 | 音频成功上传并与记事日志关联 | 通过 |
| TC005 | 验证记事日志视频上传 | 1. 进入记事日志添加界面 2. 上传记事日志相关视频 3. 点击添加按钮 | 视频成功上传并与记事日志关联 | 视频成功上传并与记事日志关联 | 通过 |
记事日志搜索功能测试用例设计如下表所示:
前提:注册用户及管理员已登录。
表6-5 记事日志搜索功能测试用例
| 测试编号 | 测试目的 | 测试步骤 | 预期结果 | 实际结果 | 是否通过 |
| TC001 | 验证记事日志输入记事标题搜索 | 1. 进入记事日志搜索界面 2. 输入记事标题 3. 确认并搜索 | 根据选择的记事标题关键词显示相关记事日志信息 | 根据选择的记事标题关键词成功显示相关记事日志信息 | 通过 |
| TC002 | 验证记事日志输入记事类型搜索 | 1. 进入记事日志搜索界面 2. 输入记事类型 3. 确认并搜索 | 根据选择的记事类型关键词显示相关记事日志信息 | 根据选择的记事类型关键词成功显示相关记事日志信息 | 通过 |
| TC003 | 验证记事日志输入用户姓名搜索 | 1. 进入记事日志搜索界面 2. 输入用户姓名 3. 确认并搜索 | 根据选择的用户姓名关键词显示相关记事日志信息 | 根据选择的用户姓名关键词成功显示相关记事日志信息 | 通过 |
6.3 性能测试
- 兼容性测试
表6-6 兼容性测试用例
| 用例编号 | 测试类型 | 测试目标 | 操作过程 | 预期结果 |
| 兼容性_01 | 设备兼容性 | 测试系统在不同设备上的表现 | 在多种设备上访问系统并记录表现 | 系统在各种设备上都能正常加载和显示页面 |
| 兼容性_02 | 浏览器兼容性 | 测试系统在不同浏览器上的表现 | 在多种浏览器中访问系统并记录表现 | 系统在各种主流浏览器上都能正常加载和显示页面 |
| 兼容性_03 | 分辨率兼容性 | 测试系统在不同分辨率下的显示效果 | 在不同分辨率的设备上访问系统并记录表现 | 系统在各种分辨率下都能适应并正常显示内容 |
| 兼容性_04 | 操作系统兼容性 | 测试系统在不同操作系统上的运行情况 | 在不同操作系统上访问系统并记录表现 | 系统能够在常用操作系统上正常运行和显示 |
- 性能测试
表6-7 性能测试用例
| 用例编号 | 测试类型 | 测试目标 | 操作过程 | 预期结果 |
| 性能_01 | 负载测试 | 测试系统在正常负载下的性能 | 逐步增加用户数来模拟不同的负载情况 | 系统能够稳定处理并响应不同数量的用户请求 |
| 性能_02 | 压力测试 | 测试系统在极端负载下的性能 | 以超过系统承受极限的用户数来测试系统 | 系统能够在高负载情况下仍然保持正常运行 |
| 性能_03 | 并发测试 | 测试系统能同时处理多少并发用户请求 | 同时发送多个并发用户请求来测试系统性能 | 系统能够有效地处理多个并发请求 |
| 性能_04 | 数据量测试 | 测试系统在大数据量下的性能 | 向系统添加大量数据并测试系统响应时间 | 系统能够在大数据量情况下保持较快的响应时间 |
6.4 测试结果
全部测试用例都已通过,且不存在漏洞,实现了本论文开始时所作要求和期望。本系统运行稳定,使用流畅,可以满足客户需求。试运行后进行系统评估,可以认为该系统达到预定的目标要求,可以满足用户的需求,也满足了系统开发前所作目标。系统在经过大量重复测试后运行十分稳定,安全实用,功能模块已经达到预定目标所需。在规定的时间内实现系统的大部分功能,且满足要求,节省开发成本,有助于提高科学管理水平,符合本人经济情况。
简而言之,经过严格的测试,可以发现该系统的功能和性能非常出色,它的精度、可靠性、稳健性都达到了极高的水平,而且它还支持快速、精细的点击操作,使用者的使用感受更加良好。此外,它还支持各种主流浏览器,满足不同的使用要求。
第7章总结与展望
在基于Spring Boot框架下的记事本APP设计与实现中,通过注册用户以及管理员等角色的划分,实现了多层次的用户管理和权限控制,完成了注册、登录、后台首页、系统用户、记事日志管理、记事类型管理、系统管理、公告通知管理、资源管理等多功能模块,能够很好地满足用户在日常生活工作中对记事和管理的需求。
在未来的发展中,可以进一步优化系统的响应速度和用户体验,同时,在此基础上进一步扩展应用的功能,引入更多智能化和个性化的功能,以更好地满足用户需求和市场变化。例如增加云同步、数据分析和智能提醒等功能,以提升用户体验,希望能够将该应用推广到更广泛的用户群体中,帮助更多的人管理其日常事务。此外,加强对安全性的防护和隐私保护,是平台未来发展的重要方向之一,保障用户信息的安全与私密性。
通过不断优化和创新,基于Spring Boot的记事本APP将更好地满足用户的多样化需求,成为用户信赖和选择的首要平台之一。通过本次项目,我不仅深入理解了Spring Boot框架、uni-app框架的应用和记事本APP的设计思路,也积累了丰富的实际开发经验。
参考文献
[1]陈琼,李小玲,梅光.基于Android人事管理App的设计与实现[J].电脑编程技巧与维护,2024,(10):75-76+98.DOI:10.16184/j.cnki.comprg.2024.10.027.
[2]李金忠,胡志明,陈建钢,等.基于SpringBoot和Uni-App框架的自习室平台的设计与实现[J].河北水利电力学院学报,2024,34(02):77-82.DOI:10.16046/j.cnki.issn2096-5680.2024.02.014.
[3]赵旭东.计算机软件开发与设计中Java语言的应用研究[J].信息与电脑(理论版),2023,35(24):31-33.
[4]陈蓓蕾,洪年松.基于SpringBoot的数据库接口设计[J].信息与电脑(理论版),2023,35(16):181-183.
[5]王志亮,纪松波.基于SpringBoot的Web前端与数据库的接口设计[J].工业控制计算机,2023,36(03):51-53.
[6]任远,丁玲,戚伟.Uni-APP移动应用开发技术分析[J].电子技术与软件工程,2023,(03):41-44.
[7]李勇,张俊.Android系统上移动组件化应用框架设计[J].计算机应用与软件,2022,39(09):33-37.
[8]连壮.智能记事本APP的实现与研究[J].电子技术与软件工程,2022,(16):59-62.
[9]李英玲,牛美雅,兰宏富.基于uni-app+SpringBoot的移动智能办公系统设计与实现[J].西南民族大学学报(自然科学版),2022,48(03):313-321.
[10]Hejing W .Commerce Middle Office Management System Based on Springboot[J].International Journal of Advanced Network, Monitoring and Controls,2022,7(2):32-45.
[11]季易,王兴创,庞宇,等.Android平台上的智能记事本App的设计与实现[J].电子世界,2021,(13):168-169.DOI:10.19353/j.cnki.dzsj.2021.13.068.
[12]李彦龙.基于Kotlin的记事本App的开发与实现[J].科学技术创新,2021,(20):78-80.
[13]沈旭,曾竟明,王新政.基于OCR文档扫描与语音阅读技术的记事本应用研究与实现[J].软件,2021,42(06):126-129+132.
[14]龙兴明,陈俊,周静.手机App编程及应用[M].重庆大学出版社:202106.184.
[15]江志华,陈翱天.基于Android平台的记事本App的开发与实现[J].乐山师范学院学报,2020,35(12):49-54.DOI:10.16069/j.cnki.51-1610/g4.2020.12.008.
[16]吴杏平,曹雪.Web全栈项目开发入门与实战[M].人民邮电出版社:202009.451.
[17]杨丽君,严张凌.基于Android平台的个人备忘录APP的设计与开发[J].信息与电脑(理论版),2020,32(14):95-97.
[18]杨锦山,王辉.基于SpringBoot的项目信息管理系统的设计与实现[J].电子技术与软件工程,2020,(09):38-39.
[19]叶从玲.基于Android的快捷记事本的设计与实现[J].电脑知识与技术,2020,16(09):90-91.DOI:10.14004/j.cnki.ckt.2020.1021.
[20]Wu H ,Li G .Innovation and improvement of visual communication design of mobile app based on social network interaction interface design[J].Multimedia Tools and Applications,2020,79(1):1-16.
致 谢
在完成本论文的研究与写作过程中,我深切感受到了来自各方的帮助和支持。在此,我衷心地向所有给予我帮助的人表示最诚挚的感谢。
首先,我要特别感谢我的导师,不仅在学术上给予我无私的指导,而且在生活上给予我关怀和支持。是您严谨的学术态度和勤奋的工作精神将永远激励我不断前进。
其次,我要感谢所有教导过我的老师们,是你们精彩课堂和深入的指导为我的研究工作提供了宝贵的知识和灵感。
我还要感谢我的家人,他们的理解和支持是我完成学业的坚强后盾。在我遇到困难和挑战时,他们总是给予我鼓励和力量。
此外,我也要感谢我的朋友和同学们,你们的陪伴和帮助使我的研究生活更加丰富多彩。我们共同度过的时光将成为我一生中宝贵的回忆。
最后,我要感谢所有支持本项目,为本项目提供建设性意见的人员,没有他们的协助,本论文无法顺利完成。
再次感谢所有帮助和支持我的人,是你们的帮助使我的研究之路不再孤单
738

被折叠的 条评论
为什么被折叠?



