基于Spring Boot+Vue的减肥健康管理系统设计和实现【原创】(BMI算法,协同过滤算法、图形化分析)

news2024/12/23 8:43:25

🎈系统亮点:图形化分析、BMI算法,协同过滤算法;

一.系统开发工具与环境搭建

1.系统设计开发工具


后端使用Java编程语言的Spring boot框架
项目架构:B/S架构
运行环境:win10/win11、jdk17


前端:
技术:框架Vue.js;UI库:ElementUI;
开发工具:Visual Studio Code;



后端:
技术:Java语言、mybatis plus、Spring boot框架;
开发工具:IDEA 2023.3.3版本;



数据库:
数据库:mysql5.7/8.0
数据库工具:Navicat12版本;


2.系统运行环境

  • Java运行环境:服务器安装Java17开发工具包,确保Spring Boot框架能够正常运行。JDK版本需与项目所依赖的版本相匹配。
  • 数据库管理系统:采用MySQL数据库管理系统,负责存储商城系统的所有数据,如商品信息、用户数据、订单记录等。确保数据的安全性和完整性。
  • 操作系统:支持主流的桌面操作系统Windows。
  • 浏览器:支持主流浏览器,Chrome。商城系统的前端页面需要在这些浏览器中正常显示和运行。

二.需求分析

2.1 功能需求

2.1.1 用户功能需求分析

1. 减肥科普:用户可以浏览丰富的减肥知识库,也可以进行评价交流。

2. 身体指标:用户可以记录和跟踪自己的体重,身高,血糖,腰围,血压等身体指标。

3. 每日计划:根据用户选择的计划,系统会生成个性化的每日饮食和运动计划。

4. 推荐食谱:系统提供多种健康美味的食谱餐谱。

5. 体重计划:记录用户的体重计划。

6. BIM计算:系统根据用户输入的身高和体重数据,自动计算出BMI值。

7. 完成情况:系统将记录用户的饮食摄入、运动量等活动的完成情况。用户可以查看自己的完成情况报告,包括图表和数据分析,以清晰地了解自己的进步和需要改进的地方。

8. 个人中心:用户可以在个人中心模块进行修改个人数据,可以查看自己的身体记录,减肥计划,身体指标计划,用户发表的话题管理以及收藏的话题。

2-1 用户用例图

2.1.2 管理员功能需求分析

1. 用户管理:管理员可以查看、添加、编辑和删除系统中的用户信息。

2. 封面管理:管理员可以上传、编辑和删除系统首页或特定页面的封面图片。

3. 食谱管理:管理员可以添加、编辑和删除系统中的食谱信息。

4. 减肥计划管理:管理员可以创建、编辑和删除针对不同用户的减肥计划。

5. 减肥话题管理:管理员可以发布、编辑和删除系统中的减肥话题或文章。管理员可以审核话题内容,确保其真实性和正面性。

6. 科普管理:管理员可以发布、编辑和删除关于减肥的科学知识、健康贴士等内容。

图2-2 管理员用例图


减肥管理系统主要分为两个角色,用户具有减肥科普,身体指标,每日计划,推荐食谱,体重计划,BIM计算,完成情况,个人中心功能。管理员具有用户管理,封面管理,食谱管理,减肥计划管理,减肥话题管理,科普管理功能。

三.系统实现

用户

1.登录界面

2.首页界面

详情界面

3.身体指标界面

4.体重计划

5.每日计划

6.完成情况

7.个人中心

7.1 我的个人信息

7.2 减肥计划

7.3 身体指标分析

7.4 身体计划

7.5 话题收藏

7.6 论坛

管理员

1.用户管理

2.减肥话题管理

2.1 减肥圈子

2.2 减肥话题

2.3 减肥评论

2.4话题浏览记录

3.食谱管理

四.数据库设计

1. 用户表

用户表用于存储用户的基本数据,主要包括用户主键,创建时间,创建人,密码,登录时间段,邮箱,角色,账号,手机号码,头像,出生年月,名称,体重,升高字段。

表3-1 用户表

字段名称

字段含义

