指南

如何建立時間追蹤應用程式:計時器、工時表及報告

時間追蹤應用程式會記錄誰在什麼工作上花了多少時間,以及這段時間是否可以收費。要建立一個,你需要可供追蹤的客戶及專案、一個即使瀏覽器分頁關閉仍能運作的計時器、可用於手動新增及修正紀錄的方式、每週工時表,以及能把原始紀錄整理為總數的報告。AI 應用程式建立工具可以憑一個清晰的提示,產出可運作的初版。真正要緊的決定屬於規則範疇:取整方式、誰可以編輯什麼、何時把某一週鎖定,以及什麼才算是可收費的時間。

先決定你追蹤時間的目的

同一個應用程式,會因背後的用途不同而有很大分別:

  • **向客戶收費。**按客戶計算時數,為每位人員或每個專案設定費率,並能匯出以便開立發票。準確性及審計紀錄最為重要。
  • **為時薪員工計算薪金。**打卡上班及下班、休息時間、加班規則,以及經理簽核。當地勞工法例適用,所以要查清楚你必須保存哪些紀錄。
  • **了解時間花在哪裡。**個人或團隊層面的洞察,預估與實際的對比。輸入速度比審批流程更重要。

第一版應只為其中一個主要用途而設計。自由工作者的收費追蹤工具,與倉庫的輪班打卡機,雖然都有計時功能,但其他部分幾乎沒有共通之處。

應用程式需要什麼

資料

資料表主要欄位
客戶名稱、預設時薪、是否有效
專案所屬客戶、名稱、預算時數(可選)、預設是否可收費
任務或類別所屬專案、名稱(設計、會議、支援)——起步時可以不用
時間紀錄人員、專案、任務、開始時間、結束時間、時長、備註、是否可收費、狀態(草稿、已提交、已批准)、是否已開立發票
人員名稱、電郵、角色、成本費率或收費費率

每筆紀錄都應儲存開始及結束時間,並由此計算時長。以「2 小時 15 分鐘」這類方式手動輸入的紀錄,可以只儲存時長而不記錄時間,但仍需保存日期。

頁面

  • **計時器及今日:**一個大大的開始/停止按鈕、專案選擇器,以及其下今日的紀錄。
  • **週檢視:**一個格狀表格,專案列在左邊,星期一至日排在上方,人們可直接在格內輸入時數。許多人比計時器更喜歡這種方式。
  • **報告:**按日期範圍列出每位客戶、專案及人員的時數,並分開可收費與不可收費的部分,附 CSV 匯出功能。
  • **管理後台:**管理客戶、專案、人員及費率。

權限

建置之前,先寫下誰可以做什麼:

  • 人們只可查看及編輯自己的紀錄。
  • 經理可查看團隊的紀錄,並批准每週工時。
  • 只有管理員可以更改費率,理想情況下,也只有管理員才能看到費率。
  • 一旦紀錄已獲批准或已開立發票,除非管理員重新開啟,否則任何人都不能再編輯。

最後這條規則,正是令報告值得信賴的關鍵。有關登入的部分,請參閱如何為應用程式加入登入功能;有關角色,則可參閱角色型存取控制。

決定與取捨

計時器、手動輸入,還是兩者並用

計時器只有在人們記得按下開始時才準確,但這不一定做得到。手動輸入對於會在星期五才填寫整週工時的人來說很快捷。大多數團隊兩者都需要,還要有方法在事後修改計時器的紀錄。如果只能建置一種,應選擇週格狀表格:它較簡單,而且能涵蓋「忘記按開始」的情況。

正在運行的計時器存放在哪裡

在瀏覽器中計算的計時器,一旦分頁關閉便會遺失所有時間。應在有人按下開始時,就把開始時間儲存到資料庫,然後以現在的時間減去它來顯示經過的時間。如此一來,計時器便能在重新整理、不同的筆記型電腦及手機之間持續運行。也要決定一個人能否同時運行兩個計時器。通常的答案是不能:開始一個新的計時器,就會停止舊的那個。

取整

常見的規則是把每筆紀錄向上取整到最接近的 6、15 或 30 分鐘。資料庫中應保存精確的時間,只在報告及發票中套用取整。報告中應同時顯示兩個數字,免得有人感到意外。

鎖定與審批

如果沒有鎖定功能,上個月已開立發票的時數,可能在發票寄出後仍被更改。一個簡單的模式是:人們提交一週的工時,經理批准,獲批准的紀錄便變為唯讀。如果你在應用程式內開立發票,應把紀錄標記為已開立發票,以免重複收費。

時區與午夜

應以 UTC 儲存時間,並以該人員的時區顯示。還要決定一筆由晚上 11 時持續至凌晨 1 時的紀錄,應歸入哪一天。通常的做法是歸入它開始的那一天。

一個有效的首個提示

