一、项目概述

1.1 项目背景

音乐是一门艺术,是由有组织的乐音来表达人们情感、反映人类现实生活情感的艺术。现代科技的发展使得人们可以利用网络随时随地的享受音乐,然而在当今互联网却很少有一个以音乐为媒介的社交平台。本开发团队想以“音乐+社交”的形式,开发一款集听歌、交友和讨论为一体的网上社区——“Violet”音乐社区。Violet多指紫罗兰,也可形容羞怯的人,本团队旨在通过此平台增强人们对音乐的交流,同时拉近人与人之间的距离。

1.2 技术路线

项目整体采用了B/S架构,并采用前后端分离技术。

前端使用 Vue.js + ElementUI + axios

后端使用 Flask+MySQL

1.3 实现情况

用户、歌曲歌单、圈子帖子、点赞、评论等模块都基本实现了,有小部分功能存在冗余,重复工作量,因为时间受限,没用将我们的设计全部实现。但总体设计中的绝大部分功能都 进行了实现,核心功能、主要业务可以运行。达到了我们立项的基本目标。

1.4 项目文档

1.5 项目源码

1.6 项目成果

二、个人工作总结

2.1 前期工作

在立项之初,我通过PowerDesigner设计数据结构与数据库。

2.2 中期工作

完成了歌曲歌单方面的后端编写,以及设计了歌曲歌单的懒导入方案(保证了本地歌单操作的快速,以及曲库的广度)。

通过歌单加载其信息以及包含歌曲的所有信息

搜索歌曲同时从网易云爬取歌曲,并去重创建歌手与专辑,与之匹配

歌曲播放请求会同时给歌曲及其歌单增加播放量,作为推荐排序的依据

2.2.1 后端接口工作

主要考虑简化前端的操作,当前端需要请求数据的时候,比如说请求歌单信息,我后端就根据歌单id,去获取歌单的所有信息,然后同时把歌单下所有的歌曲,还有所有的评论也一起返回给前端,在返回的歌曲信息中,歌曲的歌手与歌曲的专辑信息分别存在vsinger,vsongsheet中,也要整合起来将名字返回给前端输出,在返回评论的时候,根据现在的用户也要返回相应的点赞信息(是否点赞)。给我一个歌单id,我就要返回给前端所有的这么多信息,后端的各个模块都是类似的情况,一开始的代码,都是以实现功能为主,模块化地不是很好,返回的数据也不能满足前端需求(一开始有好多需求的确没有预测到),后面我把所有代码重构了,全都模块化了之后才将前端需求全部满足。

2.2.2 网易云歌曲的懒加载

因为我们曲库之中的歌曲,要加入歌单之后才能从歌单的渠道获取到,因此第一次一定使通过搜素获取到的,我的做法就是每次搜索的时候,从网易云爬取歌曲,再去重加入到数据库中,然后从数据库中获取数据,如果搜索过的关键字则跳过网易云爬取的过程,这样可以有效地加快反应速度,也使得曲库足够大。至于网易云的爬取工作,我是通过封装在我服务器上的爬取接口(之前的工作),简化了这个项目之中有关爬取的工作。

2.3 后期工作

完善及模块化整体后端代码(后端总负责人)。和前端同学一起改进了后端API接口,后端bug修复。

三、项目总结

3.1 对于前后端工作配合的理解

在写这个项目之前,在我的脑海里对于后端该如何给前端提供服务,一直都有两种构想,一种是将数据打散,一个请求一个数据,另一种是将数据打包,一个请求,将其整体返回前端。经过了这一次项目的实践,我知道了显然是后者更好,简化了前端代码,也减少了前后端传输数据的次数。

但是还不够,我本来设想是,查询歌单,就返回歌单,查询歌曲,就返回歌曲。实际上开始工作之后,负责前端的同学就告诉我,通过id查询歌单的时候,最好需要把歌单信息,以及歌单底下的歌曲全部返回,这样可以减少前端很多工作量。

3.2 在此次项目中吸取的经验

因为大家都是第一次写这样的项目,在真正动手之前,有很多困难没用预见,用之前开会上总结的后端接口能实现,开始工作后发现有更优的方案,然后再一起总结,这本身也是学习的过程。

经过这一次项目的实践,我对项目的开发有了更深的了解,对项目开发前后端相应的开发所需要花费的时间有了一定的概念,也对前端的工作方式有了一定了解,知道了如何整合数据减少前端工作量。通过这一次六人小组的团队协作,与团队成员的不断磨合,也锻炼了我的团队协作能力。

四、课程建议

这门课初期从《构建之法》与《人月神话》入门其实看着对软件工程的水平提升有限,但是看过的一些知识、方法确实留在脑子里,当我编程碰壁,走弯路,大量重复劳动的时候,自然而然地开始反思,修正自己的错误行为,最终在实践中提升软件工程水平。

老师与助教在整个项目过程中给了我们很大的帮助,在多次在班级、例会中都给了我们建设性的建议,让我们少走了许多弯路。

我对课程的建议:

1.平时可以有一些小测试,最好不算分,就是对期末考试的训练,毕竟想拿高分,期末考试也不能落下,还有就是降低期末考试的比例。
2.在课堂中,对于一些明确规定的图,给更多的一些应用的例子,比如说数据流图,网上例子有很多不同的标准,课件中的例子又不全,可以在课件中给更多一些的介绍,不然来回修改不得要领,那一堂课,好多同学都上得挺崩溃的。

