当前位置:网站首页>听书项目总结
听书项目总结
2022-08-09 14:36:00 【林纾y】
一、项目简介
1.项目背景
当今社会,人们在高速高效的工作与生活节奏下,需要一定的放松与娱乐,而有声读物、音乐故事等为人们提供了一种很好的休闲方式。在这里,听书作为一个听音乐与创作音乐的平台,也在有声读物方面也为人们提供了一个不错的选择。
2.项目描述
访问听书平台,用户可以直接挑选对应专辑进行歌曲的播放,同时在登录创作中心后还可以进行自己的创作,可以通过上传与录制音频,创建专辑绑定音频来生成自己的音频与音频专辑。
二、项目功能
1.技术栈
Java、Servlet、Json、Ajax、HTML、MySQL、MediaDevices等
2.主要功能
针对不同用户有不同功能(普通用户+UP主)
1)普通用户:无需登录就可使用,数据库中不保存这类用户信息
a.直接访问首页,查看全部专辑并选择喜欢的专辑进行音频播放
b.游客可以登录创作中心注册成为UP主
2)UP主:需要登陆后使用,数据库中保存着这类用户信息
进行登录、注册、退出操作
上传音频、录制音频、查看音频列表
创建专辑、绑定音频、显示专辑列表(包含专辑发布状态等
三、准备工作
整体框架:项目整体基于HTTP协议,前端采用HTML+JS+CSS来进行页面的整体布局,后端采用分层结构,分为Servlet层、Service层、Repo层、Dao层的设计,便于分类设计。
| 前端 | HTML+JS+CSS | 整体对页面进行布局 |
| 后端 | servlet对象 | 处理过程的对象,动态资源,负责处理HTTP的输入输出 |
| service对象 | 当数据来自多张表时用于组织结构 | |
| repository对象 | Dao层,单表直接访问数据库的相关操作,直接使用SQL对数据库进行增删查改 | |
| date_object(DO)对象 | 描述从数据库中直接取出来的对象 | |
| view_object(VO)对象 | 描述展示出去的数据,一般通过JSON做序列化 |
库表创建:
| 用户表users | uid | username | password | ||
| 音频表tracks | tid | uid | title(标题) | type(类型) | content(内容,二进制形式) |
| 专辑表albums | aid | uid | title(标题) | cover(封面) | state(发布状态) |
| 关系表relations | rid | aid | tid |
四、功能点

web资源:
| 功能 | 路径 | 资源 | |
| 首页 | 展示专辑 | /index.html | 静 |
/js/index.js | 静 | ||
/album-list.json | 动 | ||
| 播放页 | 播放专辑中歌曲 | /play.html?aid= | 静 |
/js/play.js | 静 | ||
/album-detail.json?aid= | 动 | ||
| 用户管理 | 注册 | /studio/user/register.html | 静 |
/studio/user/register.do | 动 | ||
登录 | /studio/user/login.html | 静 | |
/studio/user/login.do | 动 | ||
退出 | /studio/user/quit.do | 动 | |
| 音频管理 | 上传音频 | /studio/track/upload.html | 静 |
/studio/track/upload.do | 动 | ||
录制音频 | /studio/track/record.html | 静 | |
/studio/track/js/record.js | 静 | ||
/studio/track/record.json | 动 | ||
音频列表 | /sudio/track/list.html | 静 | |
/sudio/track/js/list.js | 静 | ||
/sudio/track/list.json | 动 | ||
| 专辑管理 | 创建专辑 | /studio/album/create.html | 静 |
/studio/album/create.do | 动 | ||
专辑列表 | /studio/album/list.html | 静 | |
/studio/album/js/list.js | 静 | ||
/studio/album/list.json | 动 | ||
展示已关联音频 | /studio/album/bind.html?aid= | 静 | |
/studio/album/js/bind.js | 静 | ||
/studio/album/bind.json?aid= | 动 | ||
绑定新的音频关联 | /studio/album/add.html?aid= | 静 | |
/studio/album/js/add.js | 静 | ||
/studio/album/candidate.json?aid= | 动 | ||
/studio/album/add.do | 动 | ||
专辑状态—发布专辑 | /sudio/album/publish.do?aid= | 动 | |
专辑状态—下线专辑 | /sudio/album/withdraw.do?aid= | 动 |
边栏推荐
- 深圳堡垒机厂家有哪些?重点推荐哪家?
- SMI 与 Gateway API 的 GAMMA 倡议意味着什么?
- *1-1 OJ 56 Hamming Distance
- How does the JVM judge that an object is useless
- 太厉害了!华为大牛终于把MySQL讲的明明白白(基础+优化+架构)
- 论文笔记CIRS
- *2-3 Upgraded version of OJ 1164 missile interceptor
- 拒绝“重复造轮子”,百度EasyDL让你玩转AI定制开发
- What is the cost of small program development and production?Three development methods cost analysis!
- simulink仿真pid控制伺服系统
猜你喜欢
随机推荐
*3-4 CCF 2014-09-3 String matching
The code implementation of chess
MySQL锁机制和锁算法
同步锁synchronized追本溯源
resNet_model—定义残差网络模型
Assembly language learning (1)
*5-1 CCF 2015-03-1 Image rotation
概率论基础知识整理 | 随机向量
Architect's learning experience summary
BVT测试(版本验证测试、冒烟测试)和Daily build
C语言程序设计笔记(浙大翁恺版) 第三周:判断
VMWare does not use easy install, install ISO manual manually
Assembly language learning (3)
len()的使用
【微服务】nacos注册中心和配置中心详解
Analysis of select principle in golang
VMWare不使用简易安装,手动安装ISO操作手册
*1-4 OJ 605 Gray Code
*2-4 Daily temperature *2-5 Rainwater
Hudi Spark-Shell 实战