字段类型

是否为空

是否PK

Id

用户主键

int

NO

PK

CreationTime

创建时间

timestamp

YES

-

CreatorId

创建人

int

YES

-

Password

密码

varchar(512)

YES

-

LoginTimePeriod

登录时间段

varchar(512)

YES

-

Email

邮箱

varchar(512)

YES

-

RoleType

角色

int

YES

-

UserName

账号

varchar(512)

YES

-

PhoneNumber

手机号码

varchar(512)

YES

-

ImageUrls

头像

varchar(512)

YES

-

Birth

出生年月

timestamp

YES

-

Name

名称

varchar(512)

YES

-

W

体重

varchar(512)

YES

-

H

升高

varchar(512)

YES

-

2. 资讯表

资讯表用于存储资讯的基本数据,主要包括资讯主键,创建时间,创建人,标题,发表者,封面,文章内容,文章类型,上架状态,是否推荐字段。

表3-2 资讯表

字段名称

字段含义

字段类型

是否为空

是否PK

Id

资讯主键

int

NO

PK

CreationTime

创建时间

timestamp

YES

-

CreatorId

创建人

int

YES

-

Title

标题

varchar(1024)

YES

-

Author

发表者

varchar(1024)

YES

-

ImageUrls

封面

varchar(1024)

YES

-

Content

文章内容

longtext

YES

-

ArticleTypeId

文章类型

int

YES

-

IsPutaway

上架状态

varchar(1024)

YES

-

IsRecommand

是否推荐

tinyint(1)

YES

-

3. 资讯收藏表

资讯收藏表用于存储用户收藏的资讯,主要包括资讯收藏主键,创建时间,创建人,收藏人,资讯字段。

表3-3 资讯收藏表

字段名称

字段含义

字段类型

是否为空

是否PK

Id

资讯收藏主键

int

NO

PK

CreationTime

创建时间

timestamp

YES

-

CreatorId

创建人

int

YES

-

CollectUserId

收藏人

int

YES

-

ArticleInfoId

资讯

int

YES

-

4. 资讯评论表

资讯评论表用于存储用户对资讯的评论,主要包括资讯评论主键,创建时间,创建人,文章,评论内容,昵称,头像字段。

表3-4 资讯评论表

字段名称

字段含义

字段类型

是否为空

是否PK

Id

资讯评论主键

int

NO

PK

CreationTime

创建时间

timestamp

YES

-

CreatorId

创建人

int

YES

-

ArticleInfoId

文章

int

YES

-

Content

评论内容

longtext

YES

-

NickName

昵称

varchar(512)

YES

-

HeadImage

头像

varchar(512)

YES

-

5. 资讯点赞表

资讯点赞表用于存储用户对资讯的点赞记录,主要包括资讯点赞主键,创建时间,创建人,点赞人,资讯字段。

表3-5 资讯点赞表

字段名称

字段含义

字段类型

是否为空

是否PK

Id

资讯点赞主键

int

NO

PK

CreationTime

创建时间

timestamp

YES

-

CreatorId

创建人

int

YES

-

LikeUserId

点赞人

int

YES

-

ArticleInfoId

资讯

int

YES

-

6. 资讯浏览记录表

资讯浏览记录表用于存储用户对资讯的浏览记录,主要包括资讯浏览记录主键,创建时间,创建人,资讯,用户字段。

表3-6 资讯浏览记录表

字段名称

字段含义

字段类型

是否为空

是否PK

Id

资讯浏览记录主键

int

NO

PK

CreationTime

创建时间

timestamp

YES

-

CreatorId

创建人

int

YES

-

ArticleInfoId

资讯

int

YES

-

UserId

用户

int

YES

-

7. 资讯类型表

资讯类型表用于存储资讯类型的信息,主要包括资讯类型主键,创建时间,创建人,资讯名称,封面字段。

表3-7 资讯类型表

字段名称

字段含义

字段类型

是否为空

是否PK

Id

资讯类型主键

int

NO

PK

CreationTime

创建时间

timestamp

YES

-

CreatorId

创建人

int

YES

