【敏傑開發】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的經歷讓我實踐了更多軟件工程領域的學問,我學會了如何與人溝通、如何分配任務、如何督促監管任務的執行、如何與團隊合做等等。看着咱們的產品從無到有再到基本健全、收到用戶的積極反饋,真的是一件無比享受且欣慰的過程。我會珍惜此次軟件開發經歷、珍惜一塊兒結對編程的小夥伴、珍惜在北航度過的軟件工程時光~

相關文章
相關標籤/搜索