# 長照送餐系統 · 操作說明書

版本 2.0 · 2026-05-27 適用對象:社工、廚房、騎手主管、後台管理員

本系統由兩個介面組成:

兩端透過同一個資料庫即時同步,騎手送達 → 後台秒看到。


# 系統網址與帳號

角色 網址 帳號 密碼
管理員 https://elder-delivery-admin.pages.dev admin@eldercare.local Admin1234
騎手 https://elder-delivery-rider.pages.dev rider1@eldercare.local Rider1234
說明書 https://elder-delivery-manual.pages.dev

騎手端用手機 Chrome / Safari 開啟,按「加入主畫面」就會變成 App 圖示,下次點圖示直接進入,跟原生 App 一模一樣。


# 📑 目錄

Part A · 管理後台

A1 登入 ・ A2 儀表板 ・ A3 長者管理 ・ A4 長者個人歷史 ・ A5 Excel 匯入長者 ・ A6 批次設定座標 ・ A7 線批次重排序 ・ A8 線(路線分區) ・ A9 取餐點 ・ A10 餐型管理 ・ A11 班別 ・ A12 假日表 ・ A13 薪資加成規則 ・ A14 品項管理 ・ A15 騎手管理 ・ A16 管理員管理 ・ A17 建立派送清單(單線) ・ A18 批次建立(多日多線) ・ A19 派送列表 ・ A20 路線詳細 ・ A21 餐點彙總 ・ A22 即時追蹤 ・ A23 未送達回訪 ・ A24 收入報表 ・ A25 月結帳單 ・ A26 騎手回報處理 ・ A27 稽核日誌

Part B · 騎手 PWA

B1 登入 ・ B2 今日任務 ・ B3 路線詳細(送餐)・ B4 班表設定 ・ B5 我的回報 ・ B6 個人資料 + 通知偏好

Part C · 常見流程與疑難排解


# Part A · 管理後台

# A1. 登入

用途:所有後台功能的入口。每位社工、廚房同仁、主管都有自己的帳號,登入後才能看見對應頁面(一般管理員看不到「管理員管理」頁,但其他功能相同)。

進入方式:直接打開後台網址,未登入會自動跳到登入頁。

核心功能

操作:輸入 Email + 密碼 → 按「登入」

注意事項


# A2. 儀表板

用途:一打開後台第一眼看見的「今天狀況一覽」。讓主管不用點進每個頁面,就能在 30 秒內掌握:今天有沒有問題、進度到哪、明天有沒有準備好。

進入方式:左側選單 → 儀表板(登入後預設頁)

核心功能

典型使用情境

  1. 主管早上開機第一件事 — 看告警有沒有紅、看騎手有沒有都上線
  2. 中午吃飯前 — 看進度條到哪,預估幾點能全部送完
  3. 下午 18:00 後 — 看「明日路線未建」警告,提醒去批次建立

注意事項


# A3. 長者管理

用途:長者(受餐戶)的主檔。所有人都從這裡新增/編輯被服務的長輩,包含地址、餐型、服務時段、特殊指示、家屬聯絡資料。這是整個系統最重要的一張表,每天派送的對象都從這裡來。

進入方式:左側選單 → 長者 → 長者名單

核心功能

主要欄位/操作

典型使用情境

  1. 新個案進入服務 → 新增長者 → 填基本資料 + 點地圖 + 設服務時段
  2. 個案改餐型(住院後改泥狀)→ 編輯該長者 → 改餐型 → 儲存
  3. 主管要做月報 → 匯出 Excel 全名單

注意事項


# A4. 長者個人歷史

用途:點長者列表的「歷史」按鈕進來,看單一長者過去的送餐紀錄。社工要回覆家屬「最近送得怎樣」、或評估個案是否要調整時,用這頁。

進入方式:A3 長者列表 → 任一筆 → 「歷史」按鈕

核心功能

典型使用情境

  1. 家屬打電話來問「上週三有送嗎?」→ 直接查
  2. 個案 review:發現某長者最近 3 次都「無人在家」→ 通知社工關心

注意事項


# A5. Excel 匯入長者

用途:一次匯入大量長者(例如新接一個服務區、或從舊系統搬過來)。手動一個一個新增太慢,這頁支援 Excel/CSV 4 步驟 wizard。

