# SoftwareEngineeringCourseDesign **Repository Path**: yc-software-engineering-group/software-engineering-course-design ## Basic Information - **Project Name**: SoftwareEngineeringCourseDesign - **Description**: 软件工程课程设计 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-18 - **Last Updated**: 2026-01-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README --- title: "软件工程课程设计" date: 2025/10/18 18:31 --- ## 软件工程课程设计 -> 在线音乐网站 ### 项目介绍 [在线音乐网站-星语课程网](https://star.jmhui.com.cn/p1/922.html#14.%E5%9C%A8%E7%BA%BF%E9%9F%B3%E4%B9%90%E7%BD%91%E7%AB%99) 本项目是一个在线音乐网站,用户可以在网站上搜索、播放和收藏音乐。网站提供了音乐的基本信息,包括标题、艺术家、专辑、时长等。用户可以注册和登录,享受个性化的音乐推荐。管理员通过后台管理系统管理音乐和歌手信息,包括添加、修改和删除操作,同时可以查看用户列表并进行管理等等 #### 目录结构 ```text . ├── admin/ # 后台管理系统后端(Spring Boot 项目) │ ├── pom.xml # Maven 项目配置文件 │ └── src/ │ └── main/ │ ├── java/ │ │ └── com/ │ │ └── example/ │ │ └── admin/ │ │ ├── AdminApplication.java # 应用程序入口类 │ │ ├── config/ # 配置类,包含安全配置、跨域配置等 │ │ │ └── CorsConfig.java │ │ ├── controller/ # 控制器层,处理HTTP请求 │ │ │ ├── AdminFavoriteController.java │ │ │ ├── AlbumController.java │ │ │ ├── AuthController.java │ │ │ ├── FileController.java │ │ │ ├── MusicController.java │ │ │ ├── SingerController.java │ │ │ ├── UserController.java │ │ │ └── UserFavoriteController.java │ │ ├── dto/ # 数据传输对象 │ │ │ ├── MusicRequestDTO.java │ │ │ └── MusicResponseDTO.java │ │ ├── entity/ # 实体类,对应数据库表结构 │ │ │ ├── Album.java │ │ │ ├── Music.java │ │ │ ├── MusicAlbumSinger.java │ │ │ ├── Singer.java │ │ │ ├── User.java │ │ │ └── UserFavorite.java │ │ ├── repository/ # 数据访问层 │ │ │ ├── AlbumRepository.java │ │ │ ├── MusicAlbumSingerRepository.java │ │ │ ├── MusicRepository.java │ │ │ ├── SingerRepository.java │ │ │ ├── UserFavoriteRepository.java │ │ │ └── UserRepository.java │ │ └── service/ # 业务逻辑层 │ │ ├── AdminFavoriteService.java │ │ ├── AlbumService.java │ │ ├── MusicAlbumSingerService.java │ │ ├── MusicService.java │ │ ├── SingerService.java │ │ ├── UserFavoriteService.java │ │ └── UserService.java │ └── resources/ # 资源文件目录 │ ├── application.yml # 应用配置文件 │ ├── clear_data.sql # 清空数据SQL │ ├── data.sql # 初始化数据SQL │ └── schema.sql # 数据库表结构定义SQL ├── admin-frontend/ # 后台管理系统前端(Vue.js项目) │ ├── package.json # 项目依赖配置文件 │ ├── package-lock.json │ ├── index.html │ ├── vite.config.js │ └── src/ │ ├── App.vue # 根组件 │ ├── main.js # 应用入口文件 │ ├── api/ # API接口定义和请求封装 │ │ └── index.js │ ├── layout/ # 页面布局组件 │ │ └── index.vue │ ├── router/ # 路由配置 │ │ └── index.js │ ├── styles/ # 全局样式文件 │ │ └── index.scss │ └── views/ # 页面视图组件 │ ├── albums/ │ │ └── index.vue │ ├── dashboard/ │ │ └── index.vue │ ├── favorite/ │ │ └── index.vue │ ├── login/ │ │ └── index.vue │ ├── musics/ │ │ └── index.vue │ ├── singers/ │ │ └── index.vue │ └── users/ │ └── index.vue ├── music-online/ # 用户前端(Vue.js项目) │ ├── package.json # 项目依赖配置文件 │ ├── package-lock.json │ ├── index.html │ ├── vite.config.js │ └── src/ │ ├── App.vue # 根组件 │ ├── main.js # 应用入口文件 │ ├── api/ # 前台API接口定义 │ │ └── index.js │ ├── components/ # 可复用组件 │ │ ├── MusicCard.vue │ │ └── MusicPlayer.vue │ ├── router/ # 前台路由配置 │ │ └── index.js │ ├── stores/ # Pinia 状态管理 │ │ └── user.js │ ├── styles/ # 前台样式文件 │ │ └── global.scss │ └── views/ # 前台页面组件 │ ├── Favorites.vue │ ├── Home.vue │ ├── Login.vue │ ├── Profile.vue │ └── Search.vue ├── docs/ # 项目文档 │ ├── admin-test-cases.md # 后台管理系统测试用例 │ ├── api-design.md # API设计文档 │ ├── backend-class-diagram.md # 后端类图 │ ├── er-diagram.md # 数据库ER图 │ ├── system-architecture-diagram.md # 系统架构图 │ ├── system-design-specification.md # 系统设计说明书 │ ├── test-cases.md # 用户前端测试用例 │ ├── use-case-diagram-admin.md # 后台管理系统用例图 │ └── use-case-diagram-public.md # 用户前端用例图 ├── LICENSE # 开源许可证文件 ├── README.md # 项目说明文档 ├── 原型图.rp # (忽略) └── 在线音乐网站---需求分析文档.docx # (忽略) ``` ### 开发环境 - JDK 17 - Spring Boot 2.5 - MySQL 9.4.0 - Maven 3.6 - IDE: IntelliJ IDEA - Node.js 22.14.0 - 接口调试工具 : Postman - 前端框架: Vue.js 3.5.13 - 前端UI框架: Element Plus 2.8.8 - 绘图工具:Mermaid ### 项目部署 #### 数据库配置 1. 安装并启动MySQL数据库。 2. 创建数据库并导入初始数据,执行`schema.sql`和`data.sql`文件。 3. 修改`application.yml`文件中的数据库连接配置。 #### 后端部署 1. 使用Maven构建项目:`mvn clean install` 2. 运行Spring Boot应用:`mvn spring-boot:run` #### 前端部署 1. 分别进入 `admin-frontend` 和 `music-online` 目录。 2. 安装依赖:`npm install` 3. 如果存在依赖问题则运行:`npm audit fix` 4. 运行前端应用:`npm run dev` ### 功能介绍 1. 用户注册与登录 2. 音乐搜索、播放与收藏 3. 后台管理系统 - 音乐管理(CRUD) - 歌手管理(CRUD) - 用户管理(CRUD) - 专辑管理(CRUD) - 收藏管理(查看与删除) - 文件上传(音乐、封面、头像等) ### 未来改进方向 * **增强的播放列表功能:** * 允许注册用户创建、编辑、分享自己的个性化歌单。 * 基于用户听歌记录生成每日推荐或智能歌单。 * **社交与互动:** * 增加歌曲、专辑的评论和评分功能。 * 实现用户之间的关注系统,并可以查看好友的歌单或动态。 * **播放器体验升级:** * 增加歌词同步滚动显示功能。 * 提供多种播放模式(如随机播放、单曲循环)。 * 可视化音效频谱。 * **后台管理功能强化:** * 在仪表盘增加数据可视化图表,如用户增长、歌曲播放排行等。 * 增加更精细的权限管理系统(例如,区分内容管理员和用户管理员)。 * **技术与架构优化:** * 引入自动化测试(单元测试、集成测试),保障代码质量。 * 配置CI/CD (持续集成/持续部署) 流程,实现自动化构建和部署。 * 考虑将音乐文件存储迁移到对象存储服务 (如 AWS S3, MinIO),便于扩展和管理。