-

Title

资讯名称

varchar(512)

YES

-

ImageUrls

封面

longtext

YES

-

8. 封面表

封面表用于存储封面的信息,主要包括封面主键,创建时间,创建人,封面,备注,标题,跳转路径字段。

表3-8 封面表

字段名称

字段含义

字段类型

是否为空

是否PK

Id

封面主键

int

NO

PK

CreationTime

创建时间

timestamp

YES

-

CreatorId

创建人

int

YES

-

ImageUrls

封面

varchar(512)

YES

-

Remark

备注

varchar(512)

YES

-

Title

标题

varchar(512)

YES

-

LinkUrl

跳转路径

varchar(512)

YES

-

9. 身体指标表

身体指标表用于存储封面的信息,主要包括身体指标主键,创建时间,创建人,体重,身高,BMI指数,血压,血糖,用户,腰围,体脂率字段。

表3-9 身体指标表

字段名称

字段含义

字段类型

是否为空

是否PK

Id

身体指标主键

int

NO

PK

CreationTime

创建时间

timestamp

YES

-

CreatorId

创建人

int

YES

-

W

体重

double(20,5)

YES

-

H

身高

double(20,5)

YES

-

BMI

BMI指数

double(20,5)

YES

-

BP

血压

double(20,5)

YES

-

GLU

血糖

double(20,5)

YES

-

UserId

用户

int

YES

-

WaistCircumferenc

腰围

double(20,5)

YES

-

BodyFatPercentage

体脂率

double(20,5)

YES

-

10. 话题评论表

话题评论表用于存储话题的评论信息,主要包括话题评论主键,创建时间,创建人,话题,评论内容,昵称,头像,根评论,回复用户,发送用户字段。

表3-9 话题评论表

字段名称

字段含义

字段类型

是否为空

是否PK

Id

话题评论主键

int

NO

PK

CreationTime

创建时间

timestamp

YES

-

CreatorId

创建人

int

YES

-

TopicId

话题

int

YES

-

Content

评论内容

longtext

YES

-

NickName

昵称

varchar(512)

YES

-

HeadImage

头像

varchar(512)

YES

-

RootCommentId

根评论

int

YES

-

TargetUserId

回复用户

int

YES

-

SendUserId

发送用户

int

YES

-

11. 评论点赞记录表

评论点赞记录表用于存储话题的评论点赞记录,主要包括评论点赞记录主键,创建时间,创建人,话题,点赞评论,点赞人字段。

表3-11 评论点赞记录表

字段名称

字段含义

字段类型

是否为空

是否PK

Id

评论点赞记录主键

int

NO

PK

CreationTime

创建时间

timestamp

YES

-

CreatorId

创建人

int

YES

-

TopicId

话题

int

YES

-

CommentId

点赞评论

int

YES

-

UserId

点赞人

int

YES

-

12. 食谱表

食谱表用于存储食谱的信息,主要包括食谱主键,创建时间,创建人,名称,食谱内容,推荐起始体重,推荐截止体重,封面,推荐等级字段。

表3-12 食谱表

字段名称

字段含义

字段类型

是否为空

是否PK

Id

食谱主键

int

NO

PK

CreationTime

创建时间

timestamp

YES

-

CreatorId

创建人

int

YES

-

Name

名称

varchar(512)

YES

-

Content

食谱内容

longtext

YES

-

RecommendedBeginWeight

推荐起始体重

double(20,5)

YES

-

RecommendedEndWeight

推荐截止体重

double(20,5)

YES

-

Cover

封面

varchar(512)

YES

-

RecoomendLevel

推荐等级

int

YES

-

13. 话题表

话题表用于存储话题的基本数据,主要包括话题主键,创建时间,创建人,标题,封面,主图,浏览数,内容,话题类型,审核状态,是否推荐,视频字段。

表3-13 话题表

字段名称

字段含义

字段类型

是否为空

是否PK

Id

话题主键

int

NO

PK

CreationTime

创建时间

timestamp

YES

-

CreatorId

创建人

int

YES

-

Title

标题

varchar(512)

