基于springboot+vue的食疗系统
基于springboot+vue的食疗系统
✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌
🍅文末获取项目下载方式🍅
一、项目背景介绍:
现在所处的社会以《和平与发展》作为一个时代发展的主题,科学技术作为第一生产力,在如今经济飞速发展的当下,人们的生活质量水平不断的提高了,不在以“吃饱穿暖”为主体了,越来越注重生活质量与精神文化的提升,伴随着生活节奏的加快,愈来愈多的人开始关注健康生活,提升自己的身体健康。
虽然愈来愈多的人开始关注自己的健康,也去改善自己的身体,但是根据2020年一项数据调查显示,在我国中亚健康的人数占比依旧是高达了国内人数的76%,而真正意义上健康的人数所占比例则不足3%。通过数据来看人群健康状况并不是很乐观,而且需要一个很大的改善。
在我们的身体中,拿体重这一项我们日常生活中比较在意的进行数据对比,我们可以发现以下重要信息:由《中国居民营养与慢性病状况报告(2020年)》中所展示出的新数据,我们就可以得出以下的结论,目前而言我国的成人中已经有超过1/2的人超重或肥胖,在成年居民(≥18岁)中超重率为34.3%、肥胖率为16.4%。此次也是全国性调查报告中首次出现超过1/2这样一个数字。同时在6-17岁儿童和青少年中有1/5(19%)和6岁以下儿童1/10(10.4%)都存在超重或肥胖。如果用人口数量来表示数据库,则通过人口数来计算,全国已经有6亿人超重和肥胖,这个数字在全球是第一位。很显然肥胖这一问题值得引起我们的重视。引起肥胖的原因有很多,其中最常见最直接的原因是跟我们吃的食物有关。目前人们对食物的要求越来越高,虽然肥胖等体重问题对于我们来说似乎并没有其他如:心血管、糖尿病等疾病那么严重,但是肥胖会引发诸如心血管疾病、糖尿病、脂肪肝等一系列疾病,而且是慢慢的改变身体机能,一般而言是很难察觉。而对于肥胖这一问题主要可以通过锻炼、控制饮食、调整作息等方式来改善。食疗这一理论则是通过饮食来调节我们的机能,所以我认为食疗系统的开发与设计是有利于健康和发展的、是具有需求的一个课题研究。
二、项目技术简介:
- JAVA:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
- Vue:Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的JavaScript框架。它基于标准HTML、CSS和JavaScript构建,并提供了一套声明式的、组件化的编程模型,帮助开发者高效地开发用户界面。
Vue是一个独立的社区驱动的项目,它是由尤雨溪在2014年作为其个人项目创建, 是一个成熟的、经历了无数实战考验的框架,它是目前生产环境中使用最广泛的JavaScript框架之一,可以轻松处理大多数web应用的场景,并且几乎不需要手动优化,并且Vue完全有能力处理大规模的应用。 - Element-UI:Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库。
- SpringBoot:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
- Mybatis-Plus:MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为 简化开发、提高效率而生。
- Spring-Mvc:Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的Spring MVC框架或集成其他MVC开发框。
三、系统功能模块介绍:
四、数据库设计:
1:‘管理员表’(admin)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 主键ID |
user_name | varchar | NULL | 用户名 |
head_img | varchar | NULL | 头像 |
pass_word | varchar | NULL | 密码 |
nick_name | varchar | NULL | 昵称 |
2:‘食材表’(foods)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 主键ID |
food_name | varchar | NULL | 食材名称 |
food_type | bigint | NULL | 食材分类 |
food_fun | text | NULL | 主治功能 |
taboo | text | NULL | 禁忌食物 |
big_img | varchar | NULL | 封面图片 |
foods_imgs | text | NULL | 轮播图数组 |
3:‘食材分类’(goods_type)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 主键ID |
type_name | varchar | NULL | 类型名称 |
4:‘留言管理’(medical_records)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 主键ID |
user_id | bigint | NULL | 用户ID |
performance | text | NULL | 常规表现 |
recommended | varchar | NULL | 推荐方案 |
varchar | NULL | 邮箱 |
5:‘体质分类表’(physical_type)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 主键ID |
physical_name | varchar | NULL | 体质分类名称 |
6:‘体质表’(physicals)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 主键ID |
physicals_name | varchar | NULL | 体质名称 |
type_id | bigint | NULL | 所属类型 |
performance | text | NULL | 常规表现 |
feature | text | NULL | 形体特征 |
tendencys | text | NULL | 发病倾向 |
ability | text | NULL | 适应能力 |
health_key | text | NULL | 养生关键 |
taboo | text | NULL | 食物性宜忌 |
big_img | varchar | NULL | 介绍图片 |
7:‘食谱表’(recipe)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 主键ID |
recipe_name | varchar | NULL | 食谱名称 |
recipe_type | bigint | NULL | 食谱分类 |
recipe_content | text | NULL | 食谱搭配 |
attend_fun | text | NULL | 主治疾病 |
taboo | text | NULL | 饮食禁忌 |
big_img | varchar | NULL | 封面图片 |
8:‘食谱分类表’(recipe_type)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 主键ID |
recipe_type | varchar | NULL | 食谱类别 |
9:‘用户表’(users)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 主键ID |
user_name | varchar | NULL | 用户名 |
sex | int | NULL | |
pass_word | varchar | NULL | 密码 |
name | varchar | NULL | 姓名 |
age | int | NULL | 年龄 |
adapt | varchar | NULL | 适应能力 |
history | varchar | NULL | 既往史 |
now_medical | varchar | NULL | 现病史 |
allergy | varchar | NULL | 过敏史 |
create_time | datetime | NULL | 创建时间 |
五、功能模块:
-
用户登录模块:首先用户需要进行登录操作来进入系统后才能再进行后续的一些功能体验。在用户系统界面可以点击右上角的登录按钮跳转登录界面输入正确的相关用户信息便可等级食疗系统进行功能体验,如果该用户没有注册,则可以点击注册按钮进行用户信息注册。在登录这一重要的模块中,系统会将用户输入的信息与系统数据库进行检查,MySQL数据库会运行SQL语句并将信与已存储在数据库中的数据进行检索,确保系统安全和稳定。
-
用户首页模块:在用户登录步骤完成之后并且成功进入食疗系统,食疗系统会展示首页信息,同时用户可以根据自己的需求进行食材、食谱、体质等功能体验。用户首先重要的是需要把自己的体质信息进行记录,这样食疗系统可以根据不同的体质情况进行数据处理。用户可以点击首页的体质按钮进入体质信息模块。
-
用户体质信息模块:在此食疗系统中,用户的体质信息是系统中重要的一个项目,用户可以在首页点击体质按钮进入体质页面把用户自己的一些体质相关信息对应食疗系统的提示进行输入,让食疗系统存储用户的体质信。体质信息中一些如:所属分类、形体特征、发病趋势等可以直观表示用户当前身体状况,让用户可以直接了解自己的身体健康情况。而在体质信息中的养生关键和食物性宜忌则可以为用户提供体质改善的建议,让用户能够提高自己的身体质量。在体质信息这一模块中,用户可以简单易读的直观了解到用户的体质信息,此页面可以让用户可以快速上手,提高用户使用体验。
-
食材信息模块:在食疗系统中用户可以在首页点击食材按钮跳转对应的食材信息模块,在此模块中用户可以直观感受到相应食材的作用、所属分类、主治功能、禁忌情况。
-
食谱信息模块:在食疗系统中用户可以在首页点击食谱按钮跳转对应的食材信息模块,在此模块中用户可以直观感受到相应食材的作用、所属分类、食谱搭配、主治功能、禁忌情况。
六、代码示例:
用户登录模块
@RequestMapping(value = "/registerSave")public ResponseEntity<String> mineSave(Model model,HttpServletRequest request,Long id,String username,String password,String customerName,String sex,String address,String mobile) throws Exception{int result = 0;String sql="insert into t_customer(username,password,customerName,sex,address,mobile) values(?,?,?,?,?,?)";result = db.update(sql, new Object[]{username,password,customerName,sex,address,mobile});sql="select * from t_customer order by id desc limit 1";List<Map> list = db.queryForList(sql);request.getSession().setMaxInactiveInterval(60*60*24);request.getSession().setAttribute("customerBean", list.get(0));return renderData(true,"操作成功",null);}
用户首页模块
public ResponseEntity<String> loginSave(Model model,HttpServletRequest request,String username,String password) throws Exception {String sql="select * from t_customer where username=?";List<Map> list = db.queryForList(sql, new Object[]{username});String result="1";if(list!=null&&list.size()>0){Map map = list.get(0);if(StringHelper.get(map, "password").equals(password)){request.getSession().setMaxInactiveInterval(60*60*24);request.getSession().setAttribute("customerBean", map);result="1";}else{result="0";}}else{result="0";}return rende
用户体质信息模块
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{return AjaxResult.success(tGrugsService.selectTGrugsById(id));
}
食材信息模块
@RequestMapping(value = "/myOrder")public String myOrder(Model model, HttpServletRequest request)throws Exception {String sql = "select a.*,(select max(customerName) from t_customer b where a.customerId=b.id) customerName from t_order a where 1=1 ";if (1 == 1) {sql += "and customerId=" + getCustomer(request).get("id") + " ";}sql += " order by id desc";List list = db.queryForList(sql);request.setAttribute("orderList", list);return "/front/myOrder";}
食谱信息模块
@GetMapping("/list")
public TableDataInfo list(SysNotice notice)
{startPage();List<SysNotice> list = noticeService.selectNoticeList(notice);return getDataTable(list);
}
七、论文参考:
论文参考···
八、项目总结:
通过这段时间的设计和开发,食疗系统是完成了,在此我非常感谢老师的指导和同学的帮助,让我可以在在这几个月把自己的食疗系统开发完成。在这份文档中展示了食疗系统的部分关键功能模块和一些食疗系统在设计与开发时候的内容。此食疗系统的用户系统为用户提供了用户所属账号注册以及登录功能、本系统所包含的食材信息、食谱信息、以及用户体质记录和对应体质的食谱推荐,为用户的身体健康提供帮助。在本食疗系统的管理系统则为管理员提供了用户的体制分类管理、食谱分类管理、食材管理、食谱信息管理、食品分类管理、体质信息管理、留言管理、用户信息管理这些功能。这些功能为用户和管理员对食疗系统的功能体验和运作提供了有效作用。
在设计和开发食疗系统时,因为本人是首次个人制作此类系统项目,在很多方面还是存在不足之处。在系统开发时,系统开发编码的情况不容乐观,很多编码逻辑还是存在很大的问题,编写的代码存在逻辑混乱,这对于系统的开发是非常严重的,在以后我会改善自己的编码思维,确保编码逻辑顺通。对于用户系统的界面设计之初还是缺乏简洁的美观思维,没有去深入考虑用户的观念,系统的界面不够美观,让系统界面的美观并不讨喜,系统界面是直接与用户进行交互的,应该设计美观,让用户喜欢,提高用户的使用体验。
完成此次食疗系统后在,让我知道了想要开发一个好的系统、一个有用户粘性的系统并不简单,做好系统开发之初的需求分析、一个符合用户审美的系统设计、一个安全稳定的数据库等这些都是不能粗制滥造的。我想通过这次食疗系统的设计与开发可以让我积累更多的专业知识,让自己的实践能力更强。
九、源码获取:
大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻获取联系方式👇🏻👇🏻👇🏻
链接点击直达:下载链接
相关文章:

基于springboot+vue的食疗系统
基于springbootvue的食疗系统 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景介绍&…...

sklearn学习-朴素贝叶斯
文章目录一、概述1、真正的概率分类器2、sklearn中的朴素贝叶斯二、不同分布下的贝叶斯1、高斯朴素贝叶斯GaussianNB2、探索贝叶斯:高斯朴素贝叶斯擅长的数据集3、探索贝叶斯:高斯朴素贝叶斯的拟合效果与运算速度总结一、概述 1、真正的概率分类器 算法…...

分享112个HTML艺术时尚模板,总有一款适合您
分享112个HTML艺术时尚模板,总有一款适合您 112个HTML艺术时尚模板下载链接:https://pan.baidu.com/s/1D3-mfPOud-f3vy9yLl-bmw?pwdfph2 提取码:fph2 Python采集代码下载链接:采集代码.zip - 蓝奏云 时尚平面模特网站模板 潮…...
用GDB远程调试运行于QEMU的程序
1. 前言 限于作者能力水平,本文可能存在谬误,因此而给读者带来的损失,作者不做任何承诺。 2. 测试环境 本文使用 Ubuntu 16.04.4 LTS QEMU 环境进行调试。 3. 用 GDB 调试 QEMU 内程序 3.1 编写用来调试的程序 我们用 ARM32 来进行调试…...

20 堆排序
文章目录1 堆排序的概念2 堆排序基本思想3 堆排序步骤图解说明4 堆排序的代码实现1 堆排序的概念 1) 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为 O(nlogn)…...

