欢迎光临
我们一直在努力

基于springboot的健康饮食管理系统--毕设附源码16569

摘  要

随着人们健康意识的提高,合理的饮食管理在日常生活中扮演着越来越重要的角色。基于Spring Boot的健康饮食管理系统旨在通过技术手段,帮助用户科学规划饮食、管理健康数据、获取个性化的饮食建议,并促进健康生活方式的推广。该系统由管理员端和用户端两大部分组成,管理员可以进行系统用户管理、饮食信息管理、健康数据管理、采购清单管理等功能;普通用户则可以通过系统获取健康资讯、查看饮食建议、管理个人健康数据、与社区成员互动交流等。

在技术实现上,系统采用Spring Boot框架构建后端,通过Spring Security实现权限管理,使用MySQL数据库存储用户数据和饮食信息,前端采用Vue.js进行交互设计。系统具有良好的可扩展性和易维护性,能够提供用户友好的操作界面和个性化的饮食推荐服务。

该系统的设计与实现不仅为用户提供了一个便捷的健康饮食管理平台,还为管理员提供了高效的后台管理工具。通过对健康数据的分析与饮食习惯的管理,系统能够帮助用户在日常生活中保持合理的饮食结构,预防慢性疾病的发生,提升整体健康水平。系统的开发和应用具有较高的社会价值和实际意义。

关键词:Spring Boot,健康饮食,饮食管理,系统设计,健康数据

Abstract

With the improvement of people's health awareness, reasonable dietary management plays an increasingly important role in daily life. The healthy diet management system based on Spring Boot aims to help users scientifically plan their diet, manage health data, obtain personalized dietary advice, and promote a healthy lifestyle through technological means. The system consists of two main parts: the administrator end and the user end. Administrators can perform functions such as system user management, dietary information management, health data management, and procurement list management; Ordinary users can obtain health information, view dietary advice, manage personal health data, and interact with community members through the system.

In terms of technical implementation, the system adopts the Spring Boot framework to build the backend, implements permission management through Spring Security, uses MySQL database to store user data and dietary information, and uses Vue.js for interaction design in the frontend. The system has good scalability and maintainability, and can provide a user-friendly interface and personalized food recommendation services.

The design and implementation of this system not only provides users with a convenient platform for healthy diet management, but also offers efficient backend management tools for administrators. By analyzing health data and managing dietary habits, the system can help users maintain a reasonable dietary structure in their daily lives, prevent the occurrence of chronic diseases, and improve overall health levels. The development and application of the system have high social value and practical significance.

Keywords:Spring Boot, Healthy eating, dietary management, system design, health data

目  录

1 前  言

1.1 研究背景和意义

1.2 国内外研究现状

1.3 论文结构与章节安排

2 关键技术

2.1 Java

2.2 MySQL

2.3 Spring Boot框架

3 系统分析

3.1 可行性分析

3.1.1 技术可行性

3.1.2 经济可行性

3.1.3 操作可行性

3.2 功能需求分析

3.3 系统性能分析

3.4 系统流程分析

3.4.1 程序操作流程

3.4.2 登录流程

3.4.3 注册流程

4 系统设计

4.1 总体设计

4.1.1 框架设计

4.1.2 功能模块设计

4.2 数据库设计

4.2.1 E-R图

4.2.2 数据库表结构设计

5 系统实现

5.1 普通用户模块

5.1.1 用户登录界面

5.1.2 用户注册界面

5.1.3 健康资讯界面

5.1.4 饮食信息界面

5.1.5 健康数据界面

5.1.6 饮食建议界面

5.2 后台管理员模块

5.2.1 系统用户界面

5.2.2 采购清单管理界面

5.2.3 饮食信息管理界面

5.2.4 系统管理界面

5.2.5 网站公告管理界面

5.2.6 资源管理界面

6 系统测试

6.1 测试目的与意义

6.2 测试用例

6.3 测试分析

7 结束语

参考文献

致  谢

1  前  言

1.1研究背景和意义

随着社会经济的发展和人们生活水平的提高,健康意识日益增强。饮食是影响健康的重要因素,科学的饮食管理不仅可以帮助人们保持良好的身体状态,还能有效预防和缓解多种与饮食相关的慢性疾病。然而,传统的饮食管理方式往往缺乏个性化和系统化,难以满足不同群体的需求。尤其在日常生活中,许多人对于如何科学规划饮食、如何选择健康食材以及如何根据自身健康状况调整饮食等问题存在困惑。因此,设计和开发一个基于现代信息技术的健康饮食管理系统显得尤为重要[1]。

基于Spring Boot框架的健康饮食管理系统,通过技术手段实现健康饮食的科学管理,提供个性化的饮食建议和健康数据分析服务。该系统不仅能够帮助用户管理日常饮食,记录健康数据,还能根据用户的健康状况提供针对性的饮食推荐,帮助他们建立起科学的饮食习惯。同时,系统还能促进用户之间的互动与分享,提升社区的健康饮食意识和参与度。对于管理员而言,系统提供了高效的后台管理工具,能够实时跟踪用户健康数据、更新饮食信息,并进行个性化的服务调整,确保平台的运作高效、精准。

通过该系统,用户可以获得更加全面和精确的饮食建议,合理规划饮食,预防慢性病,改善生活质量。而对于健康管理领域的研究而言,基于技术手段的饮食管理系统的提出,为推动健康饮食理念的普及和推广提供了切实可行的解决方案,也为健康管理产业的发展和创新提供了新的思路和方法。这不仅具有较高的学术研究价值,也具有广泛的社会实际应用意义。

1.2国内外研究现状

