【敏杰开发】Beta阶段项目展现

【敏杰开发】Beta阶段项目展现

项目相关地址汇总

线上地址:http://roadmap.imcoming.tophtml

前端仓库:https://github.com/MinJieDev/Roadmap-Frontend前端

后端仓库:https://github.com/MinJieDev/Roadmap-Backendnginx

博客目录:http://www.javashuo.com/article/p-frlyuyzw-ne.htmlgit

功能规格:http://www.javashuo.com/article/p-wqsswgyj-nh.htmlgithub

技术规格:http://www.javashuo.com/article/p-fwhgjhii-nh.htmlchrome

发布说明:http://www.javashuo.com/article/p-cybouagw-nm.html数据库

前端代码文档:https://github.com/MinJieDev/Roadmap-Frontend/wikidjango

入门指南:http://www.javashuo.com/article/p-xyibjenk-nb.html编程

团队成员简介

请参考团队介绍博客 http://www.javashuo.com/article/p-hzzarakr-nm.htmlubuntu

PM:zwx

前端:zwx yzn ljy ym cc

后端:zzy zxz

Beta发布与新增功能

Realease Beta v1.0.0: 发布声明

[新增功能]参见发布声明博客

  • 用户系统
  • 文献管理
  • 路书管理
  • 随笔管理
  • 社区元素

部署形式与发布流程

部署形式:nginx+uwsgi,双环境

  • nginx负责静态资源分发,并把全部数据请求根据wsgi协议转发给后端服务
  • uwsgi开启多个后端实例,接收请求并分配后端服务实例响应
  • django服务实例响应请求,并经由uwsgi、nginx逐层返回

数据库开放了测试环境与生产环境,经过替换服务器配置文件实现对不一样环境的链接(默认开发时使用测试环境,线上使用生产环境)

发布流程:

前端:打包dist并推至服务器,nginx分发容许了热更新

后端:服务器上拉取生产分支prod,(迁移数据库后)uwsgi --reload roadmap.pid实现热更新

目标/用户/功能描述/预期用户数量

Beta阶段预期用户数量:超过200人

实际注册用户数量:230人(截至6月11日)

分析:

推广思路:咱们的目标用户为有大量阅读文献需求的科研工做者,主要是研究生、博士生、导师等。

在alpha阶段咱们的推广思路发生了误差,只是像其余团队同样在学生大群中进行广告投放。考虑到群内本科生(多为2017及2018级的大2、大三学生)大多还对文献阅读没有需求,这样的推广收效甚微。

在beta阶段,咱们调整思路,针对目标用户进行定向投放,向实验室中的实习生、研究生同窗进行推广,让其在组会报告时使用咱们的软件,这样可让整个实验室的师生都了解咱们的产品,用户量快速增长。

另外,咱们的成员也在其各自的科学方法论课堂展现中推广咱们的产品,这门课程正是培养咱们本科生阅读文献整理文献能力的,若是使用咱们的产品,将使同窗们的思路更清晰、展现效果更理想。下图为咱们组员在课上推广时的截图:

相信下一届学弟学妹在上科学方法论这门课时就能够更加愉快地使用咱们的产品了。

如何知足需求

咱们在页面中设置了反馈入口,Beta期间收到75条反馈:

滤除无效信息,列举有参考意义的反馈以下:

72 这个分享功能蛮不错的呀,今天上课看到一个大佬拿大家的网站作的导图,很好看
51 方法论课上看到yzn作了attention相关的roadmap,蛮实用的
49 看到那个篇GAN的作的好认真呀。\n用这个作文章梳理还挺不错的。\n能够作一套科研的工做流嘛?

路书就是为了向他人清晰地展现本身对于文献间脉络但梳理的,当咱们在科学方法论课堂上展现咱们的产品后,获得了不少好的反馈,咱们的产品后续还会推出其它功能更好地帮助你们实现与文献调研相关的科研工做流。