YES

-

Cover

封面

varchar(512)

YES

-

ImageUrls

主图

longtext

YES

-

ViewCount

浏览数

int

YES

-

Content

内容

longtext

YES

-

TopicTypeId

话题类型

int

YES

-

AuditStatus

审核状态

int

YES

-

IsRecommand

是否推荐

tinyint(1)

YES

-

VideoUrls

视频

varchar(255)

YES

-

14. 话题收藏表

话题收藏表用于存储话题的基本数据,主要包括话题收藏主键,创建时间,创建人,话题,收藏人字段。

表3-14 话题收藏表

字段名称

字段含义

字段类型

是否为空

是否PK

Id

话题收藏主键

int

NO

PK

CreationTime

创建时间

timestamp

YES

-

CreatorId

创建人

int

YES

-

TopicId

话题

int

YES

-

UserId

收藏人

int

YES

-

15. 话题浏览记录表

话题浏览记录表用于存储话题的浏览记录数据,主要包括话题浏览记录主键,创建时间,创建人,话题类型,话题,浏览人字段。

表3-15 话题浏览记录表

字段名称

字段含义

字段类型

是否为空

是否PK

Id

话题浏览记录主键

int

NO

PK

CreationTime

创建时间

timestamp

YES

-

CreatorId

创建人

int

YES

-

TopicTypeId

话题类型

int

YES

-

TopicId

话题

int

YES

-

UserId

浏览人

int

YES

-

16. 话题类型表

话题类型表用于存储话题的类型数据,主要包括话题类型主键,创建时间,创建人,名称,编码,封面,描述字段。

表3-16 话题类型表

字段名称

字段含义

字段类型

是否为空

是否PK

Id

话题类型主键

int

NO

PK

CreationTime

创建时间

timestamp

YES

-

CreatorId

创建人

int

YES

-

Name

名称

varchar(512)

YES

-

Code

编码

varchar(512)

YES

-

Cover

封面

varchar(512)

YES

-

Content

描述

varchar(512)

YES

-

17. 减肥计划表

减肥计划表用于存储减肥计划数据,主要包括减肥计划主键,创建时间,创建人,计划,内容,整体难度,是否系统制订,开始日期,结束日期,用户字段。

表3-17 减肥计划表

字段名称

字段含义

字段类型

是否为空

是否PK

Id

减肥计划主键

int

NO

PK

CreationTime

创建时间

timestamp

YES

-

CreatorId

创建人

int

YES

-

Name

计划

varchar(512)

YES

-

Content

内容

longtext

YES

-

Level

整体难度

int

YES

-

IsSystem

是否系统制订

int

YES

-

BeginDate

开始日期

timestamp

YES

-

EndDate

结束日期

timestamp

YES

-

UserId

用户

int

YES

-

18. 减肥计划明细表

减肥计划明细表用于存储减肥计划数据,主要包括减肥计划明细主键,创建时间,创建人,计划,用户,主题,内容,是否完成,打卡次数,开始时间,结束时间字段。

表3-18 减肥计划明细表

字段名称

字段含义

字段类型

是否为空

是否PK

Id

减肥计划明细主键

int

NO

PK

CreationTime

创建时间

timestamp

YES

-

CreatorId

创建人

int

YES

-

WeightLossPlanId

计划

int

YES

-

UserId

用户

int

YES

-

Title

主题

varchar(512)

YES

-

Content

内容

longtext

YES

-

IsComplete

是否完成

tinyint(1)

YES

-

ClockCount

打卡次数

int

YES

-

BeginTime

开始时间

timestamp

YES

-

EndTime

结束时间

timestamp

YES

-

19. 减肥计划记录表

减肥计划明细表用于存储减肥计划记录,主要包括减肥计划记录主键,创建时间,创建人,计划,计划明细,打卡时间,用户字段。

表3-19 减肥计划记录表

字段名称

字段含义

字段类型

是否为空

是否PK

Id

减肥计划记录主键

int

NO

PK

CreationTime

创建时间

timestamp

YES

-

CreatorId

创建人

int

YES

-

