基于SpringBoot+vue的协同过滤余弦函数的个性化美食(商城)推荐系统(爬虫Python)的设计与实现
1、项目的设计初衷:
随着互联网技术的快速发展和人们生活水平的不断提高,传统的美食消费模式已经无法满足现代消费者日益个性化和多样化的需求。在信息爆炸的时代,消费者面临着选择困难的问题——面对琳琅满目的美食选择,如何快速找到符合自己口味偏好、营养需求和消费预算的美食成为了一个痛点。同时,传统电商平台虽然商品丰富,但缺乏智能化的个性推荐机制,往往采用简单的热销排行或分类浏览,无法真正理解用户的个性化需求。因此,开发一套集成了智能推荐算法的个性化美食商城系统,能够通过用户行为分析、偏好学习和数据挖掘技术,为每位用户提供精准的美食推荐,不仅能提升用户的购物体验,还能帮助商家实现精准营销,具有重要的商业价值和社会意义。
本项目采用SpringBoot作为核心框架,结合Python的机器学习能力,构建了一个前后端分离的现代化Web应用系统。系统设计遵循模块化、高内聚低耦合的原则,将复杂的业务逻辑划分为管理端和用户端两大核心模块。管理端涵盖了首页统计、员工管理、用户管理、美食分类管理、美食管理、库存管理、订单管理、评论管理、留言板管理、轮播图管理以及公告管理等十一个功能模块,为系统管理员提供全方位的后台管理能力。用户端则专注于用户体验,包含首页、美食分类、推荐美食、热门美食、留言板、公告和用户中心七个核心功能模块。通过Python集成的推荐算法引擎,系统能够实时分析用户的浏览历史、购买记录、评价反馈等多维度数据,运用协同过滤、内容推荐和深度学习等先进算法,为用户生成个性化的美食推荐列表,真正实现千人千面的个性化服务体验。
1、【亮点功能】
1.Springboot+Vue+Element-UI+Mysql前后端分离
2.Echarts图表统计数据, 直观展示数据情况
3.发表评论后,用户可以回复评论, 回复的评论可以被再次回复, 一级评论可以添加图片附件\
4.爬虫数据1.8万+,地址美食天下_原创菜谱与美食生活社区,我所有的朋友都是吃货!
5.推荐美食列表展示, 使用协同过滤余弦函数 根据用户的评论, 收藏, 浏览历史数据进行推荐
6.数据导出和导入(文件格式为excel)
7.数据库优化: 使用 唯一索引, 联合索引, 外键关联, 视图,存储过程,函数,触发器
8.开发本项目过程中遇到的问题以及解决方法(视频形式阐述)
2、【技术栈】
1.后端开发语言java,框架Springboot, 开发工具IDEA
2.前端技术vue, html, css, 开发工具IDEA或者VSCODE
3.数据库使用mysql, 后端使用mybatis操作mysql, mybaits手写sql语句, 数据库表数量>10张
4.JWT验证身份并授权, 自定义注解, 拦截器, 切面, 前后端分离跨域访问
5.Element-UI, axios数据通讯交互, vue消息总线, flex样式布局, router路由
wangEditor富文本编辑器, Echarts图表统计数据
6.localStorage浏览器缓存存储用户信息 , 前端后端用户可同时在同一浏览器登录
7.数据库优化: 使用 唯一索引, 联合索引, 外键关联, 视图,存储过程,函数,触发器
3、【功能列表】
3.1、后台功能
1.登录, 修改登录用户的信息, 修改密码
2.首页统计 统计用户数量, 美食数量, 美食浏览量, 评论总数量
3.Echarts统计 用户注册统计(根据日期统计), 美食类型占比统计,美食销售额度统计
4.管理员管理, 管理员增删改查, 批量删除
5.用户管理, 用户增删改查, 批量删除
6.美食类型管理, 类型增删改查, 批量删除
7.美食管理, 美食增删改查, 批量删除, 富文本编辑器(上传图片, 视频), 美食指定多个类型,
美食视频介绍, 美食导出保存为excel格式, excel文件导入美食数据
8. 库存管理, 美食入库, 注意: 美食没有库存, 美食无法加入购物车,无法购买
9. 订单管理包括:显示各个状态的订单 全部订单,已付款订单,已发货订单,已收货订单, 已评价订单,
已退货订单; 订单操作: 发货, 查看评论, 回复评论
10.评论管理, 评论删改查, 批量删除, 一级评论可修改(内容,评分,图片), 二级评论只能修改内容;
二层展示评论内容, 一层展开显示所有二层评论; 删除一级评论连带删除所有二级评论, 删除二级评论只删除二级本身
11.轮播图管理, 轮播图增删改查, 批量删除
12.留言板管理, , 留言删改查, 批量删除, 一级留言可修改(内容,图片), 二级留言只能修改内容;
二层展示留言内容, 一层展开显示所有二层留言; 删除一级留言连带删除所有二级留言, 删除二级留言只删除二级本身
13.公告类型管理, 公告类型增删改查, 批量删除
14.公告管理, 公告增删改查, 批量删除
15.系统日志, 日志查删, 批量删除, 通过切面+注解方式记录日志
3.2、前台功能
1.登录, 注册, 修改登录用户的信息, 修改密码
2.轮播图展示
3.热门美食列表展示,推荐美食列表展示,推荐美食根据所有用户的评论,
收藏,浏览历史综合得分进行推荐
4.美食详情展示, 如果后台上传视频,详情页面可以播放视频
5.登录用户对进行 美食收藏,取消收藏
6.登录用户历史浏览足迹
7.根据美食关键字全局搜索美食列表, 分类显示美食列表
8.登录用户对美食进行评论(包含: 评论内容, 分数, 附件图片), 显示总评论数量
用户对已经评论的内容进行二级回复评论(只能评论内容),
用户可以把自己的评论删除, 如果删除一级评论,连带删除所有二级评论
非登录可以查看用户对美食的所有评论
9. 查看用户订单评论+商户回复列表
10.登录用户可以在留言板留言(包含: 留言内容, 附件图片), 显示总留言数量
用户对已经留言的内容进行二级回复留言(只能留言内容),
用户可以把自己的留言删除, 如果删除一级留言,连带删除所有二级留言
非登录可以查看用户的所有留言
11.公告通知轮播图,点击轮播图片,显示公告通知详情
公告通知按公告类型进行片区展示, 每个片区显示7条相应类型的公告通知数据, 点击可以查看公告通知详情
点击更多,分页列表显示相应类型下所有公告通知数据
12.用户中心 菜单包含[个人信息][修改密码][我的收藏][我的足迹][我的评论][我的留言]
13.菜单-个人信息 修改用户 昵称, 性别, 手机号码, 邮箱,头像 注: 手机号码, 邮箱不能与其他用户重复
14.菜单-修改密码 修改用户密码信息, 修改完成后重新登陆
15.购物车 显示用户加入购物车的所有美食,删除美食,修改购买美食数量,
勾选美食进行结算,选择收货地址,选择支付方式
16.我的订单 显示各个状态的订单 全部订单,已付款订单,已发货订单,已收货订单, 已评价订单,
已退货订单; 订单操作: 收货, 退货, 评价, 查看评论, 修改评论
17.收货地址管理 查询,新增,修改,删除用户收货地址,设置默认收货地址
18.菜单-我的收藏 根据 美食 名称查询收藏, 查看收藏美食详情, 删除收藏
19.菜单-我的足迹 根据 美食 名称查询历史足迹, 查看足迹美食详情, 删除足迹
20.菜单-我的评论 根据 美食 和 评论内容 条件查询评论记录, 修改一级评论(内容,评分,附件图片), 修改二级评论(只能内容)
删除一级评论连带删除所有二级评论, 删除二级评论只删除二级本身
21.菜单-我的留言 根据 留言 条件查询留言记录, 修改一级留言(内容,附件图片), 修改二级留言(只能内容)
删除一级留言连带删除所有二级留言, 删除二级留言只删除二级本身
2、项目设计技术:
Springboot + Mysql + Maven + Mybatis + Vue + JavaScript + Element-ui + Echarts + Python+ Jquery
部分技术介绍:
Spring Boot
Spring Boot 是一个用于简化 Spring 应用程序开发的框架。它提供了自动配置、嵌入式服务器和开箱即用的功能,使得开发者可以快速搭建和运行 Spring 应用程序。Spring Boot 减少了大量的配置工作,提高了开发效率。
MySQL
MySQL 是一个开源的关系型数据库管理系统,广泛用于 Web 应用程序的后端数据存储。它支持 SQL 语言,提供了高性能、可靠性和易用性。MySQL 适用于各种规模的应用程序,从小型网站到大型企业级应用。
MyBatis
MyBatis 是一个持久层框架,用于简化数据库操作。它通过 XML 或注解的方式将 SQL 语句与 Java 对象映射,使得开发者可以更方便地进行数据库操作。MyBatis 提供了灵活的 SQL 映射和强大的动态 SQL 支持。
Vue.js
Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。它易于集成到现有项目中,并且提供了响应式数据绑定和组件化开发的能力。Vue.js 的学习曲线较低,适合快速开发单页面应用(SPA)。
Element UI
Element UI 是一个基于 Vue.js 的组件库,提供了丰富的 UI 组件,适用于构建企业级应用。它具有一致的设计风格和良好的用户体验,支持主题定制和国际化。Element UI 使得前端开发更加高效和便捷。