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

🎈系统亮点:图形化分析、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

-

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


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值