悦读FM——项目总结

  • 一、小前言
  • 二、立项——项目背景
  • 三、 项目的边界——可行性评估
  • 四、 音频管理功能预研
    • 1 .浏览器中录制和播放音频
    • 2.服务器接受音频
      • 1.Ajax介绍
      • 2.同源策略
  • 五、 数据建模——建库建表
    • 1.建库建表
    • 2.注意事项
      • 1.auto_increment是什么
      • 2.主键约束和唯一性约束
      • 3.为什么要在音频再加一个uuid
      • 4.Mysql中bolb类型数据
  • 六、 正式开发——后端接口实现
    • 1.准备阶段
    • 2.功能实现
      • 1.用户管理
      • 2.首页
      • 3.书籍管理
      • 4.章节管理
      • 5.音频管理
  • 七、总结和后续展望
  • 八、开源代码

一、小前言

悦读FM这个项目最主要的目的还是练习自己的技术,因为突然看到了别人的毕业论文是一个本地播放音频的题目,于是想了想,似乎在数据库存储音频视频这类东西时,自己没有关注过。同时也为了弥补在上个易班项目中没有练习过前端代码,于是自己动手也写了写网页,和易班项目不同的时这个总结时按照项目产生到完成的顺序来写,至于原因,还是那句话一切按照实际开发来。

二、立项——项目背景

不论那个项目从设计到落地肯定有一定的现实意义,而悦读FM的主要功能就是为用户提供可以听的图书资源,通过作者上传书籍,设置书籍章节再通过网页录制和章节绑定的声音。服务器对这些数据进行储存,所有用户都能通过网页来听书。次要功能就是登录,注册。对于没有注册的账号密码跳转到注册页面,对于已经登录的非作者用户只展示书籍章节音频列表,对已登录的作者用户展示,上传书籍,章节,音频功能。一个项目的出发点对于一个企业来说大多数考虑的是市场需求,对我来说更多的还是学习和练习。(其实也有现实意义,因为有人指导哈哈)悦读FM和易班对比来说,其实二者并没有很多差别,唯一在于易班可能是在已经搭建好的前后端框架下去实现后端的具体代码,而悦读FM项目中的音频采集和前端js的开发需要从头学起。

三、 项目的边界——可行性评估

所谓 项目的边界就是我要做什么?什么是核心功能,什么是辅助功能?
对于悦读FM这个项目来说本项目的核心是:书/章节的管理和对应章节音频数据的管理,登录功能也是要实现的一个功能但是不算是核心功能。
于是怎么确定项目边界呢?通常是我们站在用户的视角去思考用户的需求,根据这些需求去启发我们如何设计业务。
比如说:
1.匿名用户,可以查看所有的书的列表,为了选择出想听的书
2.作为已登陆的用户,可以上传一本书,为了让书被其他用户看到
3.作为一本书的上传者,可以录入新的章节,为了让被其他用户看到
4.作为一本书的上传者,可以为某个章节录入音频,为了让书背其他用户者
5.作为匿名用户,可以选择一本想听书,为了看到该书下有哪些章节
6.作为匿名用户,可以选择某个章节点击,听书
7.用户管理

这些实际应用到的场景都是可能会发生的,于是乎我们程序猿和产品经理就协商,那些功能可以实现?那些需要一些特定技术才能实现?那些功能可能目前实现不了等等?在悦读FM这个项目中除了书籍管理、章节管理、用户管理还有就是音频管理。前四个可能都很熟悉,但是音频管理是我需要预研的部分。

四、 音频管理功能预研

音频管理功能的核心就是:
怎么样在浏览器中录制和播放音频?
html5标准中支持 audio 标签,提供音频的URL链接即可
如何在浏览器进行音频的存储?
JavaScript中的mediarecorder进行声音的录制+保存(ES6)

1 .浏览器中录制和播放音频

到这就转头学学js:(也是用到学多少,所以我就直接在浏览器的开发者工具上搞了)JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的高级编程语言,多用于web网页开发。
1.变量的定义:js 没有变量类型,let 关键字可以指向任何类型的引用类型。
举例:2.方法的定义:关键字 function
举例:

3.js执行特点——事件驱动逻辑
简单来说所谓的事件驱动逻辑是把一件事件分成若干个小事件,通过执行这些小事件来完成。这些小事件有有序的。如果一个事件开始执行那么一定是执行完该事件再去执行别的事件。

