SpringBoot2+Vue3+MySQL 美食分享平台源码 前后端分离实战项目

📅 2026/8/1 22:02:24 👁️ 阅读次数 📝 编程学习
SpringBoot2+Vue3+MySQL 美食分享平台源码 前后端分离实战项目

一、项目简介

本项目是一个基于 Spring Boot 2 + Vue 3 + MySQL 技术栈开发的前后端分离美食分享平台。系统采用经典的前后端分离架构,后端提供 RESTful API 接口,前端通过 Vue 3 单页应用进行交互。平台包含普通用户端和管理员端两大角色:普通用户可完成注册登录、浏览探索美食帖子、发布与管理自己的内容、进行点赞收藏评论等社交互动,并接收实时通知;管理员则负责平台的内容审核、用户管理、分类维护和整体数据概览。系统内置了基于协同过滤的智能推荐模块,能够根据用户的点赞行为推荐可能感兴趣的美食内容。

二、技术栈

技术分类说明
后端框架Spring Boot 2.7.x
ORMMyBatis-Plus 3.5.x
权限认证JWT (jjwt) + 自定义拦截器
前端框架Vue 3 (Composition API) + Vue Router 4
状态管理Pinia
UI 组件库Element Plus
构建工具Vite
数据库MySQL 8.x
工具库Hutool (MD5加密)、Lombok

三、功能模块

管理员端

  • 数据概览:统计平台用户总数、帖子总数、评论总数,以卡片形式展示在仪表盘首页,便于管理员快速掌握平台运营规模。
  • 用户管理:分页加载用户列表,支持按用户名或昵称关键词模糊搜索,可对指定用户执行启用/禁用操作,禁用后该用户无法登录系统。
  • 内容审核:查看所有帖子列表,支持按帖子状态(待审核/已通过/已下架)筛选及关键词搜索,对待审核帖子执行通过或下架操作,审核结果自动生成通知推送给作者。
  • 评论管理:分页查看全平台所有评论,支持按内容关键词搜索定位违规评论,可一键删除违规评论,删除后同步清理嵌套回复。
  • 分类管理:维护美食分类体系,支持新增分类(填写名称、图标、排序号)、编辑分类信息、删除分类(删除前校验该分类下是否存在帖子)。

普通用户端

  • 用户注册:填写用户名、密码、昵称、邮箱完成账号注册,密码经 MD5 加密存储,注册成功后自动跳转至登录页。
  • 用户登录:输入用户名和密码,后端校验通过后生成 JWT Token 并返回用户基本信息,前端将 Token 持久化用于后续请求鉴权。
  • 首页浏览:展示分类列表、最新美食帖子(8条)和热门帖子(按点赞数降序取6条),为用户提供多维度内容入口。
  • 探索美食:支持按分类筛选、按标题或摘要关键词搜索美食帖子,列表采用分页加载,每页固定条数,方便浏览大量内容。
  • 帖子详情:展示帖子完整正文、封面图、难度等级、烹饪时间、分步骤图文教程(每步含文字说明和配图)以及作者信息,支持点赞、收藏、评论操作。
  • 发布美食:填写标题、封面图、摘要、正文内容、难度、烹饪时间、所属分类,并动态添加多步骤图文教程(步骤说明 + 步骤图片),提交后进入待审核状态。
  • 编辑帖子:对已发布的帖子修改标题、封面、内容、步骤等字段,编辑保存后帖子自动重新进入待审核状态,确保内容合规。
  • 删除帖子:删除自己发布的帖子,后台级联删除该帖子关联的步骤记录、点赞记录和收藏记录,保持数据一致性。
  • 点赞帖子:对任意帖子执行点赞/取消点赞操作,点赞状态实时更新并同步刷新帖子的点赞数,同时向帖子作者推送点赞通知。
  • 收藏帖子:收藏/取消收藏感兴趣的美食帖子,收藏数实时更新,收藏成功后通知帖子作者,方便作者感知内容受欢迎程度。
  • 我的帖子:分页查看当前用户发布的所有帖子列表,展示帖子状态(待审核/已通过/已下架),便于用户管理自己的内容资产。
  • 我的收藏:分页查看当前用户收藏的所有帖子列表,点击可快速跳转至帖子详情页。
  • 评论帖子:对帖子发表评论,支持回复他人评论形成嵌套评论树结构,评论内容实时展示在详情页评论区。
  • 删除评论:删除自己发布的评论,管理员可以删除任意用户的评论,删除时同步移除该评论下的所有子回复。
  • 通知列表:分页查看系统通知,涵盖点赞、收藏、评论、审核结果四类通知,每条通知展示触发用户、关联帖子和时间。
  • 标记已读:支持一键将所有未读通知标记为已读,减少红点提示干扰。
  • 未读计数:顶部导航实时展示未读通知数量,用户无需刷新即可感知新消息。
  • 个人资料:查看并编辑个人昵称、头像、邮箱、手机号等基础信息,修改后即时生效。
  • 修改密码:输入原密码和新密码完成登录密码修改,原密码校验通过后以 MD5 加密存储新密码。
  • 智能推荐:基于协同过滤算法,根据当前用户的点赞行为历史计算相似用户,推荐相似用户点赞过的且当前用户未交互过的美食帖子。
  • 文件上传:支持上传图片文件(封面图、步骤图、头像等),后端存储后返回可访问的 URL 地址供前端直接引用。

四、项目总结

本项目是一个功能完整、代码结构清晰的前后端分离实战项目。技术亮点在于:后端采用 Spring Boot 2 + MyBatis-Plus 组合,配合 JWT 自定义拦截器实现无状态鉴权;前端使用 Vue 3 Composition API + Pinia + Element Plus,组件化程度高;系统内置了通知推送、嵌套评论、协同过滤推荐等进阶功能,覆盖了社区类平台的典型业务场景。项目附带数据库初始化脚本和万字开发文档,非常适合作为 Java 全栈学习者、毕业设计选题以及中小型内容社区二次开发的基础脚手架。

界面展示

交付内容

本项目为完整交付,包含:

  • 完整后端源码
  • 完整前端源码
  • 数据库初始化脚本(SQL)
  • 万字项目文档(设计文档 / 论文,可作课程设计、毕业设计参考)

获取完整源码

完整前后端源码 + 数据库脚本 + 万字项目文档见 Gitee 仓库:https://gitee.com/kangxihuang/src-K204