【Gamma】「北航社團幫」展現博客

【Beta】「北航社團幫」發佈聲明——小程序v2.0與網頁端v1.0前端

【Beta】「北航社團幫」測試報告——小程序v2.0與網頁端v1.0java

【Gamma】「北航社團幫」發佈說明——小程序v3.0python

【Gamma】「北航社團幫」測試報告——小程序v3.0linux


團隊介紹

  • 團隊名稱:北航紅太陽 BuaaRedSun

  • 團隊成員介紹:(點擊名字跳轉至我的博客)
成員 角色 自我介紹 照騙
HansBug 架構師,後端組長。 作過一些簡單的開發,寫過一些簡單的算法題,喜歡沒事寫寫程序,偶爾去創造一下奇蹟改變一下社會。
馬振亞 後端開發 擅長各類行政打瑣事物(給各位大佬端茶遞水)
能寫 c/java/python/js
求各位大佬帶帶
莊廓然 後端開發 熟悉java,c++,c,c#,參與過的安卓開發,後臺開發,寫過unity遊戲腳本,工做積極,但願向各位大佬學習。
周雨飛 前端開發 主要負責的工做是給其餘幾位大佬端茶遞水
擅長Java/Python
前端和後端都會一點點
求各位大佬帶飛
李大 前端開發 活潑開朗。非計算機/軟工學生,16級高工3系,接觸過一些簡單的軟件項目(app、unity遊戲),但願在軟工課上體驗較複雜的軟件項目團隊開發,積累經驗。學習寫代碼,也學習如何進行團隊交涉,和科班同窗多多接觸,補一補不怎麼牢固的cs基礎。
廖青城 前端開發 ↑來自生醫學院~
可是喜歡寫bug而後debug(什麼x),但願經過該項目學會如何嚴謹的寫bug~(′゜ω。‵)
彭宇飛 需求分析,溝通社聯 社聯主席。經管學院信息管理專業,邏輯思惟較強,產品經驗比較豐富。作過一些小型的算法和數據庫,要積極向組內各位同窗學習!
謝靜芬 PM 計算機系大三狗
人送外號分解(因此常常在數學課躺槍...)
雖然邏輯嚴密,擅長寫文檔(誤)
可是算法能力較弱,編程效率較低
但願在團隊中向大佬們學習,提高自我~

其中,青城和宇飛沒有選軟件工程課,屬於外援~~c++

項目願景

在用戶羣體上,咱們將用戶分爲三類人:普通學生、社團管理員、社聯管理員。git

咱們針對不一樣的用戶羣體開發出不一樣的平臺和功能:github

  1. 普通學生:使用「北航社團幫」小程序,功能包括:瀏覽各社團活動和動態,瀏覽各社團的文字和視頻介紹,在線申請加入社團,報名社團活動,接收社團的活動通知,生成並分享社團活動海報圖片。以上功能均已實現,alpha階段計劃的支付社團社費功能未實現。
  2. 社團管理員:使用「北航社團幫網頁端」管理社團,功能包括:編輯社團信息,設置入社條件,管理社員,向社聯報備活動、申請活動場地,發佈投票,發佈消息,發佈活動、審覈報名人員、向報名人員發送活動通知。上述功能最終實現了:編輯社團信息,發佈活動,發佈新聞。未實現的功能中,管理社員和活動推送在小程序端實現,其他功能咱們認爲不屬於項目當前階段高優先級、高收益功能,未實現。
  3. 社聯管理員:在網頁端管理社團,擁有全部社團社長權限。初期計劃時但願支持活動申請和場地申請,並創建社團星級評定系統,咱們認爲這些任務在當前階段優先級不高,未實現。

除了上面未實現的功能,其實還有不少可以挖掘的功能,如wowotou團隊在前期規劃了但還沒有實現的一些好功能:在線售賣社團文化產品、社團論壇、社團網盤等,這些功能的真實需求和收益評估也還須要後續調查。redis

