当前位置:网站首页>听书项目总结
听书项目总结
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= | 动 |
边栏推荐
猜你喜欢

The code implementation of chess

运维--常用中间件

Zero Time Technology | Nomad cross-chain bridge theft of 180 million US dollars incident analysis

Docker安装MySQL详细步骤

探索进军元宇宙的代表性企业

*1-2 OJ 190 run-length code

OpenCV笔记整理【视频处理】

太厉害了!华为大牛终于把MySQL讲的明明白白(基础+优化+架构)

Meta 发布 1750 亿聊天机器人,亿万富翁老板小扎被「他」疯狂吐槽!

【DevOps】jekinsBuild step 'Execute shell' marked build as failure
随机推荐
外贸软件如何提升进出口公司业绩 实现降本增效
08-Lock版的生产者消费者问题
shell提取ip地址
Introduction to JUC Containers
概率论基础知识整理 | 随机变量
30分钟使用百度EasyDL实现健康码/行程码智能识别
【DevOps】jekins部署(一)
What is the cost of small program development and production?Three development methods cost analysis!
第五讲 测试技术与用例设计
*3-2 CCF 2014-09-2 drawing
Regular expression combat: the latest Douban top250 crawler super detailed tutorial
C语言程序设计笔记(浙大翁恺版) 第五周:循环控制
[manjaro]更新后内核文件加载失败
ORDER BY clause is invalid in views, inline functions, derived tables, subqueries, and common table expressions unless TOP, OFFSET, or FOR XML is also specified
Simulink simulation pid control servo system
从TRPO到PPO(理论分析与数学证明)
Assembly Language Learning (6) Curriculum Design 1
nav标签的作用
[manjaro] updated kernel file loading failure
计算成像技术