進入方式:左側選單 → 長者 → 匯入長者

核心功能

支援欄位: 姓名* / 電話 / 地址* / 導航地址 / 導航備註 / 餐型 / 送達指示 / 緯度 / 經度 / 必須拍照 / 飲食備註 / 服務日 / 服務班別

服務日寫法:「一二三四五」、「每天」、留空都可接受 服務班別寫法:「午晚」、「中餐/晚餐」、留空(= 午+晚)

典型使用情境

  1. 新接觀音區,社工發來 50 人 Excel → 匯入 → 接著去「批次設定座標」逐個點地圖

注意事項


# A6. 批次設定座標

用途:Excel 匯入或手動建檔時很多長者沒帶經緯度,這頁專門用來「批次補座標」。一筆一筆點,比回到長者編輯頁快很多。

進入方式:左側選單 → 長者 → 批次設定座標

核心功能

典型使用情境

  1. 剛匯入 50 人,30 人沒座標 → 進此頁 → 一個一個自動查/手動點 → 半小時清空

注意事項


# A7. 線批次重排序

用途:當一條線的長者順序需要全部重排(例如新增了幾位,原本順序就亂了),這頁可一次拖曳全部重排 default_seq,比一個一個編輯有效率太多。

進入方式:左側選單 → 長者 → 線重排序

核心功能

典型使用情境

  1. 觀音線新增 5 位長者後順序混亂 → 來這頁 → 自動最佳化 → 看地圖確認 → 儲存
  2. 廚房改了出車路徑 → 手動拖曳調整 → 儲存

注意事項


# A8. 線(路線分區)

用途:「線」= 地理區域,用來把長者分群,讓不同騎手負責不同區。每條線可指定預設取餐點和顏色,後續地圖/列表都會用這個顏色辨識。

進入方式:左側選單 → 設定 → 線

核心功能

主要欄位/操作

典型使用情境

  1. 開新服務區 → 新增「龍潭線」→ 選顏色 → 選預設取餐點 → 之後把長者分配到此線

注意事項


# A9. 取餐點

用途:路線的「起點」— 廚房、中央倉庫等騎手領取餐盒的地方。每條線可有不同的取餐點(例如觀音線從愛心廚房、新屋線從新屋廚房)。

進入方式:左側選單 → 設定 → 取餐點

核心功能

主要欄位/操作

典型使用情境

  1. 新增第二個廚房 → 新增取餐點 → 點座標 → 之後到「線」設定為某條線的預設

注意事項


# A10. 餐型管理

用途:定義系統可選的餐型清單。用在三個地方 — 廚房知道準備什麼、騎手知道送什麼、長者欄位的 autocomplete 建議。長者欄可自由填寫,這裡只是「常用建議」。

進入方式:左側選單 → 設定 → 餐型

核心功能

主要欄位/操作

典型使用情境

  1. 新增「軟質飯」餐型 → 設徽章「軟」+ 棕色 → 之後在長者編輯選此餐型

注意事項


# A11. 班別

用途:定義一天有哪幾個送餐時段。系統內建 3 班(早 / 中 / 晚),不能新增/刪除,但可改名稱、時間、薪資、是否啟用。

進入方式:左側選單 → 設定 → 班別

核心功能

典型使用情境

  1. 機構不送早餐 → 停用早班,平常派送只會看到午/晚
  2. 騎手薪資從 $400 調到 $450 → 改薪資 → 儲存(之後新建路線套用新價)

注意事項


# A12. 假日表

用途:告訴系統哪幾天是國定假日(套用長者的「假日」服務時段設定),以及哪些日期是「補班日」(雖然週末,但要視為平日服務)。

進入方式:左側選單 → 設定 → 假日表

核心功能

典型使用情境

  1. 政府公告 2027 行事曆 → 來這頁新增明年假日 → 批次建立時自動套用
  2. 某長者春節期間不送 → 在 A3 該長者的「假日」欄整列不勾 → 春節期間 A18 批次建立會自動跳過

注意事項


# A13. 薪資加成規則