整個項目的預期典型用戶

  • 大一萌新
    • 需求
      • 有某個平臺整合北航社團信息供瞭解
      • 能夠隨時提交線上入社申請
    • 使用場景
      • 剛入學時瞭解社團信息
      • 百團大戰時完成線下流程後提交線上申請
      • 錯過百團大戰後提交入社申請
    • 重要性
      • 很是重要,若是從大一開始就承認這個小程序,並時常關注北航社團的信息,那麼這部分用戶的使用年份會很長;另外,若是萌新M以後當了社團管理員,也會向社員推廣這個產品。
  • 社團活動活躍用戶
    • 需求
      • 查看感興趣的社團近期動態
      • 接收感興趣的活動的通知
    • 使用場景
      • 偶爾查看感興趣的社團近期動態
      • 關注感興趣的活動,活動前收到消息通知提醒
    • 重要性
      • 很是重要,他們是小程序的長期活躍用戶。有他們社團管理人員才願意發社團動態。
  • 社團管理人員
    • 需求
      • 編輯社團信息
      • 發佈社團新聞
      • 發佈社團活動
      • 處理入社申請
      • 管理社員
      • 導出社員信息(未實現)
      • 場地申請(未實現)
      • 收取社費(未實現)
    • 使用場景
      • 同需求
    • 重要性
      • 很是重要,有他們纔有新鮮的社團動態,才能吸引用戶。
  • 社聯管理人員:
    • 需求
      • 管理社團動態
      • 導出社團信息(未實現)
    • 使用場景
      • 社團註冊及評級時導出信息進行處理
      • 平時對一些社團的動態(活動)進行管理

功能展現

  • 新聞主頁 - 點擊跳轉公衆號文章

  • 活動主頁

  • 活動詳情頁

  • 生成海報分享

  • 海報

  • 活動推送算法

  • 社團主頁

  • 社團詳情頁


  • 個人頁面

  • 個人申請

  • 社團管理


  • 網頁端





原預期用戶數量

  • alpha階段小程序發佈後一週內,用戶量累計500人
  • beta階段小程序發佈後一週內,用戶累計1000人
  • beta階段網頁端發佈後一週內,15位社長和社聯進行使用,約20人。逐漸讓各社長認證,累計入駐社團50個。

項目使用狀況數據分析

用戶量變化

  • 圖中三個箭頭爲三個階段發佈
    • alpha階段發佈後咱們靠本身推廣,發佈一週後用戶量達到470。
    • beta階段發佈後咱們聯繫社聯進行推廣,於6.8號用戶量超過1000,截止6.17,用戶量達到1100。
    • gamma階段發佈時間點已接近考期,咱們的目標用戶在這個階段裏都沒有理由會使用小程序,咱們僅在社長羣裏進行了新功能說明,未進行額外推廣,可是能夠看到用戶量依然在緩慢增加,從發佈起到6.17,用戶量增長70。

學生認證人數

  • beta階段咱們加入了新功能支持北航學生認證,認證時須要補充我的手機號信息。
  • 截止6.17,共有325人進行了學生認證,其中180人爲18級學生,100人爲17級學生,38人爲16級學生,7人爲15級。

社長認證人數

  • beta階段咱們加入了社團管理功能,須要社長進行認證後才能管理社團。
  • 截止6.17,共有67個社團完成了社長認證,還有54個社團社長未認證。

入社申請數

  • 截止6.17,共有264個入社申請,說明線上申請加入社團這一需求是真切的,220條被處理。

活動發佈

  • beta階段咱們在網頁端支持了社團活動發佈
  • 截止6.17,共發佈了12個活動。

新聞發佈

  • beta階段咱們在網頁端支持了社團新聞發佈,
  • 截止6.17,共發佈了93條社團新聞。其中有16條是社團管理人員自主發佈的。

