團隊做業第六次—團隊Github實戰訓練

做業格式

隊員學號 隊員姓名 博客地址 備註
221600131 Jamin https://www.cnblogs.com/JaminWu/ 隊長
221600308 我超可愛的 http://www.cnblogs.com/XNC-SoCute/
221600305 haziza http://www.cnblogs.com/haziza/
221600340 你看見個人小熊了嗎 https://www.cnblogs.com/stereohearts/
221600426 Hunterj Lin https://www.cnblogs.com/HunterJ/
021600823 玫葵 https://www.cnblogs.com/offeroques/

目錄

  1. 組員職責分工
  2. github 的提交日誌截圖
  3. 程序運行截圖
  4. 程序運行環境
  5. GUI界面
  6. 基礎功能實現
  7. 附加功能實現
  8. 鼓勵有想法且有用的功能
  9. 遇到的困難及解決方法
  10. 馬後炮
  11. 組員貢獻比例
  12. PSP表格

做業正文

1. 組員職責分工

學號 姓名 貢獻
221600131 Jamin Web、管理master分支
221600308 我超可愛的 iOS、文檔撰寫
221600426 Hunterj Lin 後端編寫,算法設計
021600823 玫葵 數據處理與詞雲圖實現
221600340 你看見個人小熊了嗎 數據處理與柱狀圖實現
221600305 haziza UI設計、文檔撰寫

2. github 的提交日誌截圖

3. 程序運行截圖

  • 運行結果

4. 程序運行環境

  • Web前端:npm+webpack+Vue.js+Vue-Router+element-ui
  • 後端:.net MVC

5. GUI界面

  • 抽獎規則設置
    • 設計了日期時間選擇期來選擇,輸入者無需按後臺字符串要求格式輸入,前端會轉成datetime格式再請求。
    • 設置篩選聊天記錄的起止時間
    • 設置開獎時間
  • 抽獎結果公佈
    • 自定義彈窗並嵌入表格展現中獎名單
    • 自定義彈窗提示未到開獎時間
  • 導出海報
  • 導出excel

  • 部署
    該項目已部署在iis服務器上,但因爲學校信息辦防火牆限制只能在校園網內訪問 抽獎平臺前端

    6. 基礎功能實現

  • 抽獎算法設計

    • 本算法具備如下模式:
      • 不過濾模式:只過濾系統消息
      • 普通模式:過濾教師和助教以及過濾掉空白字符的無效發言
      • 深度模式:在普經過濾的基礎上,過濾廣告,表情等發言(統稱無效發言);並對無效發言進行懲罰降權處理
  • 算法詳述:

    • 整體抽獎算法模擬二層感知器前饋,懲罰降權算法模擬BP的工做原理

      一、net(i)=Wij*Yk表明每一個參與者中間的得分結果,Wij爲權重,Yk爲發言次數及發言時間的向量。
      二、隱層激活函數是線性函數,輸出層採用sigmoid函數激活。
      三、能量函數表明最終的分和通過懲罰後得分之間的偏差,用於降權處理。
      四、通過降權能夠促進最終中獎機率和有效發言次數以及發言時間之間達到一個較爲合理的加權關係。
    • 抽獎算法:
      - 一、對每一個人的有效發言次數以及發表關鍵詞距離抽獎開始的時間進行加權求和
      - 二、對1求出來的權值和進行sigmoid運算,映射到0-1的區間
      - 三、對於不過濾和普經過濾模式把2的結果經過線性變換映射導0-10區間;對於深度過濾,因爲有懲罰降權機制,因此映射到0-100區間以確保足夠大的區分度
      - 四、將全部參與者的最終得分連在一塊兒構成隨機區間,對區間進行隨機投點,得分越高者區間越大,相對來講更容易中獎。


      webpack

    • 懲罰降權算法:
      - 一、因爲日常不發言者,在抽獎時大量水羣,這時經過判斷規定時間段內大量發言且這些發言是表情或者空白字符者會下降其得分直到0爲止
      - 二、經過黑名單檢測,平時若是發佈廣告等無效水羣言論,則會在下降其最終得分直到0爲止,並將其拉入黑名單
      -
      - 如圖大量水羣者
      - git