為一間六人設計工作室建立時間追蹤應用程式。資料包括:客戶(名稱、時薪)、專案(所屬客戶、名稱、預算時數),以及時間紀錄(人員、專案、開始時間、結束時間、備註、是否可收費、狀態草稿/已提交/已批准)。頁面包括:「今日」頁面,設有開始/停止計時器及專案選擇器,開始時間會儲存至資料庫,因此計時器在重新整理後仍會保留;「週」頁面,專案為列、星期一至日為欄,人們可直接在格內輸入時數;「報告」頁面,按日期範圍顯示每位客戶、專案及人員的時數,分開可收費與不可收費,並附 CSV 匯出;以及「管理」頁面,管理客戶、專案及人員。每人同時只可運行一個計時器。已批准的紀錄不可編輯。以 UTC 儲存時間,並以用戶的時區顯示。設計要乾淨、快速,並方便用鍵盤操作。

這個提示列明了資料表、頁面、計時器的行為及鎖定規則,這些都是 AI 否則就會自行猜測的部分。

建置步驟

  1. **先做專案及手動輸入。**客戶、專案、新增紀錄的表格及列表。確保總數相加正確。
  2. **計時器。**開始、停止、每人只可有一個正在運行的計時器、儲存開始時間。測試方法:開始計時器、關閉分頁,然後重新開啟。
  3. **週格狀表格。**在格內輸入時數,會建立或更新一筆紀錄。
  4. **登入及角色。**在真正的人使用之前加入,以免有人意外看到費率或其他人的紀錄。
  5. **提交及批准。**每週提交、經理批准,批准後變為唯讀。
  6. **報告及匯出。**日期範圍、分組、可收費比例、CSV。
  7. 費率及發票掛鉤(如果你向客戶收費)。把開立發票的步驟放在獨立的步驟或應用程式中處理;參閱如何建立發票應用程式。
  8. **測試邊緣情況。**跨午夜的紀錄、夏令時間轉換的一週、從兩部裝置同時開始的兩個計時器、編輯已批准的紀錄。

常見錯誤

  • **只在瀏覽器中計算時間。**在示範時運作正常,但在實際使用時會遺失時數。
  • **把取整後的數值儲存下來。**你永遠無法取回精確的時間。
  • **已批准的週沒有鎖定。**報告會與發票對不上。
  • **所有人都能看到所有人的費率。**從一開始就應按角色隱藏費率。
  • **必填欄位過多。**如果記錄時間要花上好幾秒以上,人們便會停止記錄,數據就變成虛構。起步時應將任務及備註設為可選。
  • **在追蹤工具內建置完整的專案管理功能。**應把專案保持為簡單的標籤。如果你需要任務、看板及期限,那便是另一個獨立的專案管理工具專案。

何時改用現成的追蹤工具較好

如果你的團隊只需要計時器、週檢視及報告,專用的時間追蹤產品已經做得很好。它們還附帶了一些需要大量工夫才能建置的功能:桌面及手機應用程式、閒置偵測、日曆及工具整合,以及提醒員工填寫工時表。對於時薪薪金,專為此設計的工具會比第一版的自製應用程式更安全地處理休息時間、加班及紀錄保存。

以下情況則適合自行建置:你的規則不合用、你希望把時數連接到你已保存的資料(工作、工單、長期聘約、發票),當大型團隊的按座位收費累積起來變得昂貴,或時間追蹤只是更大型內部工具的一部分。我們的自建與購買軟件比較指南剖析了這項取捨;如果你的工時目前存放在共用試算表中,可參閱如何把試算表變成應用程式。

用 Mythex 建置

在 Mythex 中,你用對話描述追蹤工具,代理便會在即時預覽中把它建置出來。當紀錄需要儲存時,它會加入專用的 Postgres 資料庫,你可以直接要求,也可以輸入 /database。文件中的內部工具用例建議為第一版挑選一個最棘手的步驟,這與此處的情況相符:先從紀錄及週格狀表格做起,再加入計時器及審批。

你團隊的登入,是你自行選擇的認證方式來加入(加入登入教學)。Mythex 帳戶是供建置者使用的,而不是供使用你應用程式的人使用。核心流程運作後,可輸入 /test,讓代理在預覽中操作一遍(開始計時器、新增紀錄、執行報告),並回報哪裡出錯。如果想要視覺上的起點,可瀏覽應用程式範本。

常見問題

時間追蹤應用程式需要哪些功能?

客戶及專案清單、開始/停止計時器、手動新增或修正紀錄的方式、每週工時表檢視,以及按專案及人員列出時數的報告。審批、可收費費率及匯出功能可以稍後再加。

瀏覽器關閉時,如何避免計時器遺失時間?

計時器一開始計時,就立即把開始時間儲存到資料庫,並根據這個已儲存的時間計算經過的時間。這樣,關閉分頁、重新整理或切換裝置都不會遺失任何資料。

時間應該取整嗎?

應儲存精確的開始和結束時間,只在報告及發票中套用取整。這樣日後更改取整規則時,就無需重寫過去的紀錄。

自行建立時間追蹤工具值得嗎?

通常只有在你的規則較特別,或你希望把時數與你已保存的其他資料(例如工作、客戶或發票)相連時才值得。如果只需要簡單的計時器和報告,現成的追蹤工具更便宜、更快。

Mythex · Pricing · 用 AI 建造任何嘢 · 網站及應用程式範本 · Mythex 比較 · AI 應用程式開發詞彙表 · 免費 AI 應用程式開發工具 · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(台灣)