健康饮食管理系统作为提升个人健康管理的重要工具,已在国内外获得了广泛的关注。在国外,许多研究致力于通过技术手段实现个性化饮食推荐和健康数据管理。例如,美国的MyFitnessPal是一款广受欢迎的健康饮食管理应用,允许用户记录每日饮食和运动数据,通过与用户健康状况相关的数据库,为其提供饮食建议,帮助用户更好地管理体重和健康。类似的,欧洲的NutriScore系统也基于饮食和营养学原理,通过分析食品的营养成分,给用户提供健康饮食的评分和建议,促进大众养成健康的饮食习惯。

在国内,随着健康中国战略的提出以及公众健康意识的提升,健康饮食管理系统的研究和应用逐渐增多。许多研究集中在如何利用现代技术提供更加科学和个性化的饮食方案。例如,国内的“食健通”平台就致力于通过数据记录和分析,帮助用户制定适合其个人健康状况的饮食计划,同时提供食材采购、菜谱推荐等功能,帮助用户实现健康饮食管理。此外,上海的“智慧健康饮食系统”则通过大数据技术收集并分析用户的健康数据,并在此基础上为用户提供精准的饮食推荐,以促进其健康管理和疾病预防[2]

尽管国内外在健康饮食管理系统的研究中取得了一定的进展,但仍面临诸多挑战。国外一些先进系统虽然在饮食行为分析、用户体验优化和健康数据处理方面做出了很多创新,但对于本土化的需求和文化适应性方面仍有一定的不足。例如,欧美市场的饮食文化和食品种类与中国存在较大差异,导致部分国外系统在中国的应用效果受限。国内的健康饮食管理系统虽然在满足本土化需求方面具备一定优势,但大多数系统仍处于早期探索阶段,个性化服务和数据分析的深度不足,导致用户体验和参与度有所欠缺[3]

因此,如何在现有技术和理论的基础上,提升健康饮食管理系统的智能化程度,增强系统的个性化服务,以及优化用户参与和体验,成为当前国内外研究的重要课题[4]

1.3论文结构与章节安排

本文共分为七章,章节内容安排如下:

第一章:引言,主要介绍健康饮食管理系统领域研究的背景和意义,概述国内外研究的现状。

第二章:关键技术,主要探讨和说明实现健康饮食管理系统的关键技术。

第三章:系统分析,主要从健康饮食管理系统的可行性、功能、性能等方面进行分析,为后续系统设计提供理论支持。

第四章:系统设计,主要对健康饮食管理系统功能模块、数据库进行功能设计。

第五章:系统实现,主要介绍了健康饮食管理系统的功能、系统界面的实现。

第六章:系统测试,主要对健康饮食管理系统进行测试,验证功能完整性、稳定性和安全性,评估系统在实际运行中的性能表现。

第七章:结束语。总结全文研究内容,提出对健康饮食管理系统领域未来发展的展望和建议,指出研究的不足和可优化之处,为相关领域的进一步探索提供参考。

2  关键技术

2.1Java

Java是一种跨平台的编程语言,广泛用于开发各种类型的应用程序,包括Web应用、移动应用和大型软件系统。在健康饮食管理系统中,Java通常用于后端开发,提供强大的处理能力和稳定性。同时Java是一种面向对象的编程语言,支持封装、继承和多态等特性,使代码更易于维护和重用。还拥有丰富的标准库和第三方框架,如Spring、Hibernate等,可以大大提高开发效率。

2.2MySQL

MySQL是一种流行的开源关系型数据库管理系统,用于存储和管理数据。在健康饮食管理系统中,MySQL可以用于数据存储、数据查询和数据管理等方面,用户可以免费使用和修改源代码,为平台提供可靠和高性能的数据库支持。MySQL支持多种存储引擎,如InnoDB和MyISAM,可以根据不同的应用场景选择合适的存储引擎,以提高性能;提供了多种数据安全机制,如用户权限管理、数据加密和备份恢复等,确保数据的安全性。

2.3Spring Boot框架

Spring Boot是一个用于构建微服务的Java框架,简化了Spring应用程序的开发和部署过程。Spring Boot通过自动配置和约定优于配置的理念,简化了Spring应用程序的开发过程,使开发者可以更快地构建和部署应用程序;拥有丰富的生态系统,如Spring Cloud、Spring Security等,可以满足各种企业级应用的需求。在健康饮食管理系统中,Spring Boot可以快速搭建后端服务,并实现各种功能模块的集成和管理。

3  系统分析

3.1可行性分析

3.1.1技术可行性

从技术角度来看,Spring Boot作为一种轻量级、快速构建的Java框架,能够提高开发效率,降低系统的复杂程度,易于维护和升级。同时,MySQL作为关系型数据库,能够支持平台数据的存储与管理,保障系统的稳定性和高效性。因此,本系统具有技术可行性。

3.1.2经济可行性

考虑到Springboot、Vue、MyBatis Plus及MySQL等均为开源技术,无需支付高昂的许可费用,大大降低了系统的开发成本。同时,这些技术拥有广泛的用户群体和成熟的社区支持,便于获取技术支持和资源共享。此外,系统的实施将显著提升用户体验,从而带来潜在的经济效益。因此,从经济角度来看,该系统的开发同样具备可行性。

3.1.3操作可行性

系统设计应遵循用户友好原则,确保用户能够轻松上手并高效使用。通过合理的界面布局、直观的操作流程以及详尽的帮助文档,可以大大降低用户的学习成本,提高系统的操作可行性。此外,系统还应具备完善的权限管理和数据安全机制,确保操作的安全性和合规性。

