Violet音乐社区-总结


一、项目概况

1.1 项目背景

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

1.2 相关文档及各阶段项目链接

二、参与工作总结

2.1 工作概述

2.1.1 对团队贡献

在整个项目实现中,积极参与需求分析的讨论,能够及时发现当前模型存在的问题,并能够较好地与其他组员分析问题,提出解决问题的方法。为“Violet”音乐社区的最终完成出了一份力。

2.1.2 个人工作

在整个项目中,我负责前端的具体代码实现,设计api文档,以及前后端连接等工作,与组长配合比较默契。

2.2 具体工作介绍

2.2.1 参与确定项目的具体需求

确定了整个项目逻辑上分为音乐、社交两个方面,并以这两个大块为起点,划分出曲库、播放器、歌单、动态、圈子等附属需求。并设计了项目的用例图。

2.2.2 使用vue框架进行前端的具体代码编写

在项目demo的基础上,增加并完善了项目的其他模块。并延续了项目极简、"罗兰紫"的基调。在模块上具体负责了圈子、帖子、用户界面等的编写,和其他界面的维护。

2.2.2.1 圈子模块

圈子模块包含圈子列表界面圈子主页(圈子帖子列表)。圈子列表是社区所有圈子的预览页面,我使用圆形的图像来代表每个圈子,刻意选择不使用过多的装饰,一目了然又不累赘。圈子主页是一个圈子的主页面。包含圈子的简要信息以及圈子中的所有帖子。每个帖子将会显示其热度(参与量)、标题、内容摘要、发起人等信息。用户也可以在该页面选择加入/退出该圈子。我采用项目主色调"罗兰紫",并将每个帖子的回复数标记在主页上,让热度清晰的呈现给用户。

2.2.2.2 帖子模块

帖子模块包含帖子的预览界面,是帖子的详情页面,是本社区社交部分的核心区域之一.本页面包含在该帖子主题下,所有参与的用户的评论。在该页面,用户可以发表自己的看法,也可以为别人的精彩观点点赞。与圈子的设计基调相似,在帖子模块中也大量采用了"罗兰紫",并以"星号"取代一般的点赞符号,意在拉近陌生人之间的距离,星与星被点亮。

2.2.2.3 用户模块

用户模块分为三个部分,分别为登录注册以及用户界面。登陆以及注册界面,是一如既往的极简,且放大了本项目的logo,符合当代年轻人的审美。在用户和界面中,我将该用户的动态数、关注数、粉丝数放在最显眼的位置,用以体现本社区最重要的社交属性。接下来就是用户收藏的歌单项,可以通过此处访问用户的专属歌单。

2.2.3 前端特色

由于使用了vus.js作为前端框架。所以在项目设计上,在前端代码编写上,有意识的向着代码块复用的方向上前进。在项目原型完成后,我们前后一共封装了大概有10余个组件,用于相似代码块的复用,使前端代码极富有模块化,使原本的工程代码更加清晰、明了、优美。有利于再次的编写以及阅读。事实证明,这个决策是十分正确的。

2.2.4 制作api文档

前后端沟通的最重要的一环就是通过api来互相传递数据。所以约定出一个前后端编写时都认可的api数据传递格式(json)就格外重要。我将制作完成的接口文档,以云文档的形式,共享给组员,提高了大家的工作效率。

2.2.5 前后端相连

由于我们小组以以前后端来划分工作量,且前端原先的demo是以静态网页的形式呈现的。所以我们采用post请求的方式,向后端请求数据。

三、项目总结

3.1 项目的起源

在讨论的初期,无意中提起关于陌生人社交的想法,于是在头脑风暴中逐渐产生了用音乐这种柔软的、私密的又不失力量的方式来连接相互不认识的人这样一种方案,似乎是一种很好的选择。又由于我们组内成员本身对音乐的喜爱,就将这个想法保留了下来,并由它发散开,于是逐渐形成了“Violet”音乐社区的雏形。再者,目前市场上已经有了很多陌生人社交的软件如“默默”、“探探”等,但是我们认为,这些软件基于某种算法向用户推荐的指向性“潜在朋友”,是一种对传统交友的背叛,也有着一定的局限性。而我们的“Violet”音乐社区,则主打音乐社交,由音乐这种拥有能够深入人心的力量的东西作为媒介,来打开两个陌生人之间的心门,让人与人之间的被动相遇变成拥有灵魂共鸣的主动相遇。再者,“Violet”本意为紫罗兰,其花语为“羞怯的人”,这也包含这我们的深一层想法,即通过音乐这种温柔的方式,来使原本羞涩内向的人也能在社区中表达自己,发现自己闪光的一面。

3.2 项目技术栈

  • 整体采用B/S架构,并采用前后端分离技术。
  • 前端采用Vue.js+ElementUI+axios(均为主流前端技术)
  • 后端采用Flask+MySQL(轻量级Flask框架易上手,速度快,而MySql数据库本就为大家所熟悉)

3.3 项目收获

思维方式上,通过对项目需求的分析,让我明白了不能想当然,要仔细分析自己的项目的需求边界,仔细界定需求的范围,不能急于上手。

前端的开发中,系统学习了Vus.js的具体用法,以及cli脚手架的配置和应用,并学会熟练使用DEV_TOOL以及postman进行测试,以及定位错误点。在前后端连接阶段,也了解了Flask的基础操作与编写方式。总而言之,在本次项目的实现过程中,让我学到了很多,也提高了动手实践能力。

团队合作上,让我明白了团队工作,最主要的是协调二字,要各司其职,要首先完成有相关性的任务,来确保整个项目的进度不为你的落后而落后。其中也要对他人负责的模块有一定的了解,才能更好地向伙伴们提出问题,并一起寻求解决方案,来提高整体地效率。

四、课程建议

对于软件工程这门课,朱勇老师首先通过《构建之法》来给我们构建对“软件工程”这一个复杂又抽象的概念的总体概览,我认为是非常高明,且有效的。有了一开始的对“软件工程”这个概念的全貌的总览,再辅之以实战,着实让我身为学生收益匪浅。尤其是在需求分析阶段,朱勇老师特意强调了需求分析的重要性,并且多次为我们组指点迷津,也常常让我恍然有悟。使我改变了轻分析,重实现的原本的错误认识(实则两者互辅,各有所重)。

在团队实战中,助教也起了很重要的作用,在每一次的小组例会中,助教总是能给予我们中肯又一针见血的建议,为我们整体作业的推进起了很大的作用。

建议的话,我个人觉得软件工程的最主要的需求分析这个模块,老师还可以讲的更细致一点,最好能够分享一些典型的例子(虽然老师的思维已经很发散了),让我们能够更清楚地认识到在需求分析中容易遇到的一些错误,以及一个好的需求分析对一个项目能起到的巨大的正向推动作用。还有就是希望能降低理论考试在总评中的比重。

posted @ 2019-12-10 03:12  31701013_罗贤哲  阅读(270)  评论(0编辑  收藏  举报