Violet音乐社区 - 个人总结报告的更多相关文章

  1. Violet音乐社区 - 总结报告

    目录 一.项目概述 1.1 项目背景 1.2 编写目的 1.3 项目文档 1.4 项目源码 1.5 项目成果 二.个人工作总结 1.1 工作概览 1.1.1 作为项目组组长 1.1.2 作为项目组成员 ...

  2. Violet音乐社区需求分析说明书

    目录 一.引言 1.1 编写目的 1.2 开发背景 1.3 开发工具 二.项目需求 2.1 角色定义 2.2 模块划分 2.3 功能概述 2.4 数据流图 三.前端页面 四.软件要求 4.1 性能要求 ...

  3. Violet音乐社区设计文档

    目录 Violet音乐社区设计文档 一.引言 1.1 编写目的 1.2 开发背景 二.用例图设计 2.1游客实例设计 2.2 管理员实例设计 2.3 普通用户实例设计 三.类图设计 3.1 歌手类 3 ...

  4. Violet音乐社区界面原型手册

    目录 Violet音乐社区界面原型手册 一.引言 1.0 项目前阶段相关文档 1.1 编写目的 1.2 开发背景 二.界面原型展示 2.0 界面设计说明 2.1 首页 2.2 歌单/专辑/单曲界面 2 ...

  5. 网易云音乐APP分析

    网易云音乐-感受音乐的力量 你选择的产品是?  网易云音乐 为什么选择该产品作为分析? 之前用的一直是QQ音乐,但是有一天一个朋友分享了一首网易云上的音乐(顺便分享一下歌名:Drop By Drop) ...

  6. 使用率激增250%,这份报告再将 Serverless 推向幕前

    ​ 作者 | 望宸 来源 | Serverless 公众号 相比去年,国外 Serverless 的适用群体在迅速扩大,函数执行时长不断增加,使用方式也越加成熟,开发者工具也更加开放.本文是对 Dat ...

  7. AI音乐创作,让每一个人都成为音乐家

    从录音带.MP3到专业的耳机.音箱,随着音乐消费方式的不断升级,音乐创作的专业"门槛"也在AI技术的加持下逐渐大众化,创作者的创新设计.创作频率也在持续增强,能降低创作门槛且智能化 ...

  8. 如何利用Social Listening从社会化媒体中“提炼”有价值的信息?

    本文转自知乎 作者:苏格兰折耳喵 ----------------------------------------------------- 在本文中,笔者将会介绍大数据分析主要的处对象---社会化媒 ...

  9. OpenStack 企业私有云的若干需求(4):混合云支持 (Hybrid Cloud Support)

    本系列会介绍OpenStack 企业私有云的几个需求: 自动扩展(Auto-scaling)支持 多租户和租户隔离 (multi-tenancy and tenancy isolation) 混合云( ...

随机推荐

  1. Python--glob模块

    0.glob模块和通配符 glob模块最主要的方法有2个: 1.glob() 2.iglob() 以上2分方法一般和通配符一起使用,常用的通配符有3个: * :匹配零个或多个字符 ? :匹配任何单个的 ...

  2. css Backgroud-clip (文字颜色渐变)

    首先来瞄一下background-clip,这个属性是干嘛的? 顾名思义,背景裁剪...   按照我自己的理解就是背景的显示区域 此处粘上MDN的示例链接(嫌麻烦的,后面我也贴上截图)https:// ...

  3. 摄像头CMOS和CCD的比较

    转载自网络,在此做一下总结,仅供参考: 1.CCD每曝光一次,在快门关闭后进行像素转移处理,将每一行中每一个像素(pixel)的电荷信号依序传入“缓冲器”中,由底端的线路引导输出至 CCD 旁的放大器 ...

  4. ARTS-S EN0001-In tech race with China, US universities may lose a vital edge

    原文 The U.S. is still out in front of global rivals when it comes to innovation, but American univers ...

  5. iSensor APP 之 摄像头调试 OV5642 续集2

    参考上一篇博客 作为续集,主要测试 RAW格式下的 不同分辨率效果 iSensor APP 之 摄像头调试 OV5642 直接上图吧 720p 拍照效果

  6. OPPO R11刷机初体验

    刷机目的 最初打算是用旧手机搭一个服务器,首先想到的是刷一个Linux系统,但这太难了,我搞不定,然后就想着可以用一些软件比如KSWEB之类的来代替,但是想要访问80端口的话还是需要root,但是普通 ...

  7. 8种经常被忽视的SQL错误用法,你有没有踩过坑?

    1.LIMIT 语句 分页查询是最常用的场景之一,但也通常也是最容易出问题的地方.比如对于下面简单的语句,一般 DBA 想到的办法是在 type, name, create_time 字段上加组合索引 ...

  8. 第三次作业-Python网络爬虫与信息提取

    1.注册中国大学MOOC 2.选择北京理工大学嵩天老师的<Python网络爬虫与信息提取>MOOC课程 3.学习完成第0周至第4周的课程内容,并完成各周作业 过程. 5.写一篇不少于100 ...

  9. 一起学Vue之模板语法

    概述 Vue.js 使用了基于 HTML 的模板语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据.所有 Vue.js 的模板都是合法的 HTML ,所以能被遵循规范的浏览器和 HTM ...

  10. SAP QA32试图做UD,系统报错-工厂 BTYC中的 QM 基选设置需要维护

    SAP QA32 试图做UD,系统报错 - 工厂 BTYC 中的 QM 基选设置需要维护 - 检验批 10000062593,试图做使用决策,系统报错, 工厂 BTYC 中的 QM 基选设置需要维护 ...