用途:定義除了「班別基本薪資」之外的額外加成(例如雨天加成、長線加成、假日加成)。每筆規則有 key + 金額,可由其他功能引用。

進入方式:左側選單 → 設定 → 薪資規則

核心功能

典型使用情境

  1. 颱風天每班加 $100 → 新增 key=typhoon、bonus=100
  2. 過年加班 → 新增 key=new_year、bonus=200

注意事項


# A14. 品項管理

用途:定義廚房可選的「品項」(items) 清單 — 主菜、配菜、飲料的標籤庫。目前作為備用/未來擴充用,主要派送流程不強依賴。

進入方式:左側選單 → 設定 → 品項

核心功能

典型使用情境

  1. 廚房要在週菜單列「滷雞腿、燙青菜、紅豆湯」→ 在此建品項

注意事項


# A15. 騎手管理

用途:管理送餐騎手帳號 — 包括登入 Email 密碼、聯絡資料、車輛、評分、啟用狀態。社工新進騎手時用此頁開帳號。

進入方式:左側選單 → 設定 → 騎手

核心功能

主要欄位/操作

操作按鈕

典型使用情境

  1. 新騎手入職 → 新增騎手(填 Email + 初始密碼)→ 告知騎手 → 騎手 App 登入
  2. 騎手離職 → 停用(保留歷史)

注意事項


# A16. 管理員管理

用途:管理「能登入後台的人」帳號。僅 super_admin 看得到此頁,避免一般 admin 互相改密碼。

進入方式:左側選單 → 設定 → 管理員(僅 super_admin 可見)

核心功能

主要欄位/操作

典型使用情境

  1. 新主管入職 → super_admin 來此新增 → 角色選 admin → 給初始密碼
  2. 某主管離職 → 停用

注意事項


# A17. 建立派送清單(單線)

用途:每天派送的核心入口。選好「日期 + 班別 + 線 + 騎手 + 取餐點」後,系統自動列出該日該服務的長者清單,並可手動微調順序、最佳化路徑、最後一鍵寫入 DB 變成正式派送。

進入方式:左側選單 → 派送 → 建立派送(單線)

核心功能

  1. 日期 / 班別 / 線 / 騎手 / 取餐點
  2. 系統自動載入該線今天該服務的長者(依 service_schedule + 假日表過濾)
  3. 顯示餐型彙總(廚房參考)
  4. 站點順序清單(依 default_seq):可拖曳 / 可移除單站
  5. ✨ 自動最佳化:OSRM 抓真實道路距離 → Held-Karp TSP → 全域最佳順序
  6. ↻ 恢復預設順序:按 default_seq 重排
  7. 右側地圖即時預覽(彩色 pin 對應餐型 + OSRM polyline)
  8. 儲存派送清單 寫入 DB

典型使用情境

  1. 觀音線 5/27 中餐手動建 → 全套設定 → 看餐型彙總(10 正常、3 泥狀、1 不吃水餃)→ 最佳化 → 儲存
  2. 臨時插單:A18 批次建好但某線少了一位 → 來此重建覆寫

注意事項


# A18. 批次建立(多日多線)

用途:A17 一次只建一條線,效率太低。批次建立可一次為「多日 × 多班別 × 多線」批量建路線,套用每位長者的 default_seq、餐型、送達指示。一般每天傍晚跑一次明天的批次。

進入方式:左側選單 → 派送 → 批次建立

核心功能

典型使用情境

  1. 每天 18:00 — 跑明天的批次:日期=明天、班別=午+晚、線=全部、乾跑✓ → 預覽 → 取消乾跑 → 執行
  2. 跨週末做下週 7 天 × 2 班 × 2 線 = 28 條路線一次完成

注意事項


# A19. 派送列表

用途:所有已建立路線的總覽。主管在此分派騎手、查看當天/任意日進度、轉派或進入路線詳細。

進入方式:左側選單 → 派送 → 派送列表

核心功能

典型使用情境

  1. 批次建好後逐筆派騎手 → 點「轉派」選人
  2. 某騎手臨時請假 → 把他今天的線「轉派」給代班騎手

注意事項


# A20. 路線詳細

用途:單條路線的完整檢視。主管想知道「這條線送到第幾家」「送達照片長怎樣」「為什麼某站失敗」就點這頁。