WeightLossPlanId

计划

int

YES

-

WeightLossPlanDetId

计划明细

int

YES

-

ClockTime

打卡时间

timestamp

YES

-

UserId

用户

int

YES

-

20. 减肥提醒表

减肥提醒表用于存储减肥提醒的基本信息,主要包括减肥提醒主键,创建时间,创建人,计划,计划明细,提醒时间,提醒标题,提醒内容,用户,邮箱字段。

表3-20 减肥提醒表

字段名称

字段含义

字段类型

是否为空

是否PK

Id

减肥提醒主键

int

NO

PK

CreationTime

创建时间

timestamp

YES

-

CreatorId

创建人

int

YES

-

WeightLossPlanId

计划

int

YES

-

WeightLoosPlanDetId

计划明细

int

YES

-

RemindTime

提醒时间

timestamp

YES

-

Title

提醒标题

varchar(1024)

YES

-

Content

提醒内容

varchar(1024)

YES

-

UserId

用户

int

YES

-

Email

邮箱

varchar(1024)

YES

-

编写制作不易,一键四连再走吧,您的支持永远是我最大的动力!


 

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

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

相关文章

GLIPv2

GLIPv2 论文《GLIPv2: Unifying Localization and Vision-Language Understanding》、代码 3.3.1简介 GLIPv2和GLIPv1架构基本一样,只是融合了更多的任务和数据集。从论文题目 Unifying Localization and Vision-Language Understanding可以看出,其统一了…

精密机械代加工的特点和优势

在现代工业生产中,精密机械代加工扮演着至关重要的角色。它为众多企业提供了高质量、高精度的机械零部件加工服务,满足了不同行业对精密机械产品的需求。以下是时利和将详细介绍精密机械代加工的特点和优势。 一、特点 1.高精度加工 精密机械代加工的首要…

DK5V100R10SL贴片TO252功率12V4.3A同步整流芯片

概述DK5V100R10SL是一款简单高效率的同步整流芯片,只有A,K两个功能引脚,分别对应肖特基二极管PN管脚。芯片内部集成了100V功率NMOS管,可以大幅降低二极管导通损耗,提高整机效率,取代或替换目前市场上等规的…

ResNet50V2:口腔癌分类

本文为为🔗365天深度学习训练营内部文章 原作者:K同学啊 一 ResNet和ResNetV2对比 改进点:(a)original表示原始的ResNet的残差结构,(b)proposed表示新的ResNet的残差结构,主要差别就是(a)结构先卷积后进行BN和激活函数…

栈及笔试题

