如何打造時間追蹤應用程式:計時器、工時表與報表
時間追蹤應用程式記錄誰在什麼工作上花了多少時間,以及這些時間能不能計費。要打造一個,你需要用來追蹤的客戶與專案、在瀏覽器分頁關閉後仍能保留的計時器、手動新增與修正紀錄的方式、每週工時表,以及把原始紀錄整理成總計的報表。AI 應用程式建構工具可以根據一份清楚的提示產生可運作的第一版。真正重要的決定都與規則有關:捨入、誰可以編輯什麼、何時鎖定某一週,以及什麼算是可計費的時數。
先決定你追蹤時間的目的
同樣的應用程式,會因為背後的目的不同而有不同的樣子:
- 向客戶計費。 每個客戶的時數、每位員工或每個專案的費率,以及方便製作發票的乾淨匯出。準確性與稽核紀錄最重要。
- 時薪員工的薪資計算。 上下班打卡、休息時間、加班規則,以及主管簽核。適用當地的勞動法規,所以要確認你必須保存哪些紀錄。
- 了解時間都花在哪裡。 個人或團隊的洞察,預估與實際的對照。輸入的速度比核准流程更重要。
第一版要挑一個主要用途。自由接案者的計費追蹤器,和倉庫的輪班打卡機,可能共用計時器的概念,但其他地方幾乎沒有相同之處。
應用程式需要什麼
資料
| 資料表 | 主要欄位 |
|---|---|
| 客戶 | 名稱、預設時薪、是否啟用 |
| 專案 | 所屬客戶、名稱、預算時數(可選)、預設是否可計費 |
| 任務或類別 | 所屬專案、名稱(設計、會議、客服)——第一版可以先不做 |
| 時間紀錄 | 人員、專案、任務、開始時間、結束時間、時長、備註、是否可計費、狀態(草稿、已提交、已核准)、是否已開立發票 |
| 人員 | 姓名、電子郵件、角色、成本費率或計費費率 |
每一筆紀錄都要儲存開始與結束時間,並從中推算時長。以「2 小時 15 分鐘」這種方式手動輸入、沒有時間點的紀錄,可以只儲存時長,但仍要保存日期。
頁面
- 計時與今日: 一個大的開始/停止按鈕,一個專案選擇器,下方列出今天的紀錄。
- 週檢視: 左側是專案、上方是星期一到星期日的表格,人們可以直接在格子中輸入時數。許多人比起計時器更喜歡這種方式。
- 報表: 依日期範圍,依客戶、專案與人員統計時數,並區分可計費與不可計費的部分,附 CSV 匯出。
- 管理後台: 管理客戶、專案、人員與費率。
權限
動手建置之前,先寫下誰可以做什麼:
- 人們只能看到與編輯自己的紀錄。
- 主管可以看到團隊的紀錄,並核准每週工時。
- 只有管理員可以更改費率,而且最好只有管理員能看到費率。
- 紀錄一旦被核准或已開立發票,除非管理員重新開啟,否則沒有人可以編輯。
最後這條規則,正是讓報表值得信任的關鍵。我們的為應用程式加入登入功能指南涵蓋登入的部分,而角色型存取控制則涵蓋角色。
決定與取捨
計時器、手動輸入,還是兩者都要
計時器的準確度取決於人們是否記得按下開始,這並不總是做得到。手動輸入對於會在週五才補填整週的人來說很快。大多數團隊兩者都需要,也需要能在事後編輯計時紀錄的方式。如果只能做一種,就做週格線;它比較簡單,也能涵蓋忘了開始計時的情況。
進行中的計時器存在哪裡
在瀏覽器中計時的計時器,在分頁關閉時會把一切都弄丟。當有人按下開始時,就把開始時間存進資料庫,然後用現在的時間減去它,來顯示經過的時間。這樣計時器就能跨越重新整理、筆電與手機持續運作。另外要決定一個人能不能同時執行兩個計時器。通常的答案是不行:開始新的計時器會停止舊的那一個。
捨入
常見的規則是把每筆紀錄無條件進位到最接近的 6、15 或 30 分鐘。在資料庫中保留精確時間,只在報表與發票中套用捨入。在報表中同時顯示兩個數字,讓人不會感到意外。
鎖定與核准
如果沒有鎖定,上個月已計費的時數可能會在發票寄出後被更動。一個簡單的模式:人們提交一週的紀錄,主管核准,核准後的紀錄變成唯讀。如果你是從應用程式開立發票,就把紀錄標記為已開立發票,避免重複計費。
時區與午夜
以 UTC 儲存時間,並以使用者的時區顯示。要決定從 23:00 到 01:00 的紀錄屬於哪一天。通常的答案是它開始的那一天。
一個有效的首次提示
為一間六人的設計工作室打造一個時間追蹤應用程式。資料:客戶(名稱、時薪)、專案(所屬客戶、名稱、預算時數),以及時間紀錄(人員、專案、開始、結束、備註、是否可計費、狀態草稿/已提交/已核准)。頁面包括:「今日」頁面,有一個開始/停止計時器與專案選擇器,計時開始時就把開始時間存進資料庫,因此重新整理後計時器仍會持續;「週」頁面,專案為列、星期一到星期日為欄,人們可以直接輸入時數;「報表」頁面,依日期範圍顯示每位客戶、專案與人員的時數,並區分可計費與不可計費,附 CSV 匯出;以及「管理」頁面,管理客戶、專案與人員。每位使用者同時只能執行一個計時器。已核准的紀錄不能編輯。以 UTC 儲存時間,並以使用者的時區顯示。設計要簡潔、快速,並且適合用鍵盤操作。
建置步驟
- 先做專案與手動輸入。 客戶、專案、新增紀錄的表單與列表。確認總計數字正確。
- 計時器。 開始、停止、每人只能有一個進行中的計時器、儲存開始時間。測試方式:開始計時、關閉分頁,然後重新打開。
- 週格線。 在格子中輸入時數會建立或更新紀錄。
- 登入與角色。 在真人使用前加入,避免有人不小心看到費率或別人的紀錄。
- 提交與核准。 每週提交、主管核准、核准後唯讀。
- 報表與匯出。 日期範圍、分組方式、可計費拆分、CSV。
- 費率與發票勾點(如果你要向客戶計費)。把開立發票放在獨立的步驟或應用程式中;參見如何打造發票應用程式。
- 測試邊界情況。 跨午夜的紀錄、夏令時間切換的那一週、兩台裝置同時開始兩個計時器、編輯已核准的紀錄。
常見錯誤
- 只在瀏覽器中計算時間。 它在展示時能運作,但在實際使用中會遺失時數。
- 捨入後直接儲存。 你永遠無法再取回精確的時間。
- 已核准的週沒有鎖定。 報表會和發票對不上。
- 所有人都能看到所有人的費率。 從第一天起就依角色隱藏費率。
- 必填欄位太多。 如果記錄時間要花超過幾秒,人們就會停止記錄,資料就變成虛構的。一開始讓任務與備註都是選填。
- 在追蹤工具裡做完整的專案管理器。 把專案維持為簡單的標籤。如果你需要任務、看板與截止日期,那是專案管理工具,屬於另一個建置項目。
什麼時候現成的追蹤工具是更好的選擇
如果你的團隊需要計時器、週檢視與報表,專門的時間追蹤產品已經做得很好。它們還附帶一些自己做需要大量工夫的功能:桌面與手機應用程式、閒置偵測、行事曆與工具整合,以及提醒大家填寫工時表。對於時薪薪資,專為此設計的工具在處理休息時間、加班與紀錄保存上,會比第一版的自製應用程式更安全。
當你的規則不符合現成產品、你想把工時與你已經保存的資料(工作、工單、長期合約、發票)連結起來、大型團隊按席位計費的費用不斷累積,或時間追蹤只是一個更大內部工具的一部分時,就自己打造。我們的自建或購買軟體指南說明了這種取捨;如果你的工時目前放在共用的試算表中,參見如何把試算表變成應用程式。
用 Mythex 建置
在 Mythex 中,你可以在對話中描述追蹤工具,由代理人在即時預覽中建置。當紀錄需要儲存時,它會加入專用的 Postgres 資料庫,你可以直接要求,或輸入 /database。文件中的內部工具使用案例建議第一版挑選一個最痛的步驟,這很適合這裡:先做紀錄與週格線,然後再加入計時器與核准。
團隊的登入是你用自己的驗證方式加入的(加入登入的食譜)。Mythex 帳號是給建置應用程式的人用的,不是給使用你應用程式的人用的。核心流程運作後,輸入 /test,讓代理人在預覽中逐步操作(開始計時、新增紀錄、執行報表),並回報哪裡出錯。若需要視覺上的起點,可以瀏覽應用程式範本。
常見問題
時間追蹤應用程式需要哪些功能?
客戶與專案清單、開始/停止計時器、可以手動新增或修正紀錄的方式、每週工時表檢視,以及依專案與人員統計時數的報表。核准、計費費率與匯出功能是之後的下一步。
瀏覽器關閉時,怎麼避免計時器遺失時間?
計時器一開始就把開始時間存進資料庫,然後根據這個已儲存的時間計算經過的時長。這樣關閉分頁、重新整理或換裝置都不會遺失任何東西。
時間需要捨入嗎?
儲存精確的開始與結束時間,只在報表與帳單中套用捨入。這樣之後要更改捨入規則時,就不需要改寫歷史紀錄。
值得自己打造時間追蹤工具嗎?
通常只有在你的規則很特殊,或你希望工時和你已經保存的其他資料(例如工作、客戶或發票)連結時才值得。若只是單純的計時器與報表,現成的追蹤工具比較便宜也比較快。