進入方式:A19 派送列表 → 點任一筆「查看」

核心功能

典型使用情境

  1. 家屬反應沒收到 → 查看路線詳細 → 找該長者那站 → 看狀態+照片
  2. 主管月底 review 數據 → 點開看時間軸

注意事項


# A21. 餐點彙總

用途:給廚房使用的當日備餐清單。一打開就看到「今天總共要做幾份正常、幾份泥狀、幾份特殊」,以及每條線的餐型分布。

進入方式:左側選單 → 派送 → 餐點彙總

核心功能

典型使用情境

  1. 廚房一早第一件事 — 來這頁印出/列印當日彙總 → 開始備餐
  2. 騎手領餐 — 對比每條線的餐型數量

注意事項


# A22. 即時追蹤

用途:主管想看「我家騎手現在在哪」的地圖頁。所有上線騎手即時位置、進行中路線、最後上報時間,一目了然。

進入方式:左側選單 → 派送 → 即時追蹤

核心功能

典型使用情境

  1. 家屬打來「怎麼還沒到」→ 看騎手在地圖上的位置
  2. 騎手 GPS 失聯(紅色)→ 主管打電話確認

注意事項


# A23. 未送達回訪

用途:把所有 status=failed 的站集中一頁,方便社工回訪關懷。社工通常每週固定一天看這頁,撥電話確認長者狀況、補送或標記已處理。

進入方式:左側選單 → 派送 → 未送達回訪

核心功能

典型使用情境

  1. 社工每週一回顧上週未送達 → 過濾「無人在家」→ 逐個撥電話
  2. 主管月底統計失敗原因 → 看 chip 分布 → 找改善方向

注意事項


# A24. 收入報表

用途:給主管做財務分析。某段期間總收入多少、哪個騎手送最多、哪條線跑最多趟、逐日趨勢,都在這頁。

進入方式:左側選單 → 收入 / 帳單 → 收入報表

核心功能

典型使用情境

  1. 月底結算 → 看本月總收入 + 各騎手分配
  2. 季度報告 → 匯出 Excel 給董事會

注意事項


# A25. 月結帳單

用途:給每位騎手出一張可列印的薪資單。選騎手 + 選月份 → 自動列出當月完成班次 → 列印 / 另存 PDF → 給騎手簽收。

進入方式:左側選單 → 收入 / 帳單 → 月結帳單

核心功能

典型使用情境

  1. 每月 5 號發薪 → 為每位騎手選月份 → 列印 PDF → email 給騎手簽收

注意事項


# A26. 騎手回報處理

用途:騎手在 App 送出問題回報(長者狀況/地址問題/App 問題)後,會出現在這頁。主管在此回覆、追蹤、結案。

進入方式:左側選單 → 派送 → 騎手回報

核心功能

典型使用情境

  1. 騎手送回「○○長輩家門口很多報紙、按門鈴沒回應」→ 主管看到 → 通知社工關懷 → 回覆騎手「已聯絡家屬,下次正常送」→ 標記解決
  2. 騎手回報「App 拍照後卡住」→ 找工程師 → 修好後回覆

注意事項


# A27. 稽核日誌

用途:合規與除錯用。系統自動把 10 個關鍵表的所有 insert / update / delete 全部記錄下來,誰在什麼時候改了什麼,全部有跡可循。

進入方式:左側選單 → 設定 → 稽核日誌

核心功能

典型使用情境

  1. 某長者地址被改錯 → 查稽核日誌 → 看誰改的、改成什麼
  2. 主管 review:上週誰刪了什麼路線

注意事項


# Part B · 騎手 PWA

360px 寬手機介面,建議「加入主畫面」當 App 使用。

# B1. 登入

橘色「餐」logo + 送餐騎手標題 + Email/密碼 + 登入。登入後 session 持久,下次直接到今日任務。

# B2. 今日任務

用途:騎手打開 App 第一頁,看到今天有幾條路線、進度、距離。

# B3. 路線詳細(送餐)

用途:實際送餐的操作頁,騎手 95% 時間都在這。

