杰崴企業內部「系統管理」登入畫面截圖

這是我替 某工業配件/管材相關企業 實作的內部「系統管理」平台(客戶名稱匿名)。目標很務實:現場同仁要打卡、請假、寫工作日誌;人資要管出勤與薪資;物料單位要顧進銷存——如果拆成多套工具,最後一定對不齊。

線上 Demo

可直接開啟體驗版本:

此為作品展示用環境,使用模擬資料、不連後端:打卡、出勤總覽、請假、請假紀錄、LINE 通知(模擬)與通知版本管理都能操作,資料只存在你的瀏覽器。正式客戶環境與資料另外部署,不在此示範站。

解決什麼問題?

傳統用即時通訊、Excel、紙本分散處理出勤與進貨時,常出現:

  • 忘打卡沒人提醒
  • 請假狀態口頭說了卻沒留下紀錄
  • 專案用料難以回頭查
  • 薪資計算依賴人工表、出錯成本高

這套系統把流程收斂到同一個登入入口,依權限顯示不同功能。

技術架構

層級 技術
前端 React 18、Vite、React Router、Bootstrap、react-big-calendar
後端 Node.js、Express、WebSocket、node-cron
資料庫 Microsoft SQL Server
整合 LINE 通知(出勤提醒)、PDF/Excel 匯出

開發時前後端分離;正式環境可由 Express 同時提供 API 與前端靜態檔,方便部署在客戶指定環境。

主要模組

  1. 打卡與出勤:選擇場地打卡、出勤查詢、加班、行事曆視圖
  2. 請假:申請、紀錄、主管核准(待審數量會顯示在導覽)
  3. 工作日誌:當日紀錄+多圖上傳
  4. 物料/專案:進貨、用量、專案關聯
  5. 人資:人員資料、薪資計算(勞健保、加班、津貼等)、PDF 匯出
  6. 設備保養:依場地/樓層拍照與打包下載

前端用模組化資料夾(出勤、人資、物料、日誌)拆開,後端走路由 → controller → SQL connection pool 的結構,之後加功能比較不會整坨黏在一起。

實作上印象深刻的點

  • 權限數字化:角色用數字代碼存在前端狀態,頁面依權限顯示或隱藏功能。實用,但也要記得重要 API 後端還要再驗一次。
  • 排程與 LINE 通知:用 cron 處理忘打卡、請假狀態更新;出勤相關提醒透過 LINE 通知推送,補上「人沒盯電腦螢幕」時也能收到訊息。例如上下班漏打卡時,系統會發 LINE 提醒,讓現場同仁不用一直開著後台。
  • 即時感:WebSocket 用來推狀態;打卡頁也強調即時時間與場地情境。
  • 報表:Excel/PDF 匯出是人資真正會天天用的功能,UI 華麗不如輸出正確。

回頭看

這類專案的價值不在酷炫動畫,而在把客戶每日工作節奏摸清楚。程式可以重構,但如果流程對不上現場,系統不會有人用。

若你也在幫傳產或中小企業做內部系統,建議優先對齊:誰每天打開?最怕漏什麼資料?報表要匯出成什麼格式? 這三題答完,架構選擇會清楚很多。