54 应该早出来点......\n我方法论做者都是手写统计的.....
55 挺好,用了这个方法论做业写得快了很多\n文献管理加一个搜索功能就更好了
51 这个Arxiv推荐能够直接发到个人邮箱里面吗

做者统计是咱们在beta阶段实现的一个新功能,能够清晰的对所选的文献集进行做者统计,画出统计图,哪位是真正的领域大咖一目了然,有助于科研人员分析该领域内做者的关系。固然此项功能也迎合了科学方法论课程的一些做业要求,所以广受好评。

67 须要一个社区功能,就是大佬发博客讲论文那种
84 怎么样看到别人的路书呀?想学习一下
37 有没有交友功能啊

咱们在beta阶段只实现了一些常见的社区功能,如点赞、评论、分享、最新论文推荐等。分析用户反馈咱们得知,应该搭建更完善的社区功能,让用户更容易接触到优质的路书示例。

76 是否能加个云盘功能呢?\n把论文PDF存在云盘上,而后能够用浏览器页面进行读取、标注\n每一个设备均可以看到\n很实用!\n若是有云盘功能我必定冲会员!
77 随笔能够加一些模板吗?\n便于咱们直接在模板上整理内容
59 挺好,用了这个方法论做业写得快了很多\n文献管理加一个搜索功能就更好了
51 这个Arxiv推荐能够直接发到个人邮箱里面吗?
65 和文献相关的基本功能都实现了,鼓励一下。\n另外,可否实现Mendeley那样的文献数据库呢?

咱们也收到了不少用户的新需求建议,可见咱们的产品有较高的人气,可提高改进的空间很高,适合进行下一步迭代开发。

78 bug 反馈\n路书编辑页里面,文献若是名字太长了会看不到所有....\n
81 路书编辑那里,会有文献拖不进画布的状况

固然,咱们也收到了一些bug反馈,能够在后续的开发过程当中解决

网状协做

咱们的开发协做是网状的:每次同步会你们肯定接下来一个小阶段的开发目标与各自负责方向,而后采用分散开发的形式各自完成开发工做。若是遇到问题须要协做解决,由PM组织小规模会议迅速聚焦问题。在两至三天的迭代后再此进行全体同步会继续推动。期间穿插结对编程与互动式review,实现项目的异步-同步推动。

即,咱们的整体流程是:同步会 - 小规模会与分散开发 - pr与review - 小规模会与分散开发 - ... - 同步会

在关键开发节点(如冲刺末尾、发布前),根据进度须要安排集中开发,共同解决最后余留的问题,并集体review发布前的代码,完成冲刺

  • 与集体日会制度相比,引入分散的小规模会议能够把每次会议须要解决的问题高度聚焦,提高会议效率
  • 参考okr管理,每次同步会为每一个成员制定阶段大目标与小任务,成员就能够自行评估小任务的完成质量,自主补充小任务改善大目标的实现。这种总-分的管理更加节能。

项目管理与工做流

此部分详细可参考咱们的这篇博客[技术博客]使用Github进行软工开发管理
全部的代码首先要从主分支(dev分支)迁出,修改后提交到一个新分支(或本身的fork),再发起pull request合入dev分支。要求合并至dev前必须被至少一名其余开发者复审

发布时将dev分支的代码并入prod分支,要求必须至少2人参加复审

这样的双主分支工做流,容许在发布前拥有一个汇总分支(dev),全部测试工做在其上完成无误后再实际并入发布分支(prod),为生成环境创造一个错误缓冲区,也方便以后引入CICD

时间与效率管理

Q: 团队如何平衡 时间/质量/资源 争取如期完成任务的

不可替代性可替代性中取得平衡

咱们的分工安排,每一个人主要专精一个小方向的开发,使他/她能够大幅节约开发时的学习成本,这是开发者的不可替代性。同时同步会又要求全部人必须理解、熟悉其余人的代码,使得每一个人都具有可替代性

