本系統是專為學校警衛巡邏與校園安全設計的智慧管理平台,基於 Google Apps Script (GAS) 開發,整合 Google 試算表作為雲端資料庫。系統採用「Web-Based 輕量化架構」,免下載安裝 App,並深度整合了 NFC 磁扣感應、裝置指紋白名單管制、GPS 距離判定與高對比銀髮友善界面,打造安全防撬、簡便易用的校園巡查工具。
一、 NFC 磁扣感應打卡運作機制
本系統完全支援 NFC 磁扣/貼紙感應打卡。為了突破 iOS(iPhone)與 Android 系統在網頁內直接呼叫讀卡機的權限封鎖,系統採用了最穩定、業界標準的「外掛式 NDEF URL 喚醒技術」:
1. 運作原理
當警衛將手機背面靠近該巡邏晶片時,手機作業系統(iOS 或 Android)會在系統底層自動感應,免開啟任何 App 即可直接喚醒預設瀏覽器(Safari / Chrome)並開啟該巡邏點的簽到頁面。
2. NFC 磁扣製作與防呆設定步驟
準備工具:市售普通 Ntag213 / Ntag215 / Ntag216 等規格的 NFC 貼紙或硬殼鑰匙圈磁扣,以及手機下載免費的 「NFC Tools」 App。
寫入步驟:
開啟 NFC Tools App,切換至 「寫入 (Write)」 頁籤。
點選 「新增紀錄 (Add a record)」 ➔ 選擇 「URL / URI」。
輸入該巡邏點的完整網址,務必在網址後方加上防呆參數,例如:
https://script.google.com/macros/s/您的API金鑰/exec?page=loc1&openExternalBrowser=1
(註:加上 &openExternalBrowser=1 能強迫手機直接跳出 LINE 或 FB,使用原生 Chrome/Safari 開啟,確保 GPS 高精準度與快取正常。)
點選 「寫入 (Write)」,然後將手機背部靠近 NFC 磁扣/貼紙,畫面顯示綠色勾勾即表示製作完成!
安裝布置:將寫入好的 NFC 貼紙貼於巡邏點(例如東側廁所門口、教室窗邊),警衛巡邏時僅需將手機靠上去感應,即可瞬間喚醒打卡。
二、 核心功能特色
🛡️ 1. 裝置指紋白名單嚴格准入機制
為了防止警衛「在家打卡」或「非相關人士亂掃 QR Code」,系統啟用了目前網頁技術中安全強度最高的 V2 專屬裝置指紋(UUID)技術:
首次登錄隨機碼:當手機第一次打開系統時,會在手機瀏覽器安全沙盒(LocalStorage 與 Cookie)中強制鎖定一組世界唯一的 UUID 識別碼(格式如 FPS-UUID-79262B...)。
無縫嚴格阻擋:當系統設定中的 是否允許未登錄的手機打卡 設為 no 時,系統在載入任何簽到畫面或功能前,會率先完成指紋比對。非登記在案的白名單手機,會被直接卡在全螢幕紅色阻擋面板(展示大字體警語:「你的手機未經登錄,無法簽到!!」),絕不給予任何搶先打卡、繞過點擊的機會。
📍 2. 動態 GPS 距離防弊判定
後台可調基準距離:拋棄傳統將判斷距離寫死在程式碼的作法,管理員可以在「系統設定」試算表中隨時調整 判定距離(例如:輸入 30 代表 30 公尺)。
即時經緯度比對:當警衛點選打卡時,系統會調用手機的高精度 GPS。將警衛當下的座標與該巡邏點設定的目標經緯度進行 Haversine 距離演算法比對。
距離標記:若算出的距離大於設定值,系統在資料庫中會自動將該筆紀錄註記為 「太遠」,並以紅色字體警示管理員;若處於地下室等無法接收衛星訊號之處,系統會自動切換為 「室內打卡」。
👴 3. 專為年長警衛設計的「高對比、超大字體」界面
考慮到學校值班警衛常有老花眼或夜間視線不佳的情形,打卡畫面進行了貼心的工業級 UI 調整:
極高對比今日紀錄彈窗:今日紀錄 Modal 採用 100% 完全不透明(Solid Opaque) 的深黑色/深灰色底色,徹底遮蔽後方背景,防止文字重疊。
字體倍數放大:打卡卡片中的文字、巡邏點位置、正常與異常狀態標籤均採用 粗大字體(18px - 22px 以上),並加大按鈕的觸控點擊範圍,確保長輩操作無礙。
🗄️ 4. 每月自動排程封存與手動歸檔清倉
為了不讓過多的歷史巡邏紀錄拖慢試算表的存取速度,系統設計了優異的歸檔算法:
每月自動歸檔:內建自動觸發器,會在每月 1 號凌晨 01:00,自動將上個月的 巡邏紀錄 整頁複製,另存為該年月份命名(如 2026-06)的備份工作表,並隨即自動清空主表(只保留欄位標題)。
一鍵手動歸檔:管理員隨時可在後台點選「歷史紀錄手動歸檔」按鈕,立即建立當前月份備份並清倉。
歸檔安全過濾:歷史查詢的下拉式選單會自動排除「說明」、「系統設定」及「巡邏紀錄」工作表,維持乾淨清爽。
三、 系統運作與資料邏輯
1. 系統整體架構圖
[ 警衛手機感應 NFC / QR ]
│
▼
[ 載入安全驗證中 (checkingPanel) ] ─── 檢查: 是否允許未登錄? ➔ (是 / no)
│ │
├─(否: 指紋比對未通過) ──► [ 全螢幕紅色阻擋面板 ] (顯示 UUID 供管理員登錄)
│
└─(是: 驗證通過) ──► [ 顯示打卡主介面 ]
│
[ 警衛選擇:一切正常 / 異常回報(拍照、語音) ]
│
▼
[ 點選:送出打卡 ]
│
┌─────────────────────────────┴─────────────────────────────┐
▼ ▼
[ GPS與目標座標比對 ] [ 照片/語音檔案上傳 ]
├─ 距離 <= 基準(30m) ➔ 顯示「正常」 └─ 上傳至指定雲端資料夾,
└─ 距離 > 基準(30m) ➔ 顯示「太遠」 並在紀錄中生成專屬瀏覽連結
│ │
└─────────────────────────────┬─────────────────────────────┘
▼
[ 寫入試算表紀錄 ]
狀態預設:「等待管理者確認」
2. 資料庫工作表規格說明
工作表 A:【系統設定】 (管理員配置專用)
系統設定採用「標頭對照模式」,允許管理者彈性調整欄位順序。系統讀取機制會橫向掃描第一列(Row 1)以比對名稱,並抓取正下方第二列(Row 2)對應數值:
判定距離:填寫數值(公尺),例如 30。
是否允許未登錄的手機打卡:填寫 yes 或 no。
警衛通訊簿與裝置指紋 (E欄起):
D 欄為「警衛姓名」,E 欄為「裝置指紋」。當手機未登錄時,管理員需將警衛手機上顯示的 FPS-UUID-XXXX... 代碼貼入此 E 欄中,系統即會將該手機與該警衛姓名完成自動配對。
G 欄為「巡邏點中文名稱」,H 欄為「巡邏點標準 GPS 定位座標(緯度,經度)」,I 欄為「對應的 HTML 網頁檔名」(例如 loc1)。
工作表 B:【巡邏紀錄】 (打卡資料寫入目的地)
每當警衛成功提交打卡,系統會按順序寫入以下欄位(A 至 N 欄):
紀錄ID | 時間 | 簽到位置 | 警衛姓名 | 裝置指紋 | GPS座標 | 實際距離 | 距離是否太遠 | 簽到類型 | 是否上傳檔案 | 文字與檔案連結 | 回報確認狀態 | 確認者職稱 | 確認時間
四、 管理者日常操作指南
1. 如何為新警衛/新手機「綁定裝置指紋」?
在管理介面中的 是否允許未登錄的手機打卡 設為yes,
讓警衛拿著新手機直接感應巡邏點的 NFC 磁扣(或掃描 QR Code)。
可進行第一次未登錄手機打卡,系統會抓取警衛手機的裝置指紋,
管理者在管理介面中,在回報紀錄中的警衛姓名中有一鍵登錄功能
即可完成新警衛的手機、姓名的登錄,登錄完畢後, 是否允許未登錄的手機打卡 設回為no
打開 Google 試算表的【系統設定】工作表:
在 D 欄 輸入該警衛的姓名。
將複製好的 UUID 碼貼入 E 欄 的對應儲存格中。
警衛再次用手機感應 NFC 磁扣,即可順暢載入簽到網頁,打卡功能解鎖成功!
2. 如何調整「打卡判定距離」與「開放限制」?
如果學校因為有新巡邏點位於室內、或校園死角 GPS 訊號較差,常被判斷為「太遠」,您可以打開【系統設定】試算表:
找到第一列名為 判定距離 的欄位,將其下方第二列的儲存格數字改大(例如:30 改為 50)。系統在下一次打卡時,就會自動套用 50 公尺作為新基準,無需改寫任何網頁程式碼。
若要暫時關閉手機指紋限制(例如運動會期間開放外聘保全隨意打卡):
找到第一列名為 是否允許未登錄的手機打卡 的欄位,將其下方第二列的儲存格改為 yes。此時,任何沒經過指紋登錄的手機也可以進入打卡畫面完成打卡。
3. 如何在後台「審核異常與回報」?
打開 管理後台頁面 (admin) 並登入帳密。
系統上方會以紅底標示 「待確認異常與回報紀錄 (X 筆待處理)」。這些是警衛回報為「發現問題回報」或「距離太遠/異常」的紀錄。
檢視該筆資料的文字描述,若有上傳照片或錄音,可點選 「檔案 1 🔗」 直接開啟 Google 雲端硬碟預覽照片或收聽錄音。
核實無誤後,點選右側綠色的 「核備」 按鈕。系統會自動將該筆紀錄狀態改為「回報已確認」,並在試算表中寫入確認者身分(如:總務主任、事務組長)與核准時間。
五、 歷史存檔備份與查詢指南
1. 定期自動備份機制 (每月)
系統程式碼中內建了排程觸發器 autoArchiveMonthly。
運作時間:每月的 1 號凌晨 01:00。
自動動作:會自動將前一個月的 巡邏紀錄 整頁複製,重命名並移到試算表最後方(例如命名為 2026-06),並清除當前主表以便新月份重新計數。管理員不需做任何設定即可自動運作。
2. 什麼時候需要「手動歸檔」?
若遇到學期末、警衛人員更迭,或是資料庫因突發事件需要立刻清空時:
登入管理後台,點選右上角黃色的 「歷史紀錄手動歸檔」。
系統會跳出確認視窗,確認後會立刻將當前所有紀錄封存成 2026-07(手動) 工作表,並清空主表。
3. 如何查詢歷史已封存的紀錄?
登入管理後台,點選右上角紫色的 「查詢歷史紀錄」。
系統會跳出歷史存檔資料庫查詢視窗。
在左上角的下拉選單中,會自動為您列出所有已封存的月份工作表。
(註:系統已自動過濾並排除「說明」、「系統設定」與「巡邏紀錄」工作表,維持乾淨清爽。)
選擇指定月份,系統會即時、安全地下載並渲染該月份的所有巡邏詳情,同樣支援各欄位的點擊排序與快速分頁。
登入 後即可發表評論