目录 栈的实现 1、数组栈 2、链式栈 栈的创建 栈的打印 内存泄漏 栈溢出 练习 有效的括号 栈的实现 栈后入先出 1、数组栈 (最佳实现,且访问数据的时候CPU告诉访存命中率比较高,因为地址连续存放,访问时CPU从cache里一…

货币单位换算 - 华为OD统一考试(E卷)

2024华为OD机试(E卷+D卷)最新题库【超值优惠】Java/Python/C++合集 题目描述 记账本上记录了若干条多国货币金额,需要转换成人民币分(fen),汇总后输出。 每行记录一条金额,金额带有货币单位,格式为数字+单位,可能是单独元,或者单独分,或者元与分的组合。 要求将这些…

解决QT开发由于中文导致的编译错误以及输出内容乱码问题

在进行QT程序开发时,大家可能或者一定会遇到的问题就是中文乱码问题,这个乱码问题可能是在你看代码的显示上,也可能在程序的输出上,甚至还有可能导致你的代码直接编译失败,都有可能和中文编码有关,还有一些…

力扣(leetcode)每日一题 2207 字符串中最多数目的子序列

题干 2207. 字符串中最多数目的子序列 给你一个下标从 0 开始的字符串 text 和另一个下标从 0 开始且长度为 2 的字符串 pattern ,两者都只包含小写英文字母。 你可以在 text 中任意位置插入 一个 字符,这个插入的字符必须是 pattern[0] 或者 pattern…

提升论文质量必备!2024年顶尖8款AI写作工具!

各位好!在这个信息化迅速发展的年代,AI技术已经成为我们学术探索的重要辅助力量。本次,我将向大家展示2024年八款必备的尖端AI应用。这些工具不仅能极大提升我们撰写学术论文的效率,还能改善研究的质量。 首先我们来看“梅子AI论…

Langgraph 的 Planning Agent 深度解析

在人工智能领域,智能代理(agent)的设计愈发重要。尤其在面对复杂任务时,规划(planning)技术成为智能代理的核心能力之一。Langgraph 是一个专为构建智能代理而设计的框架,结合了自然语言处理&am…

2024年项目经理不容错过的资源:全面测试管理工具指南与精选实例

随着软件开发的快速发展,测试管理工具在项目经理的日常工作中扮演着越来越重要的角色。2024年,哪些测试管理工具是项目经理不能错过的呢?本文将为您带来一份全面指南,帮助您找到最佳选择。 在软件开发过程中,测试是确保…

鸿蒙开发(NEXT/API 12)【硬件(接入手写套件)】手写功能开发

接入手写套件后,可以在应用中创建手写功能界面。界面包括手写画布和笔刷工具栏两部分,手写画布部分支持手写笔和手指的书写效果绘制,笔刷工具栏部分提供多种笔刷和编辑工具,并支持对手写功能进行设置。接入手写套件后将自动开启一…

机器学习方法实现水果分类(零基础小白向),手工提取水果图片特征,不一样的特征提取方法

文章目录 零、前言:一、什么是特征向量?二、数据准备三、构建数据集1、什么是数据集?2、图片对应的标签?3、特征提取方法(1)生成固定正方形(2)特征提取实现 四、建立模型五、自定义数…

【Python】遇见的问题:为项目选择的 Python 解释器无效

一、问题说明 导入项目文件后,提示“为项目选择的 Python 解释器无效” 二、问题原因 暂时不知道 三、解决办法 第一步:添加本地解释器 第二步:点击确定 位置:当前项目所在目录 基础解释器:python.exe所在目录 第三…

五子棋双人对战项目(2)——登录模块

目录 一、数据库模块 1、创建数据库 2、使用MyBatis连接并操作数据库 编写后端数据库代码 二、约定前后端交互接口 三、后端代码编写 文件路径如下: UserAPI: UserMapper: 四、前端代码 登录页面 login.html: 注册页面…

C++语法—引用

引用变量 概念 简单理解就是对一个已存在的变量起别名,与那个已存在的变量共用一块内存空间。 用法:已存在变量的类型 & 引用变量名 (引用实体)已存在变量 int main() {int a 1;int& b a;return 0; }在上面这个示例…

minio 快速入门+单机部署+集群

目录 原理 概念 名词解释 Set /Drive 的关系 MinIO部署 单机 单机单盘 单机多盘 集群 多机单盘 多机多盘 配置负载均衡 调优 原理 MinIO是一个S3兼容的高性能对象存储,其主要特点如下: 适合存储大容量非结构化的数据,如图片&…

骨传导耳机品牌排行榜分享:360度实测分析10款抢手骨传导耳机!

随着科技的不断进步和人们生活方式的变化,骨传导耳机以其独特的传声方式和开放式设计,逐渐成为运动爱好者、户外活动家以及听力障碍人士的新宠。不同于传统耳机将声音直接导入耳道,骨传导耳机通过振动颅骨将声音传递至内耳,不仅能…

数据结构与算法——Java实现 20.习题——二叉树层序遍历

认真的人改变自己,执着的人改变命运 —— 24.9.27 102. 二叉树的层序遍历 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]]示例 2: 输入:root [1] 输出:[[1]]示例 3&…

Java单体服务和集群分布式SpringCloud微服务的理解

单体应用存在的问题 1.随着业务的发展开发变得越来越复杂。 2.修改或者新增,需要对整个系统进行测试、重新部署。 3.一个模块出现问题,很可能导致整个系统崩溃。 4.多个开发团队同时对数据进行管理,容易产生安全漏洞。 5.各个模块使用同…