7. 附加功能實現

  • 附加功能一:分析聊天時間段

    • 根據聊天時間段,以及對應的聊天量,生成聊天時間熱度圖,能夠直觀地看到同窗們晚上22點後在羣裏特別活躍,一直到凌晨兩點才趨於平靜(才睡覺)。
  • 附加功能二:分析發言最多的同窗

    • 統計帳號的發言次數,選取發言次數最高的十我的,生成最能水羣top10排行榜。這裏爲了保護隱私不將同窗的帳號信息截取上傳。
  • 附加功能二:分析最火話題

    • 先使用正則表達式將聊天記錄中的內容提取出來,而後使用jieba工具進行分詞並去除停用詞(語氣詞、助動詞等無心義但頻率很高的詞彙),不然將影響最後的統計結果。
    • 人工觀察數據集,針對實際狀況整理了一個外部停用詞表導入,以去除抽獎刷屏時的關鍵字與無心義的詞彙。
    • 最後統計全部詞彙出現的個數,選取top50的詞彙並生成詞雲圖,以此能夠看到計算機軟工實踐羣的熱度話題,大部分都是在談論博客、提交、代碼、截止等跟做業相關的話題。
    • 而助教給的以供數據挖掘的數據集忠能夠看出這是相似於大學城集市的羣,大部分都是在談論二手物品交易相關的話題。
  • 附加功能三:根據獲獎名單生成海報

    • 首先設計了一張海報做爲底圖。再經過編碼設置邊距等將文字投到底圖海報上。

8. 其餘功能

  • 抽獎錄

    • 主要功能:
      • 此爲附贈的iOS端簡單的app
      • 方便管理人員對抽獎信息例如獎品、金額、時間、獲獎名單等進行記錄
      • 照片牆功能,對領獎等精彩瞬間進行記錄
    • 界面展現:
      • 註冊
      • 登陸
    • 照片牆

    • 個人抽獎



      github

    • 我的信息
      web

    • 運行條件:Xcode 10.1(10.1.1版本以上會出錯),OS X系統
    • 運行環境:iOS 11.1~iOS 12.1之間版本
    • 演示視頻:
      • 這裏是視頻地址
      • 由於蘋果對安全性能很看重,常常會出現xcode運行環境問題,須要pod安裝一些庫,因此這裏錄了演示視頻,方便查看。

9. 遇到的困難及解決方法

  • Jamin

    • 困難:
    • 做業公佈的時候人在廈門,週日很晚纔回來,週一又是滿課,因此最大的困難就是時間上的不足,加上人在外地沒辦法跟隊友及時有效地溝通。
    • 在將系統部署到服務器的時候一直沒法解決實驗室服務器的跨域訪問問題,先後端一直沒法交接。
    • 解決方法:
    • 在廈門的時候看了題目就先初步給隊友分了一下任務,而且大體描述了一下數據挖掘部分的思路和方法
  • Hunterj Lin

    • 困難:
    • 做業時間實在過短,週日我還要去培訓公司上課,忙的不可開交,隊友又各自有事。
    • 系統後端部署後,因爲跨域等問題沒法與前端對接。
    • 解決方法:
    • 硬生生擠出時間來設計算法,熬夜編程,已經兩天睡眠不足5小時了,感受人快飛了。
    • 修改後端配置文件以支持跨域。
  • 我超可愛的

    • 困難:
    • 遇到的最大的問題就是GitHub的使用,由於以前對GitHub的操做並不熟練,這次用GitHub把整個項目上傳到倉庫出了不少問題。另外就是,這次的題目其實並不適合在手機端寫,由於iOS這邊是沙盒的,使用iPhone的人都瞭解,沒法直接在APP內打開助教提供的文件。
    • 解決方法:
    • 向助教和同窗請教GitHub的使用方法。寫iOS端和web端兩個端的想法夭折了,iOS端只作了一個簡單的作抽獎記錄的功能,並不能抽獎。
  • 你看見個人小熊了嗎

    • 困難:
    • 我主要負責附加功能部分的數據分析和挖掘,並生成可視化的圖表。最主要的困難就是在安裝庫環境的時候不斷地出錯,不斷地推倒重來,差一點想摔電腦了,可是理智告訴我必定要完成好此次任務。
    • 解決方法:
    • 保持耐心,面向谷歌編程,看懂報錯,對每次的錯誤作記錄,積累經驗,以便在下次遇到這個問題的時候能夠很快解決。
  • 玫葵

    • 困難:
    • 我主要負責界面UI設計和附加功能生成詞雲圖的編碼,嘉民帶哥告訴我利用Python現有的庫能夠較輕鬆的編碼,可是我沒有怎麼接觸過Python,只能從零開始。
    • 生成詞雲圖的時候中文的篩選比較困難,初步篩選之後仍有不少沒有意義的詞組。
    • 解決方法:
    • 一個下午的時間都在CSDN上看jieba分詞和wordcloud的學習教程,而且搭建Python的編碼環境。
    • 手動添加篩選詞。
  • haziza

    • 困難:
    • 基礎過於薄弱,不會基本的語法等
    • 解決方法:
    • 瞭解並學習web前端,深刻學習c#,從執行環境到數據類型、公共語言基礎結構

