基于Spring Boot+Vue3的烹饪交流学习系统 设计与实现

张开发
2026/4/6 7:18:42 15 分钟阅读

分享文章

基于Spring Boot+Vue3的烹饪交流学习系统 设计与实现
基于 Spring Boot Vue3 的烹饪交流学习系统 设计与实现一、项目概述随着人们对烹饪学习与交流需求的增加传统线下学习模式在菜谱管理、内容发现、交流共享与个性化推荐等方面存在明显不足。为此本项目基于 Spring Boot Vue3 技术栈构建一套烹饪交流学习平台前后端分离旨在为普通用户与管理员提供一个包含菜谱发布、智能推荐、学习交流、视频教学与排行榜等功能的数字化平台提升菜谱内容质量与用户学习体验。二、系统架构与技术栈前端Vue3 Element Plus管理端cookie-web-admin用户端cookie-web-user后端Java Spring Boot MyBatiscookie-boot数据库MySQL 8.x其它Node.js、npm/yarn、Maven、IntelliJ IDEA、Navicat系统采用前后端分离架构后端暴露 RESTful API前端通过统一接口调用并按角色管理员 / 普通用户展示不同页面与权限。三、主要功能3.1管理员功能需求1登录管理员通过个人账号登录后台管理系统。2个人信息管理管理员可以查看和修改个人基本信息姓名、联系方式、邮箱等保证账号信息的准确性。3密码修改管理员可以修改登录密码增强账号安全性。4用户管理对用户基本信息进行查看操作可以为用户重置密码删除用户以及停用违规用户账号。5菜谱管理管理员可以管理用户发布的菜谱内容主要包括审核、编辑、删除、查看详情等操作。对于菜谱质量管理管理员可以根据菜谱内容质量进行标记分类包括美图菜谱、精品菜谱、新手友好等标签同时标记菜谱难度等级为初级、中级或高级。此外在评论管理模块中管理员可以查看用户对菜谱的评论信息并对不合规的评论内容进行删除处理。6菜谱视频管理管理员在这里可以统一管理用户上传的做菜视频对于不合规的视频可以进行下架处理。7厨艺大比拼审核审核用户发布的厨艺大比拼信息并可删除不合规的信息。9统计分析分析点击数、收藏数、点赞数、评论数等维度信息比如Top收藏菜谱、Top10点赞菜谱好评最多的几个菜谱好评率等。10字典管理维护菜谱分类、口味、烹调方法等字典数据为前端选择控件提供统一数据来源。11公告管理发布、编辑、启用/停用公告向用户推送重要通知。3.2用户功能需求1注册与登录用户通过账号密码注册、登录用户端系统完善基础信息。2菜谱智能推荐用户选择食材、厨具后系统为用户按照菜谱难度推荐菜谱并推荐两道搭配菜点击菜谱进入菜谱详情页面里面介绍食材和制作步骤等信息在详情页展示制作视频。3菜谱学习与交流查看已发布的所有菜谱列表点击菜谱名称可以查看菜谱详情。可以点赞、收藏。做菜交流用户在这里上传用这个菜谱做的菜的图片、辅助文字进行描述也可以在这里上传自己的做菜视频供其他用户学习交流。4菜谱排行榜根据点赞数、收藏数、评价数展示Top10菜谱。5今天吃什么点击按钮随机抽取一道菜供用户参考。6厨艺大比拼用户可在此发布比赛包括比赛标题、时间、地点和要求等信息发布后待管理员审核通过后其他用户可以报名比赛。报名比赛后用户线下参与比赛。7公告用户在这里查看管理员发布的公告信息。8个人中心我的菜谱用户可以点击添加按钮来发布自己的菜谱包含菜谱分类、食材配方、制作步骤、制作视频等详细信息。发布后可通过编辑按钮修改菜谱内容同时可以查看管理员的审核信息或选择删除已发布的菜谱。历史记录查看之前点击过的菜谱列表,按照点击时间倒序排序。我的比赛用户可以查看自己发布的比赛支持编辑比赛内容、查看管理员审核信息或删除比赛。点击发布按钮可创建新的比赛活动。此外用户还可以查看已报名的比赛并对不需要参加的比赛进行退赛操作。个人信息修改个人信息。修改密码用户在这里修改账号密码。四、菜谱推荐算法1、 算法类型多维度加权评分算法这个推荐算法采用了多维度加权评分的方法类似于协同过滤和内容推荐的结合体。2、 主要流程1数据预处理阶段*// 获取候选菜谱只推荐审核通过的菜谱// 获取候选菜谱只推荐审核通过的菜谱ListTRecipecandidateRecipesgetCandidateRecipes(request);2 多维度评分计算对每个候选菜谱计算5个维度的得分食材匹配度 (35%权重)privateBigDecimalcalculateIngredientMatchScore(ListStringrecipeIngredients,ListStringselectedIngredients){intmatchedCount0;for(Stringselected:selectedIngredients){for(Stringrecipe:recipeIngredients){if(recipe.contains(selected)||selected.contains(recipe)){matchedCount;break;}}}BigDecimalmatchRatenewBigDecimal(matchedCount).divide(newBigDecimal(selectedIngredients.size()),2,RoundingMode.HALF_UP);returnmatchRate.compareTo(BigDecimal.valueOf(0.1))0?matchRate:BigDecimal.valueOf(0.1);}计算逻辑遍历用户选择的每种食材检查菜谱是否包含该食材模糊匹配计算匹配率匹配食材数 ÷ 用户选择食材总数最低保证0.1分避免完全不匹配器具匹配度 (25%权重)privateBigDecimalcalculateToolMatchScore(StringrecipeTools,ListStringselectedTools){intmatchedCount0;for(Stringselected:selectedTools){if(recipeTools.contains(selected)){matchedCount;}}returnmatchedCount0?BigDecimal.valueOf(0.3):newBigDecimal(matchedCount).divide(newBigDecimal(selectedTools.size()),2,RoundingMode.HALF_UP);}计算逻辑检查菜谱需要的器具是否在用户选择中如果完全不匹配给0.3的基础分容错性否则按匹配比例打分饮食平衡度 (20%权重)privateBigDecimalcalculateDietBalanceScore(ListStringrecipeIngredients){// 统计荤素比例intmeatCount0,vegetableCount0,stapleCount0;// 计算各类型食材得分BigDecimalmeatScorecalculateCategoryScore(meatCount,1,2);// 荤菜1-2份BigDecimalvegetableScorecalculateCategoryScore(vegetableCount,2,3);// 素菜2-3份BigDecimalstapleScorecalculateCategoryScore(stapleCount,1,2);// 主食1-2份returnmeatScore.add(vegetableScore).add(stapleScore).divide(BigDecimal.valueOf(3),2,RoundingMode.HALF_UP);}荤素分类映射荤菜猪肉、牛肉、鸡肉、鱼虾、鸡蛋等素菜各类蔬菜、豆腐等主食面食、米饭、面包等难度适配度 (10%权重)无偏好时初级菜谱0.9分中级0.7分有偏好时完全匹配1分不匹配0.6分时间适配度 (10%权重)根据用户设置的最大烹饪时间进行匹配在时间范围内1分超出0.5分3综合评分计算BigDecimaltotalScoreingredientScore.multiply(INGREDIENT_WEIGHT).add(toolScore.multiply(TOOL_WEIGHT)).add(dietBalanceScore.multiply(DIET_BALANCE_WEIGHT)).add(difficultyScore.multiply(DIFFICULTY_WEIGHT)).add(timeScore.multiply(TIME_WEIGHT));4 排序与推荐// 按得分降序排序 recipeScores.sort((a,b)-b.getTotalScore().compareTo(a.getTotalScore()));// 返回结果 RecipeRecommendationResponseDto responsenew RecipeRecommendationResponseDto();response.setMainRecipe(recipeScores.get(0).getRecipe());// 得分最高的作为主菜 response.setSideRecipes(recipeScores.subList(1,3));// 接下来2个作为搭配菜3、 算法优势精确匹配食材和器具的精准匹配度计算营养均衡自动分析荤素搭配比例个性化根据用户偏好进行难度和时间适配容错性强即使某些维度匹配度低也能给出合理推荐可扩展性权重可以根据需求动态调整4、 评分区间总得分范围0.0 - 1.0各维度得分0.0 - 1.0最低得分保证确保每个菜谱都有展示机会5、 实际效果用户选择土豆、猪肉、炒锅时土豆炖肉得分高食材器具完美匹配清炒土豆丝得分中等食材匹配但缺少肉类红烧排骨得分低缺少主要食材这个算法既保证了推荐的准确性又考虑了用户体验和营养均衡是一个实用性很强的智能推荐系统

更多文章