2023最新文件快递柜系统网站源码 | 匿名口令分享 | 临时文件分享
内容目录一、详细介绍二、效果展示1.部分代码2.效果图展示三、学习资料下载一、详细介绍 2023最新文件快递柜系统网站源码 | 匿名口令分享 | 临时文件分享 很多时候,我们都想将一些文件或文本传送给别人,或者跨端传递一些信息,但是我们又不…...
分片策略(二)
分片策略 基本概念 分片键 用于分片的字段,是将数据库或表拆分的字段,比如,我可以使用user_id作为分片键将用户数据分到不同的表中,这里的user_id就是分片键,除了这种单字段分片,ShardingSphere还支持多…...

Qt之调色板类QPalette的使用
文章目录QPalette调色板类前言代码知识点讲解QPalette调色板类 前言 Qt提供的调色板类QPalette专门用于管理部件的外观显示,相当于部件或对话框的调色板,管理他们所有的颜色信息。每个部件都包含一个QPalette对象,在显示时,按照…...

Kotlin 32. Kotlin 多语言支持
Kotlin 多语言支持 对于 Kotlin 来说,当我们新建一个项目时,会默认在 values/ 文件夹下,生成一个 strings.xml 文件。比如说, <resources><string name"app_name">exampleNewProject</string> <…...