10. 馬後炮

  • Jamin

    • 若是早知軟工實踐事請這麼多,我必定要在上學期把雅思和論文趕出來。
  • Hunterj Lin

    • 若是沒有軟工實踐這門課,那麼我該有多快樂呀,我就學更多本身喜歡的技術了。
  • 我超可愛的

    • 若是能夠不用GitHub,我可能安卓端都寫出來了。
  • 你看見個人小熊了嗎

    • 若是能回到2016年,那麼我確定好好學習。
  • 玫葵

    • 若是再來一次,我轉專業那次確定選擇留級,而後好好學一蛤Python。
  • haziza

    • 若是早點開始學習,那麼會有點用吧。

11. 組員貢獻比例

學號 姓名 貢獻 比例
221600131 Jamin Web、管理master分支 20%
221600308 我超可愛的 iOS、文檔撰寫 17%
221600426 Hunterj Lin 後端編寫,算法設計 22%
021600823 玫葵 數據處理與詞雲圖實現 18%
221600340 你看見個人小熊了嗎 數據處理與柱狀圖實現 18%
221600305 haziza UI設計、文檔撰寫 5%

12. PSP表格

  • Jamin

    PSP2.1 Personal Software Process Stages 預估耗時(分鐘) 實際耗時(分鐘)
    Planning 計劃
    • Estimate • 估計這個任務須要多少時間 20 20
    Development 開發
    • Analysis • 需求分析 (包括學習新技術) 30 30
    • Design Spec • 生成設計文檔 30 15
    • Design Review • 設計複審 30 40
    • Coding Standard • 代碼規範 (爲目前的開發制定合適的規範) 30 30
    • Design • 具體設計 60 90
    • Coding • 具體編碼 200 240
    • Code Review • 代碼複審 30 15
    • Test • 測試(自我測試,修改代碼,提交修改) 30 60
    Reporting 報告
    • Test Repor • 測試報告 30 20
    • Size Measurement • 計算工做量 20 10
    • Postmortem & Process Improvement Plan • 過後總結, 並提出過程改進計劃 30 30
    合計 540 600
  • Hunterj Lin

    PSP2.1 Personal Software Process Stages 預估耗時(分鐘) 實際耗時(分鐘)
    Planning 計劃
    • Estimate • 估計這個任務須要多少時間 30 20
    Development 開發
    • Analysis • 需求分析 (包括學習新技術) 15 30
    • Design Spec • 生成設計文檔 30 15
    • Design Review • 設計複審 20 30
    • Coding Standard • 代碼規範 (爲目前的開發制定合適的規範) 30 30
    • Design • 具體設計 60 90
    • Coding • 具體編碼 400 460
    • Code Review • 代碼複審 30 15
    • Test • 測試(自我測試,修改代碼,提交修改) 15 45
    Reporting 報告
    • Test Repor • 測試報告 60 90
    • Size Measurement • 計算工做量 20 10
    • Postmortem & Process Improvement Plan • 過後總結, 並提出過程改進計劃 30 30
    合計 740 865
  • 我超可愛的

    PSP2.1 Personal Software Process Stages 預估耗時(分鐘) 實際耗時(分鐘)
    Planning 計劃
    • Estimate • 估計這個任務須要多少時間 20 15
    Development 開發
    • Analysis • 需求分析 (包括學習新技術) 15 30
    • Design Spec • 生成設計文檔 30 15
    • Design Review • 設計複審 30 20
    • Coding Standard • 代碼規範 (爲目前的開發制定合適的規範) 30 30
    • Design • 具體設計 60 90
    • Coding • 具體編碼 300 360
    • Code Review • 代碼複審 30 15
    • Test • 測試(自我測試,修改代碼,提交修改) 30 60
    Reporting 報告
    • Test Repor • 測試報告 60 90
    • Size Measurement • 計算工做量 20 10
    • Postmortem & Process Improvement Plan • 過後總結, 並提出過程改進計劃 30 30
    合計 535 765
  • 你看見個人小熊了嗎

    PSP 2.1 Personal Software Process Stages 預估耗時(分鐘) 實際耗時(分鐘)
    Planning 計劃
    • Estimate • 估計這個任務須要多少時間 30 15
    Development 開發
    • Analysis • 需求分析 (包括學習新技術) 20 30
    • Design Spec • 生成設計文檔 30 20
    • Design Review • 設計複審 40 40
    • Coding Standard • 代碼規範 (爲目前的開發制定合適的規範) 30 30
    • Design • 具體設計 60 90
    • Coding • 具體編碼 300 400
    • Code Review • 代碼複審 30 15
    • Test • 測試(自我測試,修改代碼,提交修改) 30 60
    Reporting 報告
    • Test Repor • 測試報告 60 60
    • Size Measurement • 計算工做量 20 10
    • Postmortem & Process Improvement Plan • 過後總結, 並提出過程改進計劃 30 30
    合計 680 800
  • 玫葵

    PSP2.1 Personal Software Process Stages 預估耗時(分鐘) 實際耗時(分鐘)
    Planning 計劃
    • Estimate • 估計這個任務須要多少時間 20 15
    Development 開發
    • Analysis • 需求分析 (包括學習新技術) 90 115
    • Design Spec • 生成設計文檔 - -
    • Design Review • 設計複審 - -
    • Coding Standard • 代碼規範 (爲目前的開發制定合適的規範) - -
    • Design • 具體設計 40 30
    • Coding • 具體編碼 90 120
    • Code Review • 代碼複審 30 40
    • Test • 測試(自我測試,修改代碼,提交修改) 30 60
    Reporting 報告
    • Test Repor • 測試報告 - -
    • Size Measurement • 計算工做量 20 15
    • Postmortem & Process Improvement Plan • 過後總結, 並提出過程改進計劃 30 30
    合計 350 425
  • haziza

    PSP2.1 Personal Software Process Stages 預估耗時(分鐘) 實際耗時(分鐘)
    Planning 計劃
    • Estimate • 估計這個任務須要多少時間 40 30
    Development 開發
    • Analysis • 需求分析 (包括學習新技術) 30 70
    • Design Spec • 生成設計文檔 - -
    • Design Review • 設計複審 - -
    • Coding Standard • 代碼規範 (爲目前的開發制定合適的規範) - -
    • Design • 具體設計 40 30
    • Coding • 具體編碼 30 50
    • Code Review • 代碼複審
    • Test • 測試(自我測試,修改代碼,提交修改) 20 50
    Reporting 報告 50 70
    • Test Repor • 測試報告 - -
    • Size Measurement • 計算工做量 20 15
    • Postmortem & Process Improvement Plan • 過後總結, 並提出過程改進計劃 30 20
    合計 250 335
相關文章
相關標籤/搜索