0. 作品介紹

作者 蘇仁宗 朝山國小

本系統是專為學校警衛巡邏與校園安全設計的智慧管理平台,基於 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. 如何查詢歷史已封存的紀錄? 登入管理後台,點選右上角紫色的 「查詢歷史紀錄」。 系統會跳出歷史存檔資料庫查詢視窗。 在左上角的下拉選單中,會自動為您列出所有已封存的月份工作表。 (註:系統已自動過濾並排除「說明」、「系統設定」與「巡邏紀錄」工作表,維持乾淨清爽。) 選擇指定月份,系統會即時、安全地下載並渲染該月份的所有巡邏詳情,同樣支援各欄位的點擊排序與快速分頁。


8 0 0
辦公
封面圖 封面

1. 直接使用

只需要幾個步驟就能把這個工具用在自己的班級。

  1. 開啟試算表 點下方連結,在瀏覽器開啟作者分享的 Google 試算表。 開啟 Google 試算表
  2. 建立副本 上方選單點「檔案 → 建立副本」,試算表和 Apps Script 程式碼會一起複製到你的雲端硬碟。
    副本會出現在你的 Google 雲端硬碟,後續修改不會影響原作者的試算表。
  3. 修改成自己的資料 把試算表裡的範例資料替換成你班級的真實資料(學生姓名、座位等)。
  4. 分享 Apps Script 網址 副本試算表上方選單:擴充功能 → Apps Script部署 → 管理部署 → 取得網址,或重新部署後取得新網址。
    如果要給其他人填寫資料,請確認部署時「存取權限」設為「任何人」。

💬 評論區

老師們的交流與提問

載入評論中...