網頁端使用狀況

  • 截止6.17,共有55個社團使用過網頁端編輯社團信息。

小程序打開次數

  • alpha發佈和beta發佈後都造成了打開次數的高峯,beta發佈後的高峯持續時間更長,峯值也更大。
  • beta發佈5.25-29之間咱們依靠本身推廣,峯值降低得很快;5.29號後社聯參與推廣,能夠考到造成的峯持續時間長得多。gamma階段發佈後咱們並未進行推廣,儘管臨近考期,但仍有少許用戶偶爾使用小程序。

小程序使用時間

  • 用戶打開小程序的次數還不足以說明小程序使用狀況,結合用戶在小程序上停留的時間和訪問深度咱們能夠進一步說明小程序的使用狀況。
  • alpha階段發佈至beta階段發佈

  • beta階段發佈至今

  • 能夠明顯看出,beta階段發佈後用戶在小程序上停留的時間明顯變長,頁面訪問深度也增大,說明用戶在預覽更多信息。在更真切地使用小程序。

軟件工程記錄

  • 燃盡圖

  • 每日計劃
    • 任務計劃,進度跟蹤,有效防止摸魚
  • 任務細化分配

  • 貢獻分記錄


測試

beta測試報告

gamma測試報告


文檔與技術博客

文檔

  • 接口文檔
  • 需求分析文檔
  • 其餘相關資源(如未實現功能中的場地申請表格等)

後端

環境配置:

  1. 少昂gitlab快速部署流程
  2. 少昂win10下vagrant+centos7 rails虛擬開發機配置流程
  3. 少昂【vagrant】硬盤擴容
  4. 廓然利用Vagrant+virtualbox在windows下進行linux開發

技術點:

  1. 廓然數據庫1+N查詢問題
  2. 廓然rails控制檯調試路由
  3. 振亞如何避免在代碼中多重render
  4. 振亞用戶驗證碼驗證機制---redis緩存數據庫的使用
  5. 雨飛小程序掃碼登陸網頁端原理
  6. 雨飛: 小程序模板消息

前端

  1. 李大小程序前端開發流程——用實例介紹
  2. 廓然:微信小程序的formid獲取
  3. 靜芬:使用wx.downloadfile將圖片下載到本地臨時存儲
  4. 靜芬:海報圖片生成——小程序canvas畫布

相比alpha階段,軟件質量提升

  • beta階段更換了服務器,響應時間提升;同時使用了雲圖牀,圖片下載速度提升。
  • 功能拓展
    • beta階段
      • 支持社團信息、新聞、活動發佈
      • 討論區
      • 申請入社
      • 社員管理
    • gamma階段
      • 支持海報生成
      • 消息推送
      • 我的信息編輯
  • bug fix
    • 修復了本身發現以及用戶反饋的bug,alpha發佈後先後端累計超過50個
  • 用戶反饋
    • beta階段接入社聯獲取用戶反饋
    • gamma階段面向社長拉起小程序答疑羣獲取反饋
      • 以後發現bug的頻率大幅度提升
      • 有了從基層瞭解需求的感受
    • 共發出7次問卷收集使用體驗、需求,根據問卷結構理性調整任務規劃
    • 聯繫用戶進行debug

