1. 项目概述:健康饮食小程序的设计初衷
作为一名长期关注健康科技领域的开发者,我发现现代人普遍存在饮食结构不合理、营养摄入不均衡的问题。去年帮朋友做体重管理时,我们尝试了市面上七款主流饮食记录应用,但都存在操作繁琐、数据孤立、推荐机械化等痛点。这促使我决定开发这款集记录、分析、推荐于一体的健康饮食小程序。
这个毕业设计项目采用前后端分离架构,前端使用微信小程序原生框架开发用户端,Vue.js开发管理后台;后端基于SpringBoot构建RESTful API;数据存储选用MySQL关系型数据库。系统最大的特色是将传统的饮食记录与智能算法相结合,通过数据可视化直观展示营养摄入情况,并运用协同过滤和背包算法实现个性化推荐。
提示:选择微信小程序作为载体,主要考虑其无需安装、即用即走的特性,特别适合饮食记录这类高频次、碎片化使用的场景。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心功能模块详解
2.1 用户端功能架构
2.1.1 饮食记录系统
这是整个小程序的核心模块,采用"记录车"交互模式:
- 用户可通过文字搜索或分类浏览查找食物
- 选择具体食物后,系统自动显示每100g所含热量、蛋白质、脂肪等营养素
- 用户可调整食用量,系统实时计算实际摄入量
- 点击"加入记录车"后,数据同步到当日饮食记录
技术实现要点:
- 食物数据库采用三级分类体系(如主食→谷物→大米)
- 营养素计算使用公式:摄入量=基准量×(用户输入克数/100)
- 采用本地缓存+云端同步的双存储策略,确保断网时仍可记录
2.1.2 智能推荐引擎
包含两种推荐模式:
-
场景化推荐:根据用户选择的场景(如减脂、增肌)筛选符合条件的食物
- 减脂推荐逻辑:蛋白质含量>20g/100g且热量<150kcal/100g
- 增肌推荐逻辑:蛋白质含量>30g/100g且碳水化合物>50g/100g
-
算法推荐:
- 协同过滤算法:基于用户历史记录和相似用户偏好推荐
- 背包算法:根据用户剩余热量预算推荐最优食物组合
java复制// 背包算法核心代码示例
public List<Food> knapsackRecommend(double remainingCalories, List<Food> candidateF
