[M1saka的软件工程]软件工程课程实践——文献阅读笔记工程记录

与其说这个实践项目是一项作业,不如说是一次Hackathon吧,虽然第一轮迭代时后端已经造好了不少轮子,但是前端在当时还是相当粗糙的。而且因为CCPC和机器学习考试时间变化太多的原因根本没能抽出时间写代码,所以到了最后几天,代码量贡献急剧升高。嘛既然完成了,也就没什么了。

下面就来简单聊一下本次制作的在线文献阅读笔记PaperManager吧。

GitHub地址:https://github.com/gnu-fripside/PaperManager

设计时选择了前后端尽可能分离的策略,然后组内分工时,由于全组有两个视觉工程师和一个数据挖掘工程师,对Web开发都不熟悉……所以每人认领了一个锅,M1saka主写文件系统上的操作,lkgv负责前端,makeztc负责Django相关方法编写去对接。

然后就是商量开发环境,最终敲定了Vue.js 2 + Django 2.0,生产环境是Ubuntu 17.04 + node.js 8.9 + Python 3.5。

然后系统大致分成以下几个部分:

  1. 注册与登录,没啥好说的,不过当时为了节省时间没有写Cookies而是利用了Vue.js 的Router特性存一些关键信息。
  2. 分类树,也就是首页,实际上可以理解成目录与子目录这样的层级关系,后台DFS一遍即可获得信息并传给前端,然后使用级联选择器显示并进行对应操作。分类树实际上也成为了主页。在点选特定一篇论文后会在屏幕右侧显示论文的详细信息。
  3. 显示论文,设计思路就是显示PDF,这里采用的是vue-pdf而不是PDF.js可能是因为队友觉得写起来顺不顺手的原因。传过来的是一个FileResponse,然后在前端显示论文,同时传过来的还有论文相关的信息以及这篇论文对应的笔记信息。以上信息可以通过点击export按钮导出,这部分是后台生成了一个压缩包,然后传回去一个StreamingHttpResponse。此外,笔记的显示是支持Markdown语法的,采用的模块没记错的话叫marked。你可以在一个标签栏编辑,另一个标签栏就能实时显示。当你想保存当页笔记时,点击submit note即可。
  4. 修改论文信息,这里时间来源和URL是必填项,要注意。

先写到这里吧。

发表评论

电子邮件地址不会被公开。

This site uses Akismet to reduce spam. Learn how your comment data is processed.