線上地址: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
Realease Beta v1.0.0: 發佈聲明
[新增功能]參見發佈聲明博客
部署形式:nginx+uwsgi,雙環境
數據庫開放了測試環境與生產環境,經過替換服務器配置文件實現對不一樣環境的鏈接(默認開發時使用測試環境,線上使用生產環境)
發佈流程:
前端:打包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發佈前的代碼,完成衝刺
此部分詳細可參考咱們的這篇博客[技術博客]使用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 | ——— |
zwx:一學期的軟件工程課收穫滿滿。軟件工程課就應該在作中學、學中作。團隊項目中,我從一個開發小白的身份在alpha開發階段一點點摸爬滾打,從咱們的前PM大佬學到了不少開發技術、項目管理方法。進入beta階段後,我有幸接替原PM大佬的工做成爲PM,和團隊成員一塊兒不斷完善咱們的產品。PM的經歷讓我實踐了更多軟件工程領域的學問,我學會了如何與人溝通、如何分配任務、如何督促監管任務的執行、如何與團隊合做等等。看着咱們的產品從無到有再到基本健全、收到用戶的積極反饋,真的是一件無比享受且欣慰的過程。我會珍惜此次軟件開發經歷、珍惜一塊兒結對編程的小夥伴、珍惜在北航度過的軟件工程時光~