# Diet **Repository Path**: cqiemushuo/diet ## Basic Information - **Project Name**: Diet - **Description**: Dietify 是一款基于人工智能算法的智能饮食推荐系统,采用改进协同过滤算法(UPICF)和多目标粒子群优化算法(MOPSO),为用户提供个性化的饮食推荐和精准的营养规划服务。 🌟 核心特色 🤖 智能推荐 - 基于UPICF算法的个性化菜品推荐 🥗 营养规划 - 基于MOPSO算法的精准营养配餐方案 📱 多端适配 - 支持APP、小程序、H5,一套代码多端运行 👤 用户画像 - 深度 - **Primary Language**: Unknown - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2025-08-09 - **Last Updated**: 2026-01-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: 若依, SpringBoot, Vue, 饮食, 毕设 ## README # Dietify 智能饮食推荐系统

logo

Dietify 智能饮食推荐系统

基于UPICF+MOPSO算法的智能饮食推荐与营养规划平台

## 🎯 项目简介 Dietify 是一款基于人工智能算法的智能饮食推荐系统,采用**改进协同过滤算法(UPICF)**和**多目标粒子群优化算法(MOPSO)**,为用户提供个性化的饮食推荐和精准的营养规划服务。 ### 🌟 核心特色 - **🤖 智能推荐** - 基于UPICF算法的个性化菜品推荐 - **🥗 营养规划** - 基于MOPSO算法的精准营养配餐方案 - **📱 多端适配** - 支持APP、小程序、H5,一套代码多端运行 - **👤 用户画像** - 深度学习用户口味偏好,持续优化推荐效果 - **⚖️ 营养均衡** - 结合《中国居民膳食营养素参考摄入量》科学配餐 - **🎨 管理后台** - 基于若依框架的完整后台管理系统 ## 🏗️ 技术架构 ### 后端技术栈 - **Spring Boot 2.5.15** - 主框架 - **MyBatis Plus** - ORM框架 - **Spring Security + JWT** - 安全认证 - **MySQL 8.0** - 数据库 - **Redis** - 缓存 - **Swagger 3.0** - API文档 ### 前端技术栈 - **UniApp 3.0+** - 跨平台移动端框架 - **Vue.js 2.6+** - 前端MVVM框架 - **uni-ui** - 跨平台UI组件库 - **Element UI 2.15** - 后台管理UI组件库 - **ECharts 5.4** - 数据可视化 ### 核心算法 - **UPICF推荐算法** - 改进协同过滤算法 - **MOPSO优化算法** - 多目标粒子群优化算法 - **TF-IDF** - 用户属性兴趣权重计算 - **艾宾浩斯遗忘曲线** - 时间权重修正 ## 📁 项目结构 ``` Diet/ ├── Dietify-back/ # 后端服务(基于若依框架) │ ├── diet-admin/ # 管理模块 │ ├── diet-common/ # 通用模块 │ ├── diet-framework/ # 核心框架 │ ├── diet-system/ # 系统模块 │ ├── diet-generator/ # 代码生成 │ ├── diet-quartz/ # 定时任务 │ ├── diet-ui/ # 前端资源 │ └── sql/ # 数据库脚本 └── Dietify-App-master/ # 移动端应用(UniApp) ├── api/ # API接口层 ├── pages/ # 页面文件 │ ├── diet/ # 饮食功能模块 │ │ ├── recommend/ # 智能推荐 │ │ ├── nutrition/ # 营养规划 │ │ ├── search/ # 菜品搜索 │ │ └── detail/ # 菜品详情 │ ├── mine/ # 用户中心 │ │ ├── profile/ # 个人信息 │ │ ├── favorites/ # 我的收藏 │ │ ├── history/ # 饮食记录 │ │ └── goals/ # 健康目标 │ ├── index.vue # 首页 │ └── login.vue # 登录页面 ├── components/ # 公共组件 ├── utils/ # 工具函数 └── static/ # 静态资源 ``` ## ✨ 功能特性 ### 🔐 身份验证模块 - 用户注册/登录(支持手机号验证) - 短信验证码集成 - 密码找回功能 - 图形验证码防护 ### 🏠 首页展示模块 - 营养知识轮播图 - 快捷功能入口 - 热门菜品展示(TOP10) - 个性化内容推荐 ### 🤖 智能推荐模块(核心) - **个性化推荐** - 基于UPICF算法分析用户口味偏好 - **用户画像建模** - TF-IDF计算属性兴趣权重 - **时间权重修正** - 参考艾宾浩斯遗忘曲线优化推荐 - **冷启动处理** - 新用户热门菜品推荐机制 - **相似度计算** - 修正余弦相似度+用户影响因子 ### 🥗 营养规划模块(核心) - **营养需求分析** - 基于年龄、性别、活动水平计算需求 - **智能配餐** - MOPSO算法优化食材搭配 - **多方案生成** - 提供3套可选营养方案 - **偏差率控制** - 营养偏差率≤8%,符合健康标准 - **三餐分配** - 按3:4:3比例分配每日营养摄入 ### 🔍 菜品搜索模块 - 智能模糊搜索 - 热门搜索标签(近一周TOP8) - 搜索历史管理 - 结果筛选排序 ### 👤 用户中心模块 - 个人信息管理 - 饮食习惯设置 - 健康目标管理 - 我的收藏管理 - 饮食记录查看 ### 🛠️ 后台管理模块 - 用户管理 - 菜品管理 - 食材管理 - 营养数据管理 - 系统监控 - 数据统计 ## 🧮 核心算法 ### UPICF推荐算法 ``` 1. 构建用户-菜品评分矩阵 2. 基于TF-IDF计算用户属性兴趣权重 3. 引入时间权重函数修正历史评分 4. 计算用户相似度(修正余弦+影响因子) 5. 生成TOP-N推荐列表 ``` ### MOPSO营养规划算法 ``` 1. 确定用户营养需求(RNI~UL范围) 2. 解析菜品核心食材成分 3. 多目标优化食材用量 4. 生成多套可选方案 5. 计算营养偏差率 ``` ## 🚀 快速开始 ### 环境要求 - **JDK 8+** - **MySQL 8.0+** - **Redis 6.0+** - **Node.js 14+** - **Maven 3.6+** ### 1. 克隆项目 ```bash git clone https://github.com/your-username/dietify-system.git cd dietify-system ``` ### 2. 数据库配置 ```sql # 创建数据库 CREATE DATABASE dietify_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; # 导入数据库脚本 mysql -u root -p dietify_db < Dietify-back/sql/dietify.sql ``` ### 3. 后端启动 ```bash cd Dietify-back # 修改配置文件 vim diet-admin/src/main/resources/application.yml # 编译打包 mvn clean package # 启动应用 java -jar diet-admin/target/diet-admin.jar ``` ### 4. 移动端启动 ```bash cd Dietify-App-master # 安装依赖 npm install # 开发运行 npm run dev:mp-weixin # 微信小程序 npm run dev:h5 # H5 npm run dev:app-plus # APP # 生产构建 npm run build:mp-weixin npm run build:h5 npm run build:app-plus ``` ## 🔧 配置说明 ### 后端配置 (application.yml) ```yaml # 数据源配置 spring: datasource: url: jdbc:mysql://localhost:3306/dietify_db username: root password: your_password # Redis配置 redis: host: localhost port: 6379 password: your_redis_password # 服务端口 server: port: 8080 ``` ### 移动端配置 (config.js) ```javascript module.exports = { // 后端API地址 baseUrl: 'http://localhost:8080', // 阿里云短信配置 sms: { accessKeyId: 'your_access_key', accessKeySecret: 'your_access_secret' } } ``` ## 📊 数据库设计 ### 核心数据表(15张) **用户数据表组** - `sys_user` - 用户基础信息 - `user_health_info` - 用户健康信息 - `user_diet_habits` - 用户饮食习惯 - `user_nutrition_goal` - 用户营养目标 **菜品数据表组** - `dish_info` - 菜品基础信息 - `dish_nutrition` - 菜品营养成分 - `dish_ingredients` - 菜品食材关联 - `dish_steps` - 菜品制作步骤 - `dish_tags` - 菜品标签 **用户行为表组** - `user_ratings` - 用户评分记录 - `user_favorites` - 用户收藏记录 - `user_diet_records` - 用户饮食记录 - `nutrition_plans` - 营养规划记录 **系统配置表组** - `banner_info` - 轮播图配置 - `nutrition_reference` - 营养参考值 ## 📚 文档 - [API接口文档](./Dietify-App-master/API接口文档.md) - 完整的API接口规范 - [项目完成总结](./Dietify-App-master/项目完成总结.md) - 详细的项目实现说明 - [系统架构说明](./Dietify-App-master/系统架构详细说明.md) - 系统架构设计文档 - [数据库设计](./Dietify-App-master/数据库设计.md) - 数据库表结构设计 ## 🔗 在线演示 - **移动端H5**: http://localhost:8080/h5 - **后台管理**: http://localhost:8080/admin - **API文档**: http://localhost:8080/swagger-ui.html **演示账号**: - 管理员: admin / admin123 - 普通用户: user / user123 ## 📱 系统截图 ### 移动端界面 - 智能推荐页面 - 营养规划页面 - 菜品搜索页面 - 用户中心页面 ### 后台管理界面 - 数据统计概览 - 用户管理界面 - 菜品管理界面 - 系统监控页面 ## 🎯 项目亮点 1. **算法创新** - 改进的UPICF推荐算法,提升推荐准确率 2. **营养科学** - 基于权威营养标准的科学配餐 3. **用户体验** - 跨平台一致的用户体验 4. **架构合理** - 三层架构设计,职责清晰 5. **功能完整** - 覆盖饮食推荐全流程 6. **扩展性强** - 模块化设计,易于扩展 ## 🤝 贡献指南 1. Fork 本仓库 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 打开 Pull Request ## 📄 开源协议 本项目基于 [MIT](LICENSE) 协议开源。 ## 👥 作者 - **项目团队** - *系统设计与开发* ## 🙏 致谢 - 感谢若依开源框架提供的基础架构支持 - 感谢UniApp团队提供的跨平台解决方案 - 感谢《中国食物成分表》提供的营养数据支持 ## 📞 联系方式 如有问题或建议,请通过以下方式联系: - 📧 Email: dietify@example.com - 💬 QQ群: 123456789 - 📱 微信: dietify-support --- ⭐ 如果这个项目对你有帮助,请给个 Star 支持一下! **注意**: 本项目为演示版本,生产环境使用前请完善安全配置和性能优化。