这样,开发能够高度并行化展开,每一个人总主要负责推动本身所负责的小方向;当某个方向的开发遇到阻力时,即可以抽调其余方向的开发人员进行协助。

这能够自适应地最大化时间利用效率。

同时,咱们频繁引入、穿插结对编程,以此进一步优化开发效率。

测试用例数量与覆盖率

测试方法论:后端狠,前端稳

前端随发布随测,团队成员的开发环境覆盖了windows、ubuntu1604/1804和mac xos,浏览器覆盖safari、chrome。

单元测试主要针对后端展开,前端主要以表格枚举测试为主(参考beta测试报告

后端目前为全部模型接口的CURD行为与权限添加了单元测试,共12个case

借助coverage实现后端测试覆盖率分析:

Name                                                Stmts   Miss  Cover        [1/1932]
-----------------------------------------------------------------------
manage.py                                              12      2    83%
roadmapBackend/__init__.py                              0      0   100%
roadmapBackend/settings.py                             22      0   100%
roadmapBackend/urls.py                                  3      0   100%
roadmapData/__init__.py                                 0      0   100%
roadmapData/admin.py                                    5      0   100%
roadmapData/apps.py                                     3      0   100%
roadmapData/migrations/0001_initial.py                  9      0   100%
roadmapData/migrations/0002_auto_20200531_1303.py       6      0   100%
roadmapData/migrations/0003_auto_20200601_2235.py       6      0   100%
roadmapData/migrations/0004_auto_20200601_2247.py       4      0   100%
roadmapData/migrations/0005_auto_20200601_2250.py       4      0   100%
roadmapData/migrations/0006_auto_20200601_2301.py       4      0   100%
roadmapData/migrations/0007_auto_20200601_2307.py       4      0   100%
roadmapData/migrations/0008_essayshareid.py             5      0   100%
roadmapData/migrations/0009_auto_20200602_2349.py       5      0   100%
roadmapData/migrations/0010_auto_20200603_1222.py       4      0   100%
roadmapData/migrations/__init__.py                      0      0   100%
roadmapData/models.py                                  71      0   100%
roadmapData/serializers.py                             74      0   100%
roadmapData/tests.py                                  214      0   100%
roadmapData/urls.py                                    18      0   100%
roadmapData/utils.py                                   50      4    92%
roadmapData/views.py                                  196      4    98%
-----------------------------------------------------------------------
TOTAL                                                 719     10    99%

代码规范

对于前端代码,咱们使用eslint进行自动化的代码质量检查

对于后端代码,咱们要求全部提交的代码必须经过ide自带的格式化(基于pep8)

此外在review时会进行必定程度的代码质量复审,如命名等。原则上,不影响理解的代码都能经过,咱们只追求自注释的清晰代码,不但愿把大部分时间花费在维护commit与注释上。

文档

前端:咱们在前端仓库的wiki中写了详细的文档,首先介绍代码的总体架构,使用的框架和工具,以后详细说明代码仓库中每一个文件的意义,再按功能模块说明每一个功能的实现思路、编码细节等,方便之后本身查看或其它团队接手。

后端:自动化文档。借助django restful framework与coreapi生成的自动api文档,便利先后端协做的同时解放后端同窗双手

产品:为方便用户尽快上手咱们的产品,咱们为其撰写了一份上手文档,利用随笔功能发布在咱们的知识路书平台,同时发布在博客园

燃尽图与功能发布

在github中咱们将beta的project截止时间定位冲刺的截止时间,可是为了方便任务量统计咱们将测试和发布阶段的bug修复也算入此project中,所以燃尽图中结束点后移了,这并不是咱们拖延怠工的结果,特此说明。

角色与贡献

贡献量化表

姓名 任务 按时(-5~1) 质量(-2~2) 任务量(1~5)x10 得分
cc cc test-nouse 1 1 1 12
cc 修改删除文献结点 1 1 1 12
cc 路书链接曲线拖动 1 2 4 43
cc 路书阅览界面的链接拖动 0 0 1 10
cc 路书编辑时链接拖动的bug修正 1 1 2 22
cc 路书节点颜色自定义修改 1 2 3 33
cc 路书:文献的alias别名 0 1 1 11
143
ljy tag前端 0 1 4 41
ljy 面包屑改进 0 1 3 31
ljy 社区功能:推荐系统相关 0 1 5 51
ljy 文献推荐导入:导入文献做者分隔符问题 0 1 2 21
ljy Get New Paper 脚本部署 + 推荐界面更新 1 2 2 23
ljy 修正 推荐文献导入 字段 1 1 1 12
ljy 部署脚本请求Arxiv,写入数据库 0 1 4 41
220
ym Article Table 多选删除 & 仅显示第一做者 1 1 3 32
ym Add MindTable expanded 0 1 2 21
ym Article Read Unread status & Pagination in FrontEnd 0 2 3 32
ym 批量导出bibtex 0 1 3 31
ym 改进文献管理表格UI 0 2 2 22
ym Article: Bibtex 批量导入时存入后端字段,导出时读取 0 1 2 21
ym article 页面分页 0 1 3 31
ym 前端的路书分页 0 1 2 21
ym 随笔管理界面 0 1 3 31
ym 社区功能:注册页面加感兴趣方向的选择 0 1 2 21
ym 社区功能:我的中心 1 1 5 52
ym 文献统计:所有文献的做者出现频次统计 0 1 4 41
ym 文献导入:做者分割与bib导入问题 0 1 1 11
ym 文献笔记完成状态:根据后端接口作修改 0 1 2 21
ym 我的中心:和后端新增我的信息对接 1 1 1 12
ym 文献统计:添加文献管理页向文献统计页面的跳转按钮 0 1 1 11
ym 导出:复制功能 0 1 2 21
ym 文献管理:打开文献修改drawer时没法显示 0 1 1 11
443
yzn 路书管理卡片布局 1 1 3 32
yzn switch致使的卡片对齐问题 0 2 1 12
yzn 路书的导出与缩略图 0 1 5 51
yzn 路书卡片界面浮窗显示 0 2 3 32
yzn 路书管理界面:卡片/表格使用偏好的缓存 0 1 1 11
yzn Attention is All You Need 样例路书 + 用户使用简介 -> 博客形式 0 1 4 41
yzn 优化路书卡片的预览浮窗 1 1 1 12
191
zwx 路书解决节点重名 1 1 4 42
zwx 路书编辑器:拖拽添加文献节点 0 1 3 31
zwx 路书编辑器,查看文献笔记,跳转编辑文献笔记页面 0 1 1 11
zwx 路书阅览界面处理路书重名问题 1 2 1 13
zwx 后端的api分页引发的roadmap变化 0 1 1 11
zwx 前端路书编辑器和阅览器改回获得所有api 0 1 1 11
zwx 新路书保存后跳转路由 1 1 1 12
zwx 随笔相关启动 -1 2 3 31
zwx 社区功能:点赞评论前端 0 0 3 30
zwx 根据文献反查路书 0 1 3 31
zwx 路书:文献的alias别名 0 1 1 11
zwx 随笔节点引入路书编辑器 0 1 3 31
zwx 路书引入随笔节点、编辑路书随笔、分屏显示阅览器 0 1 4 41
zwx 路书随笔节点,打开跳转连接,节点多行显示 1 2 2 23
zwx 路书删除:删除失败 2 1 1 13
zwx 解决share的bug,添加essay的share 0 2 3 32
zwx Comment 接入API 1 0 3 31
zwx Like功能接入API 0 1 3 31
zwx bug: 跳转url 增补http 0 1 1 11
zwx fixbug: 分享,文献和随笔权限:字段变化 & 添加随笔分享 1 1 4 42
zwx zwx--fixbug-share-auth 0 0 3 30
zwx articel model page to charfield 0 1 1 11
zwx ZWX: add article abbrtitle 0 1 1 11
zwx PM工做 10 100
641
zxz 提供一个返回所有article和所有roadmap的api 0 2 1 12
zxz 添加文章别名alias 1 1 2 22
zxz 添加感兴趣的领域 0 1 1 11
zxz Essay属性添加state & abstract & author 以及分页功能 0 1 3 31
zxz 用户我的信息 1 2 3 33
zxz 添加表newpaper 0 1 3 31
zxz add time 0 1 1 11
zxz Article:read_state从bool值改成字符串类型 0 1 2 21
zxz 添加点赞功能 1 1 3 32
204
zzy tags 1 1 3 32
zzy 添加bib 0 1 2 21
zzy 添加filter 0 1 2 21
zzy 添加分页 0 1 3 31
zzy page 0 0 2 20
zzy add tag search 0 1 3 31
zzy 添加评论功能 0 2 3 32
zzy hash view 0 1 3 31
219

最终分配

根据[知识路书]团队贡献分数分配方案获得最终分配:

姓名 zwx ym ljy zzy zxz yzn cc
总分 641 443 220 219 204 191 143 2061
比例 0.31101407 0.2149442 0.1067443 0.1062591 0.09898108 0.09267346 0.06938379 1
实际量化分 10.8854925 7.52304706 3.73605046 3.71906841 3.4643377 3.24357108 2.4284328 35
去重量化分 8 7 6 5 4 3 2 35
总分 53 52 51 50 49 48 47 ———

特点功能总结

  • 文献管理
    • 批量bibtxt导入、导出
    • 支持markdown的文献笔记编辑
    • 能够自定义的文献别名,帮助记忆
  • 路书编辑
    • 定制的路书编辑器,支持快捷键、鼠标点击、拖动、符合思惟直觉的高效编辑方式
    • 自动链接文献引用关系,一次定义,处处链接,直观呈现文献发展脉络
    • 用户自定义节点颜色,为所欲为,打造漂亮的路书
    • 链接曲线自定义拖拽,形状任你定,板式任你排
  • 随笔功能
    • 知识路书原装的”博客“功能,不用出站便可随手编辑您的想法
    • 与路书分屏阅览,更清晰地解释路书中的内容
  • 社区功能
    • 支持生成站外分享连接,分享给亲朋好友,无需登录便可一览你精心编辑的知识路书
    • 给你喜欢的路书点赞、评论,在思惟碰撞中产生灵感的火花
    • 每日最新论文推荐,个性化推荐您感兴趣的最新论文,让您实时了解前沿动态

后续开发计划

  • 更完备的社区功能
    • 最新路书推荐
    • 最热路书推荐
    • 收藏功能
    • 关注功能
  • 更好用的路书编辑器
    • 提供一份相对约束的路书模版,好比咱们把曲线的弧度定为常量,适度约束能够获得更好的使用简便性,易上手、易操做
    • 文献栏和随笔栏添加搜索功能,修复没法显示全文字的问题
    • 推出随笔路书分屏编辑器,写随笔和写路书同时进行,一边画一边写

收获与启示

zwx:一学期的软件工程课收获满满。软件工程课就应该在作中学、学中作。团队项目中,我从一个开发小白的身份在alpha开发阶段一点点摸爬滚打,从咱们的前PM大佬学到了不少开发技术、项目管理方法。进入beta阶段后,我有幸接替原PM大佬的工做成为PM,和团队成员一块儿不断完善咱们的产品。PM的经历让我实践了更多软件工程领域的学问,我学会了如何与人沟通、如何分配任务、如何督促监管任务的执行、如何与团队合做等等。看着咱们的产品从无到有再到基本健全、收到用户的积极反馈,真的是一件无比享受且欣慰的过程。我会珍惜此次软件开发经历、珍惜一块儿结对编程的小伙伴、珍惜在北航度过的软件工程时光~

相关文章
相关标签/搜索