
一、项目简介校园社团推荐系统是一套基于 Spring Boot 3 Vue 3 MySQL 的前后端分离系统面向学生用户与后台管理员两个角色。系统提供社团浏览、活动报名、智能推荐、后台数据管理等核心功能其中推荐模块采用混合推荐算法协同过滤 基于内容 热度根据用户行为动态计算社团推荐列表。前端通过 Vue Router 实现路由守卫按角色STUDENT/ADMIN控制页面访问权限后端基于 JWT 完成身份认证与接口拦截。整体架构清晰适合作为课程设计、毕业设计或 Spring Boot 3 Vue 3 全栈项目的学习与二次开发参考。二、技术栈技术说明后端框架Spring Boot 3.xORMMyBatis-Plus含分页插件、自动填充、逻辑删除权限认证JWTjjwt 生成/校验 Token 拦截器AuthInterceptor前端框架Vue 3Composition API script setup状态管理PiniauserStore 管理登录状态UI 组件库Element Plus表格、表单、弹窗、分页、上传、日期选择器等路由Vue Router 4createWebHistory 路由守卫构建工具Vite数据库MySQLMyBatis-Plus 自动建表逻辑删除字段 deleted密码加密MD5 固定盐值campus-salt三、功能模块普通用户端注册与登录填写用户名、密码、昵称、性别、学院、专业、兴趣标签多选注册成功后自动跳转登录页登录后根据角色STUDENT/ADMIN跳转不同首页。首页浏览查看热门社团按成员数降序限 8 条、最新活动按创建时间降序限 6 条、置顶公告按置顶优先级 时间降序限 5 条数据来自公开接口 /api/front/home。社团列表分页浏览所有已上架社团状态为 1支持按关键字名称/描述模糊匹配和分类学术科技/文化艺术/体育运动/志愿公益/创新创业/兴趣爱好筛选默认按评分降序排列。社团详情查看社团基本信息名称、logo、分类、标签、口号、简介、成员数、评分、联系方式、活动地点、封面图查看社团成员列表及其角色与状态查看当前用户在该社团的申请/加入状态未申请/待审核/已通过/已拒绝。社团互动点击“加入社团”提交申请状态为待审核点击“点赞”记录 LIKE 行为权重 3.0点击“收藏”记录 COLLECT 行为权重 4.0所有行为均写入 user_behavior 表用于推荐计算。活动列表分页浏览所有活动支持按关键字搜索标题默认按创建时间降序排列。活动详情查看活动标题、描述、封面、地点、开始/结束时间、最大参与人数、当前参与人数、状态报名中/进行中/已结束。活动报名在活动详情页点击“报名”按钮系统校验活动是否存在、状态是否为报名中、当前人数是否未满通过后 currentParticipant 加 1 并返回成功提示。智能推荐进入推荐页系统根据当前用户的浏览/点赞/收藏/加入行为结合协同过滤余弦相似度计算相似用户、内容推荐TF-IDF 提取社团特征与用户兴趣匹配、热度推荐成员数 评分按混合权重冷启动时 α0.1 β0.5 γ0.4有足够行为时 α0.4 β0.35 γ0.25计算得分返回 TopN 推荐社团列表。我的社团查看当前用户已加入状态为已通过的社团列表数据来自 /api/club/my 接口。个人中心查看个人信息用户名、昵称、头像、邮箱、手机、性别、学院、专业、年级、个人简介、兴趣标签编辑个人信息除密码和角色外的所有字段修改密码需验证原密码新密码使用 MD5 加盐加密。公开统计首页底部显示社团总数状态为 1 的社团和活动总数数据来自 /api/front/stats。管理员端登录与权限控制管理员使用账号密码登录后端校验后返回 JWT token 和用户信息前端根据 roleADMIN 显示后台入口路由守卫拦截非管理员访问后台页面。控制台概览查看系统总用户数、总社团数、总活动数、已通过成员总数数据来自 /api/stats/overview。用户管理分页查看所有用户列表支持按昵称/用户名搜索关键字支持新增用户用户名唯一性校验、编辑用户信息可重置密码、删除用户逻辑删除。社团管理分页查看所有社团含未上架支持按名称搜索关键字新增社团填写名称、分类、口号、标签、简介、封面、最大人数、状态、联系方式、活动地点编辑社团信息删除社团逻辑删除。活动管理分页查看所有活动支持按标题搜索关键字新增活动填写标题、关联社团 ID、描述、封面、地点、开始/结束时间、最大人数、状态编辑活动信息删除活动逻辑删除。公告管理分页查看所有公告列表按置顶优先级 时间降序新增公告标题、内容、是否置顶编辑公告删除公告逻辑删除。标签管理查看所有标签列表新增标签名称、分类删除标签物理删除。成员审核查看指定社团的所有成员申请含待审核/已通过/已拒绝审核操作通过状态改为 1社团 memberCount 加 1或拒绝状态改为 2。数据统计查看社团分类分布按分类分组统计数量查看用户行为类型分布VIEW/LIKE/COLLECT/JOIN/RATE 各类型次数查看 Top10 热门社团按成员数降序限 10 条。文件上传管理员在新增/编辑社团或活动时可通过上传组件将图片上传至服务器 /uploads/ 目录返回可访问的 URL 路径。四、项目总结本系统的技术亮点集中在推荐算法的落地实现与前后端分离架构的完整实践。后端基于 Spring Boot 3 MyBatis-Plus 提供 RESTful APIJWT 拦截器统一处理鉴权逻辑删除与自动填充简化了数据维护前端采用 Vue 3 Composition API Pinia Element Plus通过路由守卫实现基于角色的页面访问控制。推荐模块融合了协同过滤、内容推荐与热度推荐三种策略并针对冷启动场景动态调整权重是一个可运行、可扩展的推荐系统示例。项目结构清晰、注释完整适合作为社团管理类系统的二次开发基础也可作为学习 Spring Boot 3 Vue 3 全栈开发、推荐系统入门、前后端分离项目的实战参考。界面展示交付内容本项目为完整交付包含完整后端源码完整前端源码数据库初始化脚本SQL万字项目文档设计文档 / 论文可作课程设计、毕业设计参考获取完整源码完整前后端源码 数据库脚本 万字项目文档见 Gitee 仓库https://gitee.com/kangxihuang/src-K288