【Flutter入门到进阶】Dart进阶篇---DartVM单线程设计原理
1 虚拟机的指令执行设计 1.1 虚拟机的分类 基于栈的虚拟机,比如JVM虚拟机 基于寄存器的虚拟机,比如Dalvik虚拟机 1.2 虚拟机的概念 首先问一个基本的问题,作为一个虚拟机,它最基本的要实现哪些功能? 他应该能够模拟…...
Dem和NvM(NVRAM Manager)的交集
NVRAM(NvM)提供了在NVRAM中存储数据Block的机制。 NVRAM Block(最大大小取决于配置)被分配给Dem,并由Dem实现事件状态信息和相关数据的永久存储(例如通电复位)。 ECU 状态管理器(Ec…...
AI神经网络CNN/RNN/DNN/SNN的区别对比
@版权声明: 本文由 ChatGpt 创作; BiliBili: https://www.bilibili.com/video/BV17D4y1P7pM/?share_source=copy_web&vd_source=6d217e0ff6387a749dc570aba51d36fd 引言 随着人工智能技术的发展,神经网络作为人工智能的核心技术之一,被广泛应用于图像识别、语音识别、…...

【JavaWeb】一文学会JPA
✅✅作者主页:🔗孙不坚1208的博客 🔥🔥精选专栏:🔗JavaWeb从入门到精通(持续更新中) 📋📋 本文摘要:本篇文章主要介绍JPA的概念、注解实现ORM规范…...

【安卓逆向】APK修改与反编译回编译
【安卓逆向】反编译修改APK回编译使用工具流程步骤Apktool相关安装与使用常用命令备查APK签名命令备查实战练习反编译查看修改的地方使用Apktool反编译得到产物文件夹并进行修改回编APK实用场景在日常开发我们可能需要替换某些资源或者修改某些代码,但是我们没有源码…...
【计组笔记04】计算机组成原理之多模块存储器、Cache高速缓存存储器、Cache地址映射
这篇文章,主要介绍计算机组成原理之多模块存储器、Cache高速缓存存储器、Cache地址映射。 目录 一、双口RAM和多模块存储器 1.1、存取周期 1.2、双口RAM 1.3、多模块存储器...
英语基础-状语的应用
1. 非谓语动词作状语 1. 试着翻译下列句子 当他是一个小孩子的时候,他很喜欢玩电脑游戏。 When he was a child, he liked playing computer games. 如果他通过考试,他妈妈就会给他买一台新电脑。 If he passes the examination, his mother will b…...
发表论文需要注意的两点(建议收藏)
在学习人工智能的过程中,论文有着重要的作用,无论是深入学术科研,还是毕业找工作,都离不开发表论文这一步骤,所以今天就和大家分享一些关于论文发表的经验,希望对大家有所帮助。 为什么要早点发表论文&…...
ISTQB-TM-大纲
1. 测试过程 1.1 简介 在 ISTQB 软件测试基础级认证大纲中已描述了基本的测试过程包括以下活动: 计划和控制分析和设计实施和执行评估出口准则和报告测试结束活动 基础级大纲认同这些活动虽然有逻辑顺序,但过程中的某些活动可能重叠,或并行…...

Java SPI 机制详解
在面向对象的设计原则中,一般推荐模块之间基于接口编程,通常情况下调用方模块是不会感知到被调用方模块的内部具体实现。一旦代码里面涉及具体实现类,就违反了开闭原则。如果需要替换一种实现,就需要修改代码。 为了实现在模块装…...
腾讯前端经典react面试题(附答案)
React 性能优化在哪个生命周期?它优化的原理是什么? react的父级组件的render函数重新渲染会引起子组件的render方法的重新渲染。但是,有的时候子组件的接受父组件的数据没有变动。子组件render的执行会影响性能,这时就可以使用s…...

SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
基础测试工具使用经验
背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行
项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...
08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险
C#入门系列【类的基本概念】:开启编程世界的奇妙冒险 嘿,各位编程小白探险家!欢迎来到 C# 的奇幻大陆!今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类!别害怕,跟着我,保准让你轻松搞…...
BLEU评分:机器翻译质量评估的黄金标准
BLEU评分:机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域,衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标,自2002年由IBM的Kishore Papineni等人提出以来,…...

Rust 开发环境搭建
环境搭建 1、开发工具RustRover 或者vs code 2、Cygwin64 安装 https://cygwin.com/install.html 在工具终端执行: rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu 2、Hello World fn main() { println…...
多元隐函数 偏导公式
我们来推导隐函数 z z ( x , y ) z z(x, y) zz(x,y) 的偏导公式,给定一个隐函数关系: F ( x , y , z ( x , y ) ) 0 F(x, y, z(x, y)) 0 F(x,y,z(x,y))0 🧠 目标: 求 ∂ z ∂ x \frac{\partial z}{\partial x} ∂x∂z、 …...
用递归算法解锁「子集」问题 —— LeetCode 78题解析
文章目录 一、题目介绍二、递归思路详解:从决策树开始理解三、解法一:二叉决策树 DFS四、解法二:组合式回溯写法(推荐)五、解法对比 递归算法是编程中一种非常强大且常见的思想,它能够优雅地解决很多复杂的…...