相比alpha階段,軟件工程質量的提升

  • 階段前規劃和任務分配
  • 每日計劃與跟蹤
  • 註釋
    • gamma階段集中補充了先後端註釋
    • 後端重要模型、函數,前端複雜頁面結構、異步js調用都寫了註釋
  • 冗餘代碼清理
    • beta階段結束和gamma階段結束都清理了先後端冗餘代碼,主要爲前端頁面重製所留下的冗餘代碼。
  • 需求篩選
    • gamma階段的一個工做重心是從茫茫多的需求中挑選當前階段高優先級的任務
  • 接口文檔審覈
    • 先後端互審保證接口設計符合需求
  • 代碼審覈
    • beta階段雨飛參與後端代碼審覈,代碼審覈效率明顯提升
    • 服務器崩潰次數相比從alpha階段起漸少,後端開發人員逐漸熟悉,服務器長期保持正常工做
  • 代碼風格統一
    • beta階段後端進行了代碼風格統一,涉及模型和接口數據格式
  • 風險控制
    • gamma階段根據團隊成員時間分配狀況預估進度進行適當任務調整保證最終任務能按時完成
  • 測試
    • 保持全接口覆蓋的單元測試
    • 整體覆蓋率超過90%
    • 500併發壓力測試保證服務器在高流量下能夠正常工做
    • 前端對照需求設計細緻地進行權限檢查和功能檢查
  • scrum meeting
    • 開會效率逐漸提升,先後端對接效率提升;開會時長逐漸減小,能更好地組織會議流程,先按計劃開完會,有額外問題的人再留下來繼續解決,節約無關的人的時間。

Beta和Gamma階段學到了什麼

Beta

  1. 技能上的主要提高:
    1. 使用對象存儲中間件來做爲圖牀,使得網頁端圖片的上傳成爲可能,也使得小程序端獲取圖片更爲流暢。
    2. 學會了使用redius保存10分鐘有效的緩存key數據來進行社長認證。即,每當社長想要跟社聯申請社長認證時,就由社聯調用這個接口,輸入社團id號,生成10分鐘內有效的key,社長便可進行認證。
  2. UI的設計:PM經過對比多種相似佈局的小程序或APP,以及與前端同窗進行討論,來對許多頁面的原型設計進行了改版,雖然只是處在模仿和拼接的階段的,但效果已經不錯,下一階段會爭取和設計師合做,從模仿提高到設計。
  3. 需求文檔的維護和更新:上一階段對需求文檔沒有進行更新,而只是停留在口頭交代,本階段對需求文檔進行了維護和更新,使得團隊成員對需求的理解更加深刻,不足的地方在於需求文檔的書寫不大規範還需完善。

Gamma

  1. 技能上的主要提高:

    ​ 1.爲使用微信的服務:小程序碼頁面跳轉和模板消息推送,咱們將服務器接入了微信服務器。熟悉了微信服務接口的使用流程並在實踐中積累了一些debug經驗。

    ​ 2.前端學會用js生成圖片(海報),實現過程可謂處處是坑,至關艱辛。

    ​ 3.後端實現了一個簡單的定時任務系統,用於在社團活動前開始24h推送消息到用戶微信。

    ​ 4.需求篩選。Gamma階段咱們仍有不少能夠實現的功能(以前版本功能的拓展,社聯但願咱們支持的功能,社團管理人員但願咱們支持的功能,通常用戶但願咱們支持的功能),咱們最終綜合實現成本、收益分析、後續維護問題以及用戶需求調研進行了篩選決定了gamma階段實現的功能。鍛鍊了軟工的需求分析能力。

    ​ 5.面向當前階段用戶創建了一個答疑羣,對小程序使用進行了答疑,用戶反饋了不少Bug以及意見,對小程序的改善有重要做用。鍛鍊了與用戶溝通的能力。

  2. UI設計:這一版沒有大改UI,新的UI繼承上一版的風格,小程序UI總體風格逐漸統一。

  3. 文檔維護和代碼註釋:這一版補充了一些技術博客、配置文檔,保持新接口在接口文檔中的更新,並在代碼中加入許多重要註釋,方便後續維護和增量開發。同時,先後端都對冗餘代碼進行了刪除,有助於軟件工程質量的提升。


文檔位置和新人入口


關於之前的項目

  • 雖然咱們的項目在名義上,是基於之前的項目,但其實兩個項目只是有所交叉,其實區別很大,並且之前項目的版本太舊跑不起來。所以咱們在整個項目中實際並未使用任何以前的代碼,徹底本身重構開發。
相關文章
相關標籤/搜索