从技术、经济和操作三个维度来看,健康饮食管理系统的开发均具备高度的可行性。

3.2功能需求分析

(一)普通用户角色用例如下图所示。

图3.1普通用户用例图                     

普通用户具体功能说明如下所示。

首页:展示平台的最新动态、饮食推荐、健康资讯等重要信息。

社区饮食:用户可以浏览和参与社区中的饮食讨论、分享经验与建议。

网站公告:查看平台发布的公告和重要信息,了解最新活动和通知。

健康资讯:获取最新的健康饮食资讯,帮助用户保持健康生活方式。

饮食信息:提供多样的饮食建议、菜谱和食材信息,帮助用户更好地选择饮食。

我的账户:查看和管理个人账户信息,包括基本资料和账户设置。

个人中心:

个人首页:展示用户的基本信息、健康状态等。

营养评估:根据个人健康数据,提供营养评估报告,帮助优化饮食。

健康数据:记录和查看个人的健康数据,如体重、运动等。

社区饮食:参与社区讨论,查看其他用户的饮食分享。

采购清单:管理和查看自己的食材采购清单,便于日常饮食规划。

收藏:收藏喜欢的菜谱、饮食建议等,方便以后查看。

饮食信息:查看与饮食相关的信息和建议,帮助做出健康选择。

评论管理:管理自己在平台上的评论,进行查看和修改。

饮食建议:根据个人健康需求,获取定制化的饮食建议。

家庭食材:查看和管理家中食材库存,进行食材使用记录。。

(二)管理员角色用例如下图所示。

图3.2管理员用例图                          

系统后台管理端管理员具体功能说明如下所示。

后台首页:展示系统概览,包括关键统计信息和快捷操作入口。

系统用户管理:管理员可以查看、编辑、删除系统用户,并进行权限分配。

健康数据管理:管理用户的健康数据记录,包括体重、饮食习惯等信息,帮助进行个性化健康建议。

采购清单管理:管理员可以查看和更新食材采购清单,确保食材的采购与库存管理合理。

饮食信息管理:管理系统中的饮食数据,包括菜谱、食材和食物分类等。

饮食建议管理:根据用户的健康状况和饮食偏好,提供饮食建议,管理员可对建议内容进行编辑和更新。

家庭食材管理:管理员可以管理家庭食材库存,跟踪食材的使用情况和更新库存信息。

营养评估管理:管理员可以根据用户的健康数据,提供营养评估报告,帮助用户优化饮食结构。

系统管理(轮播图):管理员可以设置和更新网站首页的轮播图,进行信息展示。

网站公告管理:发布和管理健康饮食相关的公告信息,保持系统信息的及时更新。

资源管理(健康资讯、资讯分类):管理员管理系统中的健康资讯,进行资讯分类和更新,提供用户有价值的健康信息。

交流管理:管理员可以管理用户之间的交流内容,监控讨论和反馈,确保平台的健康互动。

3.3系统性能分析

对于健康饮食管理系统的设计与实现,下面是系统性能分析表:

表3.1性能需求表

项目

内容

响应时间

系统对用户请求的响应时间需在500ms以内

并发用户数

系统需要支持1000个并发用户同时访问

吞吐量

系统每秒需要处理1000个请求

可用性

系统需要保证每月99.9%的可用性

数据安全

用户敏感数据需要加密存储,并支持数据库备份和恢复

数据一致性

系统中的数据操作需保证ACID特性,确保数据一致性

扩展性

系统需要支持水平扩展,能够方便地增加服务器节点以应对高请求量

可维护性

系统代码需要清晰易懂、结构良好,方便维护和修改

日志记录

系统需要记录用户操作日志、异常日志以及系统运行日志

监控报警

系统需要实时监控运行状态,当系统异常时能够及时发送警报通知相关人员

缓存设置

针对频繁使用的数据,系统需要进行合适的缓

3.4系统流程分析

3.4.1程序操作流程

用户访问系统,可以选择进行注册或登录操作。注册成功后,用户可以使用注册的账号登录系统。登录后的用户可以进入系统功能界面,使用自己权限内的功能操作。程序操作流程图如下图所示。

图3.3程序操作流程图                       

3.4.2登录流程

用户访问系统,进入登录页面页面,入其用户名和密码,后端服务接收登录请求,验证用户提供的用户名和密码是否匹配数据库中存储的信息,验证通过即可登录成功。登录流程图如下图所示。

图3.4登录流程图              

3.4.3注册流程

未有账号的用户可进入注册界面进行注册操作,填写注册表格,包括用户名、密码、电子邮件等必要信息。后台系统验证并保存用户提交的信息。分配唯一用户标识符。注册成功后,用户可以使用账号密码进行登录。用户注册流程图如下图所示。

         图3.5注册流程图                            

4  系统设计

4.1总体设计

4.1.1框架设计

B/S架构,即浏览器/服务器架构,是一种基于Web的分布式计算范式。在此架构中,应用程序的逻辑被巧妙地区分为客户端和服务器两部分。具体而言,客户端借助广泛使用的浏览器界面,进行应用访问与操作;而服务器端则肩负起业务逻辑处理、数据存储及管理的核心职责。值得一提的是,客户端无需安装特定的软件,用户仅需通过浏览器输入相应的URL地址,即可轻松访问应用程序,这一特性极大地提升了用户的使用便捷性和系统的维护效率。服务器端通常采用高性能的计算机和数据库系统,能够处理大量并发请求和复杂的业务逻辑。B/S架构的优势在于其跨平台性和易于维护性,开发者可以通过更新服务器端的代码来实现整个系统的升级和维护,而无需逐一更新客户端。

图4.1系统架构图

