随着数字音乐消费的普及,用户对在线音乐播放的便捷性和内容丰富度要求越来越高。本项目旨在搭建一个类似 QQ 音乐的全功能在线音乐平台,解决音乐爱好者在歌曲搜索、在线播放、歌单管理方面的核心需求。同时为运营人员提供后台管理系统,实现歌曲上传审核、批量上架/下架、数据管理等能力,打通内容生产到用户消费的完整链路。项目采用前后端分离架构,覆盖从用户注册登录到音频文件存储播放的完整业务流程。
点击空白处退出提示
随着数字音乐消费的普及,用户对在线音乐播放的便捷性和内容丰富度要求越来越高。本项目旨在搭建一个类似 QQ 音乐的全功能在线音乐平台,解决音乐爱好者在歌曲搜索、在线播放、歌单管理方面的核心需求。同时为运营人员提供后台管理系统,实现歌曲上传审核、批量上架/下架、数据管理等能力,打通内容生产到用户消费的完整链路。项目采用前后端分离架构,覆盖从用户注册登录到音频文件存储播放的完整业务流程。
项目分为用户端和管理后台两大模块。用户端包括:用户注册登录(JWT 认证)、歌曲搜索(多条件筛选+分页)、歌曲播放(音频文件流式加载+播放控制)、播放计数、歌单创建/编辑/删除/收藏、热门歌曲排行、个人资料管理等功能。管理后台包括:管理员独立登录认证、歌曲列表(分页+多维度筛选)、歌曲上传(拖拽上传+自动解析音频时长和元数据)、歌曲编辑/删除、单首及批量上架下架、批量删除等运营管理功能。前后端通过 RESTful API 交互,统一返回格式便于前端处理。
我负责项目的整体架构设计、后端开发(Spring Boot + MyBatis-Plus + MySQL)、前端开发(Vue 3 + TypeScript + Element Plus)以及部署配置。技术栈方面,后端使用 Spring Boot 3.2.5、MyBatis-Plus 3.5.7、Spring Security + JWT 无状态认证、BCrypt 密码加密、JAudioTagger 音频时长解析;前端使用 Vue 3 + TypeScript、Pinia 状态管理、Vue Router 4 路由守卫、Howler.js 音频播放、Axios 请求拦截。架构上,后端代码按 shared/client/admin 三层分包,接口 URL 明确区分 /api/client/ 和 /api/admin/ 前缀,认证体系采用双 Token 机制独立管理用户端和管理端会话。实现亮点包括:音频文件上传时自动解析时长、MyBatis-Plus 自动填充时间、前后端双 Token 拦截器自动识别路由分发、Element Plus 表格批量操作等。



评论