操作流程

  1. 點 📍 導航 → 跳手機原生 Google/Apple Maps
  2. 送到 → ✓ 送達 → 拍照(必拍長者強制)+ 備註 → 確認
  3. 沒送到 → 跳過 → 選原因(無人在家/電話聯絡不上/地址錯誤/拒收/住院/其他)+ 備註
  4. 全部完成 → 主卡片變「完成」

GPS 上報:路線 in_progress 期間每 30 秒自動回傳。

# B4. 班表設定

週切換 + 每日 × 班別矩陣 → 勾選你可送餐的時段。後台 A18 批次建立會依此分派。

# B5. 我的回報

列出所有自己回報的問題 + 管理員回覆。狀態色帶(紅=待處理/橘=處理中/綠=已解決/灰=已關閉)。新回報對話框:類型 + 內容 → 送出 → admin email 通知。

# B6. 個人資料 + 通知偏好


# Part C · 常見流程

# 流程 1:每日例行(管理員)

06:00 — 系統自動推播當日任務給騎手
       管理員上 dashboard 確認 0/N
06-10 — 騎手陸續送,dashboard realtime 更新
        異常會出現「N 站未送達」紅色告警
10:30 — 全部完成 → 進「未送達回訪」處理失敗點
21:00 — 系統提醒明日未建路線 → 去「批次建立」

# 流程 2:新增長者

  1. 長者 → 長者名單 → + 新增
  2. 填基本資料、選線、餐型
  3. 地圖點座標
  4. 設服務時段矩陣(平日只送晚?週末午晚?)
  5. 設送達指示、家屬通知
  6. 儲存

# 流程 3:建立明日所有路線

  1. 派送 → 批次建立
  2. 日期範圍:明日~明日
  3. 班別:午+晚
  4. 線:全部
  5. 乾跑 ✓ → 預覽 → 確認 → 取消乾跑 → 執行
  6. 派送列表逐筆「轉派」

# 流程 4:騎手送餐

  1. 6:00 收推播 → 開 App → 點今日任務
  2. 開始送餐 → GPS 自動上報
  3. 對每站:導航 → 送達(拍照+備註)/ 跳過(選原因)
  4. 全部完成 → 完成

# 流程 5:月底發薪

  1. 收入/帳單 → 月結帳單
  2. 選騎手 + 月份
  3. 看實領金額 → 列印/另存 PDF
  4. PDF 寄騎手簽收

# 疑難排解

問題 解法
騎手 App 沒看到今日任務 確認後台已派路線且 rider_id 是該騎手;確認日期是「今日」
地圖跳不出 / 破圖 hard reload (Cmd+Shift+R / Ctrl+F5)
Excel 匯入後座標都是 0 去「批次設定座標」用 Nominatim 自動查或手動點
騎手送達後 admin 沒立刻看到 Realtime 應該秒更新;若延遲,刷新派送列表頁
PDF 中文亂碼 用「列印 / 另存 PDF」(瀏覽器原生),不要用截圖另存
Worker cron 沒跑 wrangler tail --name elder-delivery 看 log
家屬沒收 email 需在 worker 設 RESEND_API_KEY secret,並到 Resend 驗證寄件網域
找不到「管理員」頁 該頁僅 super_admin 可見
騎手拍照後卡住 已修為客戶端壓縮 + timeout,遇到請看騎手 App 是否更新到最新

# 技術架構(給工程師)

Admin (Vue 3 + Element Plus)      https://elder-delivery-admin.pages.dev
Rider PWA (Next.js 14)            https://elder-delivery-rider.pages.dev
Workers (Cloudflare)              https://elder-delivery.pinter-tw.workers.dev
                                  · 5 個 cron (06:00 推播 / 21:00 提醒 / 04:00 清照片 / 03:00 ping / 每 5 分鐘 queue)
                                  · /upload R2 photo upload
                                  · /admin/* 帳號管理 API
DB / Auth / Realtime              Supabase (Postgres + RLS)
照片儲存                          Cloudflare R2 (10GB free, zero egress)
路線最佳化                        Held-Karp TSP + OSRM (router.project-osrm.org)
推播                              Web Push (VAPID) / Resend (email)

月成本:$0(Cloudflare free + Supabase free + R2 free + OSRM 公共服務)

Repohttps://github.com/pinterhuang/elder-delivery