4.1.2功能模块设计

功能模块设计是系统开发过程中的重要阶段,它旨在将系统划分为不同的模块,每个模块负责完成特定的功能或任务。健康饮食管理系统由多个功能模块组成,每个模块下又包含具体的功能操作。功能模块图如下图所示。

图4.2系统功能结构图           

4.2数据库设计

4.2.1E-R图

E-R图有助于理清系统中的数据结构和关系,为后续的数据库表结构设计提供指导。在进行数据库设计之前,首先需要先绘制实体-关系(E-R)图。E-R图将帮助我们理清业务中的实体(Entity)及它们之间的关系(Relationship),从而为后续的数据库表设计提供基础。根据前文可以得出本健康饮食管理系统拥有多个实体,在此列举主要实体,各个实体之间联系总E-R图如下图所示。

图4.3总E-R图

4.2.2数据库表结构设计

在E-R图确定后,接下来可以根据实体和关系的属性设计数据库表结构。在E-R图明确了实体和它们之间的关系后,接下来可以开始设计数据库表结构。每个实体对应一个数据库表,每个属性对应表中的字段。如下列表格所示,在此列举主要数据表。

表access_token (登陆访问时长)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

用户编号:

表article (文章:用于内容管理系统的文章)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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_type (文章分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表auth (用户权限管理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表code_token

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表collect (收藏)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表comment (评论)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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:

表dietary_information (饮食信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

dietary_information_id

int

10

0

N

Y

饮食信息ID

2

ordinary_users

int

10

0

Y

N

0

普通用户

3

user_name

varchar

64

0

Y

N

用户姓名

4

food_name

varchar

64

0

Y

N

食物名称

5

types_of_food

varchar

64

0

Y

N

食物种类

6

dinner_time

varchar

64

0

Y

N

用餐时间

7

eating_environment

varchar

64

0

Y

N

食用环境

8

meal_pictures

varchar

255

0

Y

N

餐品图片

9

cooking_methods

text

65535

0

Y

N

烹饪方式

10

hits

int

10

0

N

N

0

点击数

11

praise_len

int

10

0

N

N

0

点赞数

12

collect_len

int

10

0

N

N

0

收藏数

13

comment_len

int

10

0

N

N

0

评论数

14

dietary_recommendations_limit_times

int

10

0

N

N

0

建议限制次数

15

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

16

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表dietary_recommendations (饮食建议)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

dietary_recommendations_id

int

10

0

N

Y

饮食建议ID

2

ordinary_users

int

10

0

Y

N

0

普通用户

3

user_name

varchar

64

0

Y

N

用户姓名

4

food_name

varchar

64

0

Y

N

食物名称

5

types_of_food

varchar

64

0

Y

N

食物种类

6

dinner_time

varchar

64

0

Y

N

用餐时间

7

eating_environment

varchar

64

0

Y

N

食用环境

8

cooking_methods

varchar

64

0

Y

N

烹饪方式

9

nutritional_intake

varchar

64

0

Y

N

营养摄入

10

evaluate_information

text

65535

0

Y

N

评估信息

11

suggested_information

text

65535

0

Y

N

建议信息

12

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

13

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

14

source_table

varchar

255

0

Y

N

来源表

15

source_id

int

10

0

Y

N

来源ID

16

source_user_id

int

10

0

Y

N

来源用户

表family_food_ingredients (家庭食材)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

family_food_ingredients_id

int

10

0

N

Y

家庭食材ID

2

ordinary_users

int

10

0

Y

N

0

普通用户

3

user_name

varchar

64

0

Y

N

用户姓名

4

food_name

varchar

64

0

Y

N

食物名称

5

types_of_food

varchar

64

0

Y

N

食物种类

6

cooking_methods

varchar

64

0

Y

N

烹饪方式

7

nutritional_intake

varchar

64

0

Y

N

营养摄入

8

purchase_quantity

double

9

2

Y

N

0.00

购买数量

9

nutritional_information

varchar

64

0

Y

N

营养信息

10

purchase_date

date

10

0

Y

N

购买日期

11

expiration_date

date

10

0

Y

N

过期日期

12

special_remarks

text

65535

0

Y

N

特殊备注

13

nutritional_assessment_limit_times

int

10

0

N

N

0

评估限制次数

14

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

15

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表forum (论坛)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

forum_id

mediumint

8

0

N

Y

论坛id

2

display

smallint

5

0

N

N

100

排序

3

user_id

mediumint

8

0

N

N

0

用户ID

4

nickname

varchar

16

0

Y

N

昵称:[0,16]

5

praise_len

int

10

0

Y

N

0

点赞数

6

hits

int

10

0

N

N

0

访问数

7

title

varchar

125

0

N

N

标题

8

keywords

varchar

125

0

Y

N

关键词

9

description

varchar

255

0

Y

N

描述

10

url

varchar

255

0

Y

N

来源地址

11

tag

varchar

255

0

Y

N

标签

12

img

text

65535

0

Y

N

封面图

13

content

longtext

2147483647

0

Y

N

正文

14

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

15

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

16

avatar

varchar

255

0

Y

N

发帖人头像:

17

type

varchar

64

0

N

N

0

论坛分类:[0,1000]用来搜索指定类型的论坛帖

18

istop

int

10

0

N

N

0

是否置顶

表forum_type (论坛分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

type_id

smallint

5

0

N

Y

分类ID:[0,10000]

2

name

varchar

16

0

N

N

分类名称:[2,16]

3

description

varchar

255

0

Y

N

描述:[0,255]描述该分类的作用

4

url

varchar

255

0

Y

N

外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置

5

father_id

smallint

5

0

N

N

0

上级分类ID:[0,32767]

6

icon

varchar

255

0

Y

N

分类图标:

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表health_data (健康数据)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

health_data_id

int

10

0

N

Y

健康数据ID

2

ordinary_users

int

10

0

Y

N

0

普通用户

3

user_name

varchar

64

0

Y

N

用户姓名

4

height_information

double

9

2

Y

N

0.00

身高信息

5

weight_information

double

9

2

Y

N

0.00

体重信息

6

eating_habits

varchar

64

0

Y

N

饮食习惯

7

career_information

varchar

64

0

Y

N

职业信息

8

record_time

datetime

19

0

Y

N

记录时间

9

medical_history

text

65535

0

Y

N

既往病史

10

life_style

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

更新时间

表hits (用户点击)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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:

表notice (公告)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表nutritional_assessment (营养评估)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

nutritional_assessment_id

int

10

0

N

Y

营养评估ID

2

ordinary_users

int

10

0

Y

N

0

普通用户

3

user_name

varchar

64

0

Y

N

用户姓名

4

food_name

varchar

64

0

Y

N

食物名称

5

types_of_food

varchar

64

0

Y

N

食物种类

6

cooking_methods

varchar

64

0

Y

N

烹饪方式

7

nutritional_intake

varchar

64

0

Y

N

营养摄入

8

purchase_quantity

double

9

2

Y

N

0.00

购买数量

9

nutritional_information

varchar

64

0

Y

N

营养信息

10

purchase_date

date

10

0

Y

N

购买日期

11

matching_suggestions

text

65535

0

Y

N

搭配建议

12

cooking_advice

text

65535

0

Y

N

烹饪建议

13

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

14

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

15

source_table

varchar

255

0

Y

N

来源表

16

source_id

int

10

0

Y

N

来源ID

17

source_user_id

int

10

0

Y

N

来源用户

表ordinary_users (普通用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

ordinary_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

contact_information

varchar

16

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

更新时间

表praise (点赞)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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已取消

表procurement_list (采购清单)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

procurement_list_id

int

10

0

N

Y

采购清单ID

2

ordinary_users

int

10

0

Y

N

0

普通用户

3

user_name

varchar

64

0

Y

N

用户姓名

4

meat_based_foods

varchar

64

0

Y

N

荤类食物

5

purchase_weight

double

9

2

Y

N

0.00

购买重量

6

vegetarian_food

varchar

64

0

Y

N

素类食物

7

purchase_quantity

varchar

64

0

Y

N

购买数量

8

purchase_date

date

10

0

Y

N

购买日期

9

purchase_remarks

text

65535

0

Y

N

购买备注

10

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

11

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表schedule (日程管理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间

表score (评分)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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:

表slides (轮播图)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表upload (文件上传)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

文件类型

表user (用户账户:用于保存用户登录信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

email

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

创建时间:

表user_group (用户组:用于用户前端身份和鉴权)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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普通用户模块

5.1.1用户登录界面

用户输入用户名和密码后,系统首先对这些输入进行基本的格式验证,确保用户名和密码符合系统设定的格式要求(如长度、特殊字符要求等)。系统接收到用户输入后,会根据用户名查找系统中存储的用户信息数据库或者其他持久化存储方式。系统需要验证密码的正确性,验证成功即可成功登录。

图5.1用户登录界面设计

登录关键代码如下:

 /**

     * 登录

     * @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, "账号或密码不能为空");

        }

        //判断是否有这个用户

        if (resultList.size()<=0){

            return error(30000,"用户不存在");

        }

        User byUsername = (User) resultList.get(0);

        Map<String, String> groupMap = new HashMap<>();

        groupMap.put("name",byUsername.getUserGroup());

        List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));

        if (groupList.size()<1){

            return error(30000,"用户组不存在");

        }

        UserGroup userGroup = (UserGroup) groupList.get(0);

        //查询用户审核状态

        if (!StringUtils.isEmpty(userGroup.getSourceTable())){

            String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());

            if (res==null){

                return error(30000,"用户不存在");

            }

            if (!res.equals("已通过")){

                return error(30000,"该用户审核未通过");

            }

        }

        //查询用户状态

        if (byUsername.getState()!=1){

            return error(30000,"用户非可用状态,不能登录");

        }

        String md5password = service.encryption(password);

        if (byUsername.getPassword().equals(md5password)) {

            // 存储Token到数据库

            AccessToken accessToken = new AccessToken();

            accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));

            accessToken.setUser_id(byUsername.getUserId());

            Duration duration = Duration.ofSeconds(7200L);

            redisTemplate.opsForValue().set(accessToken.getToken(), accessToken,duration);

            // 返回用户信息

            JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));

            user.put("token", accessToken.getToken());

            JSONObject ret = new JSONObject();

            ret.put("obj",user);

            return success(ret);

        } else {

            return error(30000, "账号或密码不正确");

        }

    }

5.1.2用户注册界面

用户注册时,系统要求用户提供必要的信息,例如用户名、密码、电子邮件地址等。这些信息通常由用户在注册表单中输入,并通过前端验证确保格式的正确性。注册过程完成后,系统会为新用户创建一个账户。这包括分配一个唯一的用户ID和设置初始的权限或者角色。

图5.2用户注册界面设计

注册关键代码如下:

    /**

     * 注册

     * @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.1.3健康资讯界面

健康资讯模块提供了各种与健康、饮食相关的文章、新闻和研究报告。用户可以通过该模块了解最新的营养研究成果、饮食健康建议、健康食材推荐等。健康资讯帮助用户更新其健康饮食的知识,培养科学的饮食习惯。

健康资讯主界面图如下所示。

图5.3健康资讯主界面设计

5.1.4饮食信息界面

饮食信息模块展示了关于食物、菜谱、营养成分等各类饮食相关的数据。用户可以根据饮食需求查询不同食材的营养价值,学习健康的菜谱搭配,为自己和家人准备健康美味的餐点。此模块还会提供按不同健康需求推荐的饮食方案。

饮食信息主界面图如下所示。

图5.4饮食信息主界面设计

查询饮食信息代码如下:

    @RequestMapping(value = "/del")

    @Transactional

    public Map<String, Object> del(HttpServletRequest request) {

        service.delete(service.readQuery(request), service.readConfig(request));

        return success(1);

    }

    @Transactional

    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());

5.1.5健康数据界面

在个人中心记录并显示用户的健康数据,包括体重、身高、饮食习惯等,用户可以定期更新数据,了解自己的健康变化。

健康数据主界面图如下所示。

图5.5健康数据主界面设计

5.1.6饮食建议界面

根据用户的健康目标和饮食偏好,系统会提供个性化的饮食建议,帮助用户实现健康饮食目标。

饮食建议主界面图如下所示。

图5.6饮食建议主界面设计

5.2后台管理员模块

5.2.1系统用户界面

管理员可对普通用户和管理员等用户信息进行管控,包括进行增删改查操作,可点击详情进行查阅。

系统用户主界面图如下所示。

图5.7系统用户界面设计

添加系统用户信息关键代码:

 @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.2.2采购清单管理界面

管理员登录后,进入“采购清单管理”模块。在列表中,可以查看所有采购清单信息,点击任意条目进入编辑页面。管理员可添加采购清单、修改采购清单或删除不再适用的条目。更改完成后,需点击“保存”按钮,确认修改。

采购清单管理主界面图如下所示。

图5.8采购清单管理界面设计

采购清单添加代码如下:

    @PostMapping("/add")

    @Transactional

    public Map<String, Object> add(HttpServletRequest request) throws IOException {

        service.insert(service.readBody(request.getReader()));

        return success(1);

    }

  @Transactional

    public Map<String, Object> addMap(Map<String,Object> map){

        service.insert(map);

        return success(1);

    }

5.2.3饮食信息管理界面

管理员登录后,进入“饮食信息管理”模块。在列表中,可以查看所有饮食信息和评论信息,点击任意条目进入编辑页面。管理员可添加饮食信息、修改饮食信息或删除不再适用的条目。更改完成后,需点击“保存”按钮,确认修改。

饮食信息管理界面如下所示。

图5.9饮食信息管理详情界面设计

添加饮食信息代码如下:

    @PostMapping("/add")

    @Transactional

    public Map<String, Object> add(HttpServletRequest request) throws IOException {

        service.insert(service.readBody(request.getReader()));

        return success(1);

    }

  @Transactional

    public Map<String, Object> addMap(Map<String,Object> map){

        service.insert(map);

        return success(1);

    }

5.2.4系统管理界面

上传、编辑和删除首页轮播图,展示最新信息。通过有吸引力的图片吸引用户关注,提高用户留存率。

系统管理界面如下所示。

图5.10系统管理界面设计

5.2.5网站公告管理界面

管理员可以发布公告信息,所有普通用户都可以查看公告信息。同时,管理员还需要能够查看和管理所有公告信息。

网站公告管理界面如下所示。

图5.11网站公告管理界面设计

上传图片关键代码如下:

   @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.6资源管理界面

管理员管理系统中的健康资讯,进行资讯分类和更新,提供用户有价值的健康信息。

资源管理界面如下所示。

图5.12资源管理界面设计

6  系统测试

6.1测试目的与意义

在软件开发生命周期中,系统测试占据着举足轻重的地位。通过进行全面而系统的测试,我们能够确保软件在实际使用环境中具备稳定运行的能力,从而满足用户的多样化需求,并显著提升软件的整体质量与可靠性。这一过程不仅有助于识别并修复潜在问题,还能为软件的持续优化提供有力支撑。

随着现代信息的快速发展,在社会各大领域中已经都开始应用网络信息技术,在应用网络技术的同时人们也开始把软件的质量问题作为了一个重要焦点来关注,因为一个软件的好与坏它决定着这个系统在市场上的生存,所以我们必须要把软件质量来做好,这样才有一定的生存能力。对于用户来说它们首先选用的都是保证这个系统软件的质量问题,因为一个系统的软件质量决定着用户在后期上成本经济的问题。图6-1就是纠错测试流程。

图6.1测试与纠错信息流程

6.2测试用例

在系统的功能验证阶段,我们将对全部的功能界面进行全面测试。具体而言,我们将模拟用户行为,输入各类数据并进行提交操作,随后仔细观察和分析每个页面的响应反馈。这一过程旨在验证系统的功能完整性,确保页面所呈现的功能与预期相符,并能够完全实现预设的交互逻辑。通过这种全面细致的测试方法,我们将确保系统在实际应用中能够稳定、准确地响应用户需求。

下表是系统登录功能测试用例,检测了用户名和密码的不同的输入情况,观察系统的响应情况。得出该功能达到了设计目标。

表6.1系统登录功能测试用例

功能描述

用于系统登录

测试目的

检测登录时的合法性检查

测试数据以及操作

预期结果

实际结果

输入的用户名和密码带有非法字符

提示用户名或者密码错误

与预期结果一致

输入的用户名或者密码为空

提示用户名或者密码错误

与预期结果一致

输入的用户名和密码不存在

提示用户名或者密码错误

与预期结果一致

输入正确的用户名和密码

登录成功

与预期结果一致

下表是注册功能测试用例,检测了各种数据的输入情况,观察系统的响应情况。得出该功能达到了设计目标。

表6.2注册功能测试用例

功能描述

用于用户注册

测试目的

检测用户注册时的合法性检查

测试数据以及操作

预期结果

实际结果

输入的手机号不合法

提示请输入正确的手机号码

与预期结果一致

输入的字段为空

提示必填项不能为空

与预期结果一致

输入的密码少于6位

提示密码必须为6-12位

与预期结果一致

输入的密码大于12位

提示密码必须为6-12位

与预期结果一致

下表是健康数据管理功能的测试用例,检测了对健康数据的增加,删除,修改,查询操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。

前置条件;登录系统。

表6.3健康数据管理的测试用例

功能描述

用于健康数据

测试目的

检测健康数据时的各种操作的运行情况

测试数据以及操作

预期结果

实际结果

点击添加健康数据,必填项合法输入,点击保存

提示添加成功

与预期结果一致

点击添加健康数据,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击修改健康数据,必填项修改为空,点击保存

提示必填项不能为空

与预期结果一致

点击修改健康数据,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击删除健康数据,选择健康数据删除

提示删除成功

与预期结果一致

点击搜索健康数据,输入存在的健康数据名

查找出相应健康数据

与预期结果一致

点击搜索健康数据,输入不存在的健康数据名

不显示健康数据

与预期结果一致

下表是饮食信息管理功能的测试用例,检测了饮食信息管理中对饮食信息的增加,删除,修改,查询操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。

前置条件;登录系统。

表6.4饮食信息管理的测试用例

功能描述

用于饮食信息

测试目的

检测饮食信息时的各种操作的运行情况

测试数据以及操作

预期结果

实际结果

点击添加饮食信息,必填项合法输入,点击保存

提示添加成功

与预期结果一致

点击添加饮食信息,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击修改饮食信息,必填项修改为空,点击保存

提示必填项不能为空

与预期结果一致

点击修改饮食信息,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击删除饮食信息,选择饮食信息删除

提示删除成功

与预期结果一致

点击搜索饮食信息,输入存在的饮食信息名

查找出相应饮食信息

与预期结果一致

点击搜索饮食信息,输入不存在的饮食信息名

不显示饮食信息

与预期结果一致

下表是采购清单管理功能的测试用例,检测了采购清单管理中对采购清单的增加,删除,修改,查询操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。

前置条件;登录系统。

表6.5采购清单管理的测试用例

功能描述

用于采购清单

测试目的

检测采购清单时的各种操作的运行情况

测试数据以及操作

预期结果

实际结果

点击添加采购清单,必填项合法输入,点击保存

提示添加成功

与预期结果一致

点击添加采购清单,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击修改采购清单,必填项修改为空,点击保存

提示必填项不能为空

与预期结果一致

点击修改采购清单,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击删除采购清单,选择采购清单删除

提示删除成功

与预期结果一致

点击搜索采购清单,输入存在的采购清单名

查找出相应采购清单

与预期结果一致

点击搜索采购清单,输入不存在的采购清单名

不显示采购清单

与预期结果一致

下表是家庭食材管理功能的测试用例,检测了家庭食材管理中对家庭食材的增加,删除,修改,查询操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。

前置条件;登录系统。

表6.6家庭食材管理的测试用例

功能描述

用于家庭食材

测试目的

检测家庭食材时的各种操作的运行情况

测试数据以及操作

预期结果

实际结果

点击添加家庭食材,必填项合法输入,点击保存

提示添加成功

与预期结果一致

点击添加家庭食材,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击修改家庭食材,必填项修改为空,点击保存

提示必填项不能为空

与预期结果一致

点击修改家庭食材,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击删除家庭食材,选择家庭食材删除

提示删除成功

与预期结果一致

点击搜索家庭食材,输入存在的家庭食材名

查找出相应家庭食材

与预期结果一致

点击搜索家庭食材,输入不存在的家庭食材名

不显示家庭食材

与预期结果一致

6.3测试分析

健康饮食管理系统开发与设计满足相关信息的管理需求,在设计时借鉴了国内外优秀网站的优点,从界面到系统设计都保证了管理员以及用户能够方便操作。系统的主要特点和优点归纳如下:

(1)本系统用的移置性和针对性都比较高,因为针对性高可以提供更好的服务而移置性可以在多个系统上运行,更给用户带来了极大的方便。

(2)该健康饮食管理系统开发与设计内容全面,管理方便可以及时的全面的处理各种错误,异常,这样避免了很多因用户的马虎操作而出现的失误,其操作方便,用户界面友好,能够上网的人都可以很好的进行操作。

经过对上述的测试结果分析,所有基本功能齐全,操作简单,系统运行性能良好,系统安全可靠,能促进健康饮食管理系统的发展,发展前景广阔。

7  结束语

经过一个学期的毕业设计的实现完成已接近尾声,到目前为止,当我回想起整个学期的系统开发日,收获颇丰。毕业设计的主要任务是建立一个智能化的健康饮食管理系统,主要使用springboot+vue框架和Mysql数据库的开发工具,对系统的每个功能模块进行相对应的操作,最后,系统调试结果表明系统基本可以满足功能要求。

健康饮食管理系统的开发对我大学学习的改进有很大帮助。它使我能够学习计算机知识的相关技术方面问题及与人交往的沟通交流方面,让我意识到无论我们做什么,我们都需要坚持不懈,努力工作,只有这样尝试了并且坚持去做了,我们才可以成功,才可以获得成功的喜悦,如果没有尝试,只是想,那连成功的机会都没有,实际操作进行做了,才会越来越近的靠近成功,随着道路一路向前,未来的路是美好的。

健康饮食管理系统的实现,是自己第一次完成的设计一个管理系统。在项目的设计过程中,我克服了各种困难,并且在面对这些困难,我积极的面对,想办法解决问题,并且更好的掌握了理论知识和动手操作实践能力,从系统的开发到设计完成,我完成了一个更全面、更完善、更安全的管理系统,这也让我取得了很大的成就感,也使我对未来的生活更有信心。

参考文献

  • 王婧婷,董小兰,金天,等.健康推荐系统研究进展与展望[J].医学信息学杂志,2024,45(01):70-76.
  • 张康宁,马玉霞,于浩然,等.健康中国视域下健康管理系统的构建研究[J].体育视野,2022,(01):4-6.
  • 黄伟.程序设计类课程融入课程思政的研究与实践——以“Java程序设计”课程为例[C]//中国高校校办产业协会.教育信息技术创新与发展论坛论文集(二).南宁职业技术学院人工智能学院;,2024:4.DOI:10.26914/c.cnkihy.2024.021117.
  • 刘庆.面向慢病管理的个性化饮食推荐研究与实现[D].哈尔滨工业大学,2022.DOI:10.27061/d.cnki.ghgdu.2022.002748.
  • 吕秀凤,武继荣,周玲,等.冷藏冷冻箱的食材管理系统[J].家电科技,2024,(S1):430-434.DOI:10.19784/j.cnki.issn1672-0172.2024.99.091.
  • 段瑞,李方一.Java项目任务教学研究与设计[C]//河南省民办教育协会.2024年高等教育发展论坛论文集(上册).绵阳城市学院;,2024:2.DOI:10.26914/c.cnkihy.2024.009751.
  • 张新宇.基于知识图谱的健康饮食推荐系统研究与开发[D].天津科技大学,2023.DOI:10.27359/d.cnki.gtqgu.2023.000631.
  • 张悦琳,王创剑.基于人工智能知识库的营养膳食推荐系统研究[J].重庆工商大学学报(自然科学版),2024,41(05):16-27.DOI:10.16055/j.issn.1672-058X.2024.0005.003.
  • 张芮嘉.基于具身认知理论的健康饮食管理产品交互与体验设计[D].江南大学,2023.DOI:10.27169/d.cnki.gwqgu.2023.002535.
  • 姜全有,刘欣,汤秦,等.基于矩阵分解和标签的饮食推荐系统[J].信息与电脑(理论版),2021,33(24):57-59.
  • 吴戴明,健康饮食管理系统V1.0.陕西省,西安鼎顺物联网科技有限公司,2021-07-01.
  • 王粤.基于多特征的健康饮食推荐系统的设计与实现[D].重庆邮电大学,2021.DOI:10.27675/d.cnki.gcydx.2021.000832.
  • Zhang J .Teaching Reform of Java Program Design Based on Vocational Education Cloud Platform[J].Journal of Higher Education Teaching,2024,1(5):
  • 董洪伟.基于知识图谱的菜品推荐系统[D].北京林业大学,2020.DOI:10.26949/d.cnki.gblyu.2020.001353.
  • Zhou R ,Luo K ,Chen X , et al.Research on the Construction of Computer Courses Based on CBE-CDIO Engineering Education Concept: Taking the Course “JAVA Programming” as an Example[J].Contemporary Education Frontiers,2023,1(2):
  • Davi V .Designing Hexagonal Architecture with Java:Build maintainable and long-lasting applications with Java and Quarkus[M].Packt Publishing Limited:2023-09-29.DOI:10.0000/9781837630714.
  • 刘宇豪,刘佳.基于微信小程序的健康饮食软件设计与实现[J].电脑编程技巧与维护,2020,(07):69-71.DOI:10.16184/j.cnki.comprg.2020.07.024.
  • 刘玲,张小帆,周莹.基于智能平台的饮食搭配管理系统——食全·食美[J].计算机产品与流通,2019,(08):129.
  • Wai H K ,Funabiki N,Aung T S, et al.Answer Code Validation Program with Test Data Generation for Code Writing Problem in Java Programming Learning Assistant System[J].Engineering Letters,2024,32(5):
  • Ullenboom C .Java Programming Exercises:Volume Two: Java Standard Library[M].CRC Press:2024-03-30.
  • 致  谢

    这次毕业设计能够完成,最重要的就是来自指导老师的帮助,老师不厌其烦的对我的论文及毕业设计提出非常有建设性的建议,我的毕设施能够完成离不开老师的帮助。我对老师由衷的表示感谢,

    其次要感谢大学四年里学院里所有的任课老师的教导,老师们在我整个大学四年里给予了我丰富的知识,让我能够在大学中不虚度光阴,踏踏实实的学习,没有这些老师不辞辛劳的教诲,我无法完成这四年的学业。

    最后,我要感谢我的家人和同学们。感谢父母在物质与精神上给予我无限的支持和鼓励。感谢我的同学们,在论文写作期间,你们给予了我许多宝贵的建议和帮助,让我在学术研究的道路上不再孤单。

    再次感谢所有在我大学生活中给予我帮助和支持的人们。您们的关怀和鼓励将永远铭刻在我的心中,成为我未来前行的动力。

    由于自己的水平有限,毕设仍然存在着很大的缺陷,各位老师若提出意见,我会努力改正。

    点赞+收藏+关注 → 私信领取本源代码、数据库 

    赞(0)
    未经允许不得转载:171主机测评 » 基于springboot的健康饮食管理系统--毕设附源码16569
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址