馬拉松跑步 時間:6天 員工:1000人 地點:24個 分早晚班,平均每個地點有1個主管及20名員工 需求: 打卡APP - 上班、下班(午休)、上班、下班 (每人每日4次) 記錄需要傳給政府 --> 即時? 全公司每日傳一次? 多人同時打卡致server崩潰? GPD定位? 掃QRcode? ( 操作流程、WebAPP、API、SQL、function、開發budget、開發時間、打卡漏洞 ) -------------------------------------------------- (因為我從未參與過馬拉松,所以不太了解實際活動流程及工作人員的情況) 1. 因為是公司內部使用的APP,所以"美觀性"為次要,設計及預算上以"功能性"作為首要考量 2. 員工打卡資料,如果每天只傳送一次給政府,會在晚上定時(如00:00)傳送 3. 項目說明上提到員工不一定同一個時間點上班,所以應該不會出現百人同時打卡做成的網絡卡死(員工操作上只簡單使用一個單向資料傳輸去完成打卡),設計上也會針對這一點進行優化(下面再說明) 此外,相反如果員工的上班時間都非常接近,是否可以由小主管進行替員工打卡(一鍵打卡)的操作?(因為平均一個地點只有20位員工,一天只打卡4次(點人數4次),而且是短期活動) GPS -> 精準、有效防止代打卡問題 掃QRcode -> 方便簡單、但容易出現同事代打卡 如果是由我獨立負責開發的話, 需要開發一個WebAPP供員工打卡、一個後台供主管查閱資料 - 定制方案、客戶溝通、簽約 - 時需:5-10天 - 設計、開發WebAPP及後台(含測試) - 時需:7-10天 (跟客戶匯報的預期開發時間:10-15天) 其他時間消耗因素:與政府溝通(如資料傳送方式) *如客戶就是政府,需預留更多額外時間 如果是由我獨立負責開發的話, 開發WebAPP(單頁面) - 使用ReactJS 開發後台(RWD)/後端 - 使用PHP 實際策劃、設計、開發時間(不含溝通),大概7-12天 -------------------------------------------------- note : - 員工需要在WebAPP登錄帳號,登入資訊保存在電話內(活動期內只登入一次 不需每天重複操作 降低SERVER負荷) #記錄員工打卡時的IP, 供後台查閱, 盡量防止代打卡 - SERVER可以將"記錄打卡資料"及"處理資料"分開不同時間處理,以避開SERVER流量高峰時段的負荷。(例如員工打卡時先記錄員工ID、時間、地點等;待SERVER空閒時再處理是否遲到、工作時數計算等運作) 前端功能:登入登出、打卡、查閱打卡記錄 後台功能:查閱員工登入狀況、查閱員工打卡狀況、查閱員工的帳號密碼、查閱員工工作時數或是否遲到、篩選功能等等 後端:在MySQL獲取及寫入資料、按時將打卡數據傳送給政府,定時在網絡空閒時處理/備份數據 活動/系統流程: (1) 活動前: 生成1000組帳號密碼給員工登入前端WebAPP,部分帳號密碼的權限可供公司主管登入後台之用。 員工需要在活動開始前幾天,用電話預先在WebAPP內登入帳號,並嘗試打卡;主管亦可以在後台查看登入及打卡狀況,以降低活動當天的不穩定因素 (2) 活動期: 員工到指定地點 -> 使用WebAPP -> 選擇上班/下班打卡 -> WebAPP傳送打卡資料給後端 -> 後端處理寫入資料到MySQL -> 後台可向MySQL查閱資料記錄 主管使用電腦/電話 -> 在後台登入admin帳號 -> 選擇想要查閱資料 -> 後台向MySQL請求數據 -> 顯示活動資料 -------------------------------------------------- MySQL: T(account) 員工ID - int 員工名稱 - string 帳號 - string 密碼 - string 帳號權限 - int - (主管/員工) (其他資料:如員工預定上班時間、負責地點、崗位等) T(punch) 員工ID - int 打卡 - int - (上班/下班) 日期時間 - date 打卡地點ID - int 打卡IP - string (其他資料:如是否以成功發送給政府、員工是否遲到等) T(work) 員工ID - int 工作日期 - date 工作時間 - double T(position) 打卡地點ID - int 打卡地點名稱 - string -------------------------------------------------- 其他: 不好意思,想補充一下,在CV未提及到我能以ReactJS開發SPA網頁,以及使用BootStrap進行RWD網頁設計。