但是js不是三言两语能介绍清楚的,在这过程中我也主要看了看官网上的教程,而且用的都是比较基本。(

java实操项目:悦读FM总结相关推荐

  1. java 转账_JAVA实操项目:转账接口设计

    原标题:JAVA实操项目:转账接口设计 在一个项目中,一般都会支付相关的业务,而涉及到支付必定会有转账的操作,转账这一步想起来算是比较关键的部分,这个接口的设计能力,也大致体现出一个人的水平. 昨天碰 ...

  2. 巨杉数据库学习笔记+巨杉数据库实操项目实践

    @TOC巨杉数据库学习笔记+项目实践心得 SequoialDB简介 SequoiaDB 巨杉数据库是一款金融级分布式数据库,主要面对高并发实时处理型场景提供高性能.可靠稳定以及无限水平扩展的数据库服务 ...

  3. 2020年Java实训项目【GUI学生信息管理系统】目录

    Java实训项目1:GUI学生信息管理系统 - 实训概述 Java实训项目2:GUI学生信息管理系统 - 系统概述 Java实训项目3:GUI学生信息管理系统 - 涉及知识点 Java实训项目4:GU ...

  4. Java实训项目:GUI学生信息管理系统(2019)【下】

    Java实训项目:GUI学生信息管理系统(2019)[下] 本篇目录 六.实现步骤 13.应用程序类 14.窗口界面类(JFrame)

  5. Java实训项目:GUI学生信息管理系统(2019)【中】

    Java实训项目:GUI学生信息管理系统(2019)[中] 本篇目录 四.涉及知识点 1.Java基本语法 2.Java流程控制

  6. Java实训项目:GUI学生信息管理系统(2019)【上】

    Java实训项目:GUI学生信息管理系统(2019)[上] 本篇目录 零.实训概述 1.实训目的 2.项目简介

  7. Java实训项目:GUI学生信息管理系统(2017)

    Java实训项目:GUI学生信息管理系统(2017) 实训目的:让学生综合运用J2SE有关知识开发[学生信息管理系统].主要涉及程序控制结构.面向对象编程.图形用户界面.Java数据库应用.MySQL ...

  8. JAVA实训项目:银行网银系统管理平台(含源码)

    JAVA实训项目:银行网银系统管理平台(含源码) 文章目录 JAVA实训项目:银行网银系统管理平台(含源码) 前言 一.项目功能需求描述以及相关技术的应用 相关技术应用 二.设计过程 系统流程图 1. ...

  9. Rust能力养成之(12)用Cargo进行项目管理:实操项目imgtool

    前言 上一篇,我们讲了 详谈Cargo.toml 用VSCode建立Rust开发环境 在本篇中,我们利用之前所学,进行一个实操项目. 正文 应该说,到现在我们对如何使用Cargo管理Rust项目已经有 ...

最新文章

  1. Sublime Text 3 插件的安装、升级和卸载
  2. python编程做什么工作-学习Python编程后在成都可以做哪些工作?
  3. 洛谷 P3805 manacher算法
  4. c语言font6x8,爱字体下载安卓版-iFont爱字体下载V5.9.8.6 安卓手机版-全新的手机字体软体西西软件下载...
  5. linux系统的数据库是本地吗,Linux下MySQL无法在本地以非root用户身份连接数据库...
  6. 13 个适合『中级开发者』练手的项目
  7. vue - blog开发学习1
  8. 转载:React Fiber架构(浅显易懂)
  9. 使用SQLQuery 在Hibernate中使用sql语句
  10. TensorFlow精进之路(三):两层卷积神经网络模型将MNIST未识别对的图片筛选出来
  11. 智慧≥智能+应用 2016智能交通展的科达不等式
  12. hypersion oracle_Oracle Hyperion财务管理之合并报表
  13. xss跨站攻击详讲 | 如何利用xss拿下一个站?
  14. python定义空数组_python定义二维数组
  15. 使用深度学习和物理约束求解偏微分方程
  16. iOS 中使用 webSocket
  17. Teamviewer被限制,被怀疑商业用途的解决办法。
  18. PageHelper 分页插件只用Page、不用PageInfo 的写法
  19. react本地储存_如何在React项目中利用本地存储
  20. 手把手教你通过端口映射,轻松搭建Windows远程桌面

热门文章

  1. JPG文件-水平分辨率、垂直分辨率
  2. arduino音乐播放器(蜂鸣器版)
  3. 引擎之旅 Chapter.1 高分辨率时钟
  4. English Learning - L2-7 英音地道语音语调 爆破音 [p] [b] [t] [d] [k] [g] 2023.03.13 周一
  5. h5页面 iOS 回退上一页面白屏,滑动页面后正常
  6. 读uCOSIII源码笔记
  7. python家乡美食与旅游景点导游推荐系统django源码介绍
  8. Windows预览体验计划0x80072ee7、0x0报错解决方法
  9. 让生活变成一个游戏 Habitica-超好玩的待办事项App
  10. idea 如何使用tomcat启动项目