Vibe Music 是一个前后端分离的在线音乐平台,包含用户端音乐播放器、后台管理系统和 Spring Boot 后端服务三大部分。用户可以在线搜索、播放、收藏和评论音乐,管理员可以在后台维护曲库与用户数据,平台还内置了一个基于大模型的 AI 音乐助手(VibeAgent)。
- 浏览与搜索歌曲、歌手、歌单,支持核心播放控制
- 用户注册 / 登录(JWT),个人资料编辑与头像上传
- 收藏歌曲与歌单、发表评论与点赞、歌曲下载
- 基于听歌历史的个性化推荐
- 暗黑模式切换
- 用户管理(查看、启用 / 禁用账号)
- 歌手、歌曲、歌单的增删改查与资源管理
- 轮播图管理、用户反馈处理
- RESTful API + JWT 认证,基于角色的路径权限控制(ROLE_ADMIN / ROLE_USER)
- MinIO 对象存储管理音频、图片等媒体文件上传
- Redis 缓存(注解缓存统一 10 分钟有效期)、邮件服务
- VibeAgent:基于 Spring AI + 阿里云百炼(DashScope)的 AI 音乐助手,可通过工具调用查询真实曲库(按关键词搜歌、按风格推荐、热门歌曲),支持 SSE 流式对话与多轮会话记忆
| 部分 | 技术 |
|---|---|
| 用户端 / 管理端 | Vue 3、TypeScript、Vite、Pinia、Element Plus、Tailwind CSS、Axios、Artplayer |
| 管理端模板 | vue-pure-admin、ECharts |
| 后端框架 | Spring Boot 3.5.16、Java 17、Maven 多模块 |
| 数据层 | MyBatis-Plus、MySQL、Druid 连接池、Redis |
| 安全 | JWT、角色路径权限映射 |
| 存储 / 服务 | MinIO 对象存储、Jakarta Mail 邮件服务 |
| AI | Spring AI 1.1.2、Spring AI Alibaba(DashScope / 通义千问) |
| 包管理 | pnpm(前端)、Maven(后端) |
vibe-music/
├── vibe-music-backend/ # 后端(Maven 多模块)
│ ├── vibe-music-server/ # 主应用:controller / service / mapper / config / agent,可执行 fat jar
│ ├── vibe-music-model/ # 数据模型:entity / dto / vo
│ └── vibe-music-common/ # 公共模块:常量 / 枚举 / 统一返回结果 / 工具类
├── vibe-music-client/ # 用户端前端(Vue 3 + Vite)
├── vibe-music-admin/ # 管理端前端(基于 vue-pure-admin)
更详细的文档:如何开始
- JDK 17+、Maven
- Node.js ≥ 18、pnpm≥9
- MySQL、Redis、MinIO
cd vibe-music-backend
# 修改 vibe-music-server/src/main/resources/application-dev.yml 中的
# MySQL / Redis / MinIO / 邮箱 / DashScope API Key 配置
./mvnw spring-boot:run -pl vibe-music-servercd vibe-music-client
pnpm install
pnpm devcd vibe-music-admin
pnpm install
pnpm devThis project is a derivative work based on the original by Alex-LiSun, licensed under the MIT License. Modifications by zl1nq are also released under the MIT License.