User Manual
Memory Wall 是一個婚禮 / 活動現場的即時照片牆系統。婚禮前用電子喜帖收 RSVP、排好座位; 當天賓客掃 QR Code 上傳照片影片、發送彈幕,大螢幕即時呈現,還能玩小遊戲和抽獎。 這份手冊講系統有哪些功能、怎麼操作,不需要任何技術背景。
1系統介紹
Memory Wall 將一場活動拆成三個對外連結:
| 頁面 | 網址 | 用途 |
|---|---|---|
| 賓客上傳 | /guest/?event=<slug> | QR Code 指向這裡。賓客掃完後可上傳照片 / 影片 / 彈幕,免登入 |
| 大螢幕展示 | /display/?event=<slug> | 會場大螢幕全螢幕開啟。即時呈現照片、彈幕、婚紗背景、音樂、抽獎 |
| 後台管理 | /admin?event=<slug> | 主辦方登入後管理活動內容 |
多個活動可在同一台伺服器平行運作,彼此資料完全隔離。
2角色與權限
系統採 4 層權限架構:
Super Admin
系統最高權限。可建立 / 刪除任何活動、管理所有使用者、查看跨活動稽核紀錄。建議只給 1-2 位最信任者。
活動 Owner
在自己這場活動裡什麼都能做。通常是新人本人或主辦人。可邀請協作者並決定他們能做哪些事。
Moderator
協作者。能做哪些事由 Owner 逐項勾選,例如只給「刪不適當照片」和「執行抽獎」。司儀小幫手用這個角色。
活動密碼登入
不註冊也能進的備援登入。Owner 設定密碼後,任何知道密碼者可進該活動後台,等同 Owner 權限,但僅限該活動。
賓客
不需登入。掃 QR Code 進入上傳頁,可傳照片 / 影片(單檔 50MB)、發彈幕(100 字)。有防灌水限制。
5活動管理(Owner / Moderator)
登入 /admin 後,若你管理多個活動會先看到活動選擇畫面。進入單一活動後,Dashboard 上方分頁:
| 分頁 | 需要的權限 | 用途 |
|---|---|---|
| 照片管理 | 檢視 | 檢視 / 點擊放大 / 刪除賓客上傳;下載全部 ZIP;一鍵開關活動 |
| 留言管理 | 檢視 | 檢視 / 刪除彈幕 |
| 成員管理 | 檢視成員 | 邀請 / 編輯 / 移除協作者 |
| 背景輪播 | 編輯活動 | 上傳婚紗照,大螢幕背景輪播 |
| 背景音樂 | 編輯活動 | 上傳音樂播放清單 |
| 抽獎 | 執行抽獎 | 獎品管理 + 預設規則 + 執行抽獎 + 重置紀錄 |
| 小遊戲 | 啟停小遊戲 | 賓果任務池 + 打地鼠參數 + 啟停遊戲 |
| 活動設定 | 編輯活動 | 標題、日期、顯示模式、活動密碼 |
| 稽核紀錄 | 檢視 | 該活動的所有操作紀錄 |
活動 Dashboard 上方
每進入活動會看到:
- 4 個 KPI:照片數、留言數、儲存空間、活動狀態(開放中 / 已關閉)
- QR Code 與兩個關鍵連結:大螢幕展示連結(給音控)、賓客上傳連結(印桌牌)
- 下載 QR PNG 按鈕,用於印製桌牌或邀請函
6成員管理(邀請協作者)
-
進入「成員管理」分頁
需要「檢視成員」權限。Owner 預設有,Moderator 通常沒有。
-
點「+ 邀請協作者」
填入帳號(若為新帳號需同時填密碼)、角色(Owner / Moderator),再勾選要開放哪些操作。
-
角色差異
- Owner:自動全部開放,沒有勾選介面
- Moderator:逐項勾選,例如只給「刪照片」和「執行抽獎」
-
之後修改
列表上每位成員旁有「編輯」按鈕,可改角色或重新調整勾選。
7💌 電子喜帖(含 RSVP 出席統計)
單頁式婚禮邀請函,賓客用手機開啟後往下滑就能看完所有資訊,並直接在頁面上回覆出席。 這是婚禮前就會用到的功能,通常在婚期前一到兩個月發送。
傳統習俗上派帖應避開清明、重陽與農曆七月(鬼月),2026 年鬼月約為 8/12~9/10。
設定步驟
- 進入後台「💌 電子喜帖」分頁
需要「編輯活動」權限(Owner 預設有)。
- 上傳圖片
「封面主視覺」建議用直式婚紗照(全螢幕封面用),「位置導覽圖」是會館周邊地圖(賓客可點擊放大)。 兩張都在這個頁面直接上傳即可。
這裡的圖片與「背景輪播」完全分開:存放位置不同、互相看不到也選不到。 因為喜帖提前發出後連結就固定了,若和婚禮當天的輪播照片混在一起,整理輪播時很容易讓已發出的喜帖破圖。
- 填寫新人姓名與日期
「西元日期」是給倒數計時與行事曆(.ics)用的;「國曆/農曆/星期」是給賓客閱讀的顯示文字,兩者要一致。 封面上的大字日期會自動由西元日期產生。
- 檢查文案
開場語、邀請語、結尾都已預先填好,可直接使用或改成自己的話。
- 勾選「開放喜帖」並儲存
儲存後才會產生對外連結。未開放前賓客開啟連結只會看到「尚未開放」,可以安心先設定不怕被提早看到。
- 複製連結發送
連結格式:
https://你的網域/invite?event=<slug>,可直接貼到 LINE 或做成 QR Code 印在紙本喜帖上。
賓客看到的內容
| 區塊 | 內容 |
|---|---|
| 封面 | 全螢幕婚紗照 + 新人姓名 + 婚期 |
| 開場語 / 邀請語 | 兩段可自訂的邀請文字 |
| 婚禮資訊 | 國曆/農曆日期、開席時間、場地、地址,以及三顆按鈕:地圖導航(開啟 Google Maps)、撥打電話、加入行事曆(下載 .ics,自動含地點並在前一天提醒)。另有婚期倒數。 |
| 交通與停車 | 自行開車路線、兩處停車場說明、接駁電話(可點擊撥號)、位置導覽圖(點擊放大) |
| RSVP | 出席回覆表單,見下方 |
| 結尾 | 感謝詞與婚期 |
RSVP 表單邏輯
- 賓客選「很遺憾,當天無法出席」時,人數、素食、兒童座椅等問題會自動隱藏,只留姓名與祝福,不會讓人填一堆用不到的欄位。
- 人數/素食/兒童座椅選「其他」時,才展開數字輸入框。
- 送出後原地顯示感謝訊息,不會跳頁。
- 婉謝的回覆不會被算進出席人數(伺服器端強制歸零),統計數字可以直接拿去跟餐廳報桌數。
- 第 6 題為選配:在後台填入題目與選項(用逗號分隔)才會出現,留空則整題不顯示。常見用法是「男方/女方親友」或「是否需要兒童座椅」。
有人回覆時收到通知
在「💌 電子喜帖」分頁最下方的「回覆通知」填入信箱,每有一筆回覆就會寄一封 Email 給你, 不用一直開後台看。可以填多個信箱(用逗號分隔),例如新郎新娘各一個。
- 填入通知信箱並儲存
要按「儲存喜帖設定」才會生效。
- 按「寄一封測試信」
確認真的收得到。記得看垃圾信匣——若第一封進了垃圾桶,標記為「非垃圾郵件」,之後的通知才不會被擋。
用自己的 Gmail 寄
通知信可以從你自己的 Gmail 寄出,不必依賴系統的信箱。 在「回覆通知」區塊按「🔗 連接我的 Gmail」,用你的 Google 帳號授權即可。
| 連接自己的 Gmail | 系統預設信箱 | |
|---|---|---|
| 寄件者顯示 | 你自己的信箱 | 系統的信箱 |
| 誰要設定 | 你自己,按一下授權就好 | 系統管理員 |
| 送達率 | 較好(從你的帳號寄給你自己) | 視系統設定而定 |
另外,寄信失敗不會影響賓客送出回覆——回覆一定會存下來,只是那封通知信沒寄成功。
查看與匯出統計
同一個分頁下方會顯示統計卡片與完整回覆列表:
- 統計卡片:喜帖回覆數、出席總人數、素食總數、兒童座椅數、無法出席人數
- 回覆列表:依時間排序,含姓名、人數、素食/兒童座椅數、祝福留言,每筆可編輯或刪除
- 匯出 CSV:含 UTF-8 BOM,用 Excel 開啟中文不會亂碼,可直接交給婚顧或餐廳。包含備註與後台修改時間
修改賓客的回覆
賓客打電話說要多帶一位、名字打錯字、臨時改成不能來……不用請他重填喜帖, 在回覆列表按該筆的「編輯」直接改就好。出席與否、姓名、人數、素食、兒童座椅、第 6 題、想說的話都能改, 另外還有一格備註(只有主辦方看得到),可以記下「電話確認改為 3 位」這類說明。
| 改了什麼 | 已排好的座位會怎樣 |
|---|---|
| 姓名(打錯字、改用全名) | 座位不動,座位表上的名字直接跟著換掉(依照名單順序一位對一位),不用重新安排 |
| 人數改多 | 原本坐好的不動,多出來的人會出現在「未入座賓客」等你安排 |
| 人數改少 | 只釋出排在後面的那幾個位子,其他人的座位不動。改之前會先跳確認 |
| 改成不出席 | 這組的座位全部釋出。改之前會先跳確認 |
| 素食、兒童座椅數 | 保留座位,只更新座位上的「素」「兒椅」標記 |
| 第 6 題、想說的話、備註 | 完全不影響座位 |
刪除回覆時,這組已排好的座位也會一併清除,座位表上不會留下對不到人的空名字。
8🪑 排座位
編排桌數與每桌人數、把賓客拖到位子上,完成後可直接列印或存成圖片交給婚宴會館。 賓客名單直接來自電子喜帖的 RSVP 回覆,不需要另外輸入。
/seating?event=<slug>。需要 Owner 或有編輯權限的成員。
操作流程
-
建立桌次
用「批次建立」一次開好整場的桌數(例如 20 桌、每桌 10 位),之後仍可個別增減。 每桌可單獨改名稱(如「主桌」「男方親友 3」)與座位數。
-
排列位置
直接拖曳桌子擺成現場的實際格局。位置是用相對比例記錄的,所以在不同尺寸的螢幕或列印時, 整體格局都會維持一致。
-
安排賓客
右側「待安排」列出所有回覆會出席的賓客,已按同一份 RSVP 分組—— 一家人或一組朋友會整組出現,可以整組安排到同一桌。點桌子可逐一指定誰坐哪個位子。
-
自動安排(可選)
「自動排位」會把還沒安排的組別依序填進有空位的桌子,同一組盡量不拆開。 排完仍可手動調整,自動安排不會動到你已經手動排好的人。
-
輸出
列印會輸出平面圖加各桌名單(已針對 A4 調整版面); 存成圖片會產生一張 PNG,方便用 LINE 傳給會館或工作人員。
名字是怎麼來的
- RSVP 表單裡填的出席者姓名會自動拆開,支援用頓號、逗號、分號或斜線分隔(例:
王小明、王太太) - 若賓客只填了人數沒填每個人的名字,系統會補上帶編號的暫定名(如「陳家 同行親友 1」),之後可以直接改
沒透過喜帖回覆的賓客
電話告知的長輩、臨時決定要來的親友,不需要請他們補填喜帖。在排座位頁面左側「未入座賓客」上方, 按「+ 手動新增賓客」就能直接加進來:
| 欄位 | 怎麼填 |
|---|---|
| 姓名 / 家族稱呼 | 知道每個人名字就全填(用頓號分隔);只知道是哪一家就填「陳家」 |
| 人數 | 可以比填的名字多。例如填了兩個名字、人數填 4,系統會自動補兩個編號暫定名 |
| 素食 / 兒童座椅 | 選填,跟喜帖回覆一樣會顯示標記(素、兒椅),方便跟會館報數 |
| 備註 | 選填,例如「男方大學同學」。只有你看得到,不會出現在座位表或列印稿上 |
加進來的賓客跟喜帖回覆的用法完全一樣——一樣出現在「未入座賓客」、一樣可以整組入座、 一樣會被自動排位安排,只是旁邊多一個「手動」標記,方便你分辨。
畫布形狀
工具列的「畫布」可以切換平面圖的形狀,對應不同場地:
| 選項 | 適合的場地 |
|---|---|
| 寬 16:10(預設) | 一般寬形宴會廳 |
| 標準 4:3 | 接近方形的場地 |
| 方形 1:1 | 正方形場地,或桌數不多排得鬆 |
| 直式 3:4 | 長條形場地,或桌子要排成多列直行 |
若新形狀讓桌子擠在一起(例如直式格局硬換到寬畫布),系統會直接提示,按「整理排列」即可排開。
排得整齊一點
- 自動對齊:拖曳時只要接近其他桌子的水平或垂直軸線就會自動吸附,並顯示參考線;也會吸附畫布中線(主桌置中很好用)
- 方向鍵微調:點選桌子後用方向鍵移動,按住 Shift 是更精細的微調
- 直接輸入座標:「桌次設定」裡有水平 / 垂直位置的數值欄位
- 整理排列:一鍵把所有桌子重排成整齊網格,座位安排不受影響,只動位置
列印與存成圖片
- 列印色:工具列可選黑(預設)、深藍、靛紫、墨綠、酒紅、咖啡。 選了顏色之後,整份輸出的文字、框線、底紋都換成該色系,完全不用到黑色與灰色—— 噴墨印表機的黑色噴頭塞住時特別實用(灰色一樣要靠黑色墨水,所以必須整套換掉才有效)。 列印與存成圖片都會套用,選項會記在這台裝置上
- 預設會自動放大填滿版面——只用到畫布一小塊的排法,輸出時會放大並依實際形狀調整版面,桌名才看得清楚。編輯畫面上的粉紅虛線框就是輸出範圍
- 不想放大可以取消勾選「列印 / 存圖時自動放大填滿版面」,輸出就會跟編輯畫面一模一樣
- 超過 30 桌會自動改用 A4 橫式,名單也從 2 欄變 4 欄
- 桌數很多時桌子會變小,這時只顯示桌號(滑鼠移上去看得到完整名稱),完整名單在下方
另外選了列印色時,存成圖片的背景會自動改成純白,避免整頁鋪底色浪費墨水。
8大螢幕顯示模式
在「活動設定」分頁切換,變更後大螢幕透過 Socket.IO 即時同步,不需 F5。
| 模式 | 內容 | 適用 |
|---|---|---|
| Slideshow | 純婚紗輪播,無照片牆 | 進場前氣氛場、不收賓客上傳的純展示 |
| Both(預設) | 婚紗背景 + 照片牆浮層 + Spotlight | 婚禮主場使用 |
| Wall | 純照片牆,深色背景,6 欄 | 沒有婚紗素材時、純互動牆 |
9背景輪播(婚紗照)
- 進「背景輪播」分頁,點「+ 上傳婚紗照」
- 支援 jpg / png / webp,單檔最大 20MB,可一次選多張
- 上傳後大螢幕自動重新載入輪播清單
大螢幕呈現
- 兩層 cross-fade,每張顯示 8 秒
- 輕微模糊 + 暗化 + 1.08x zoom,讓前景照片不被搶走焦點
- Vignette 漸層暗化邊角
10背景音樂
- 進「背景音樂」分頁,點「+ 上傳音樂」
- 支援 mp3 / wav / ogg / m4a / aac,單檔最大 30MB
- 多首歌依順序循環播放,可線上試聽、改名稱、刪除
讓大螢幕連這一下都不用點
在大螢幕那台電腦上設一次,以後打開就直接有聲。彩排時先設好,當天就不會手忙腳亂:
| 瀏覽器 | 設定方式 |
|---|---|
| Firefox | 打開大螢幕頁面 → 點網址列左邊的鎖頭圖示 → 「自動播放」選「允許音訊與影片」。設完重新整理一次就會直接出聲 |
| Chrome / Edge | 沒有可以點的選項,要用啟動參數。做一個桌面捷徑,在「目標」欄位的執行檔後面加上:
--autoplay-policy=no-user-gesture-required --kiosk "https://wall.wedding-loves.com/display/?event=<slug>"
用這個捷徑開大螢幕,一開就是全螢幕加有聲。要先把其他 Chrome 視窗全部關掉,參數才吃得到 |
11抽獎
事前設定(後台「抽獎」分頁)
- 建立獎品列表
點「+ 新增獎品」,填寫名稱、說明。可隨時編輯、停用、刪除。
- 設定預設規則
來源(照片/留言/兩者)、排除已中獎、排除匿名、同人是否只算一票。儲存後現場操作員不需再選。
執行抽獎(兩種方式)
| 方式 | 操作 |
|---|---|
| 後台 | 「抽獎」分頁中段「後台抽獎」區塊,選獎品 → 開始抽獎 |
| 大螢幕(偽裝) | 大螢幕點 3 下品牌字 / Shift+L → 浮出迷你面板 → 選獎品 → 抽獎 |
大螢幕動畫
- 全螢幕暗化 + 模糊背景
- 老虎機軌道滾動候選名字 5 秒
- 金色發光大字揭曉得獎者
- 若得獎來自照片:顯示其照片(Polaroid + Winner 印章)
- 若得獎來自留言:顯示留言內容
- 80 片彩色 confetti 撒落
- 18 秒後自動關閉,或按 C / Esc 立即關閉
重置紀錄
「抽獎紀錄」區塊右上角的「↺ 重置紀錄」按鈕,會把所有未重置的紀錄標記為 voided。重置後:
- 歷史紀錄保留(以刪除線顯示)
- 排除已中獎過濾不再排除這些人,可全員再被抽中
公平性
使用 Node.js crypto.randomInt(),候選池在 server 端建立,前端只負責動畫。所有抽獎都記錄 audit log。
12小遊戲總覽
系統內建兩款互補的現場互動遊戲,共用同一個獎品池。
| 遊戲 | 類型 | 適用 | 得獎 |
|---|---|---|---|
| 🔨 打地鼠 | 單人 spotlight,一輪數十秒(可設定) | 節目高潮、司儀帶氣氛 | 通關第一人 |
| 🎯 婚禮賓果 | 背景型,整場活動進行 | 促進賓客互動拍照 | 前 N 位連線者 |
event_draws 表,出現在抽獎紀錄中,並受「排除已中獎」過濾影響。同一場活動可同時開抽獎、打地鼠、賓果三軌遊戲。啟動權限
需要「啟停小遊戲」權限(Owner、系統管理員,或被授權的 Moderator)才能開始或結束遊戲。
賓果審核需要「執行抽獎」權限(司儀通常都有)。
13🔨 打地鼠 (Whack-a-Mole)
單人挑戰型遊戲。上台的挑戰者(小朋友 / 賓客)用工作人員提供的 iPad(專用遊戲站)打地鼠,大螢幕同步顯示。打中通關門檻就贏走獎品。
一般賓客留言頁不會出現「我要挑戰」按鈕,避免大家在台下自己連進來搶挑戰權。 只有走
/play 專用網址的裝置(工作人員 iPad)才能加入。挑戰者上台後由工作人員把 iPad 交給他即可。
設定遊戲站 iPad(賽前一次性)
- 後台 →「小遊戲」分頁 → 找「🎮 遊戲站連結」區塊
那裡有專屬 QR 與網址(格式
https://你的網域/play?event=活動代碼)。 - 用 iPad 掃該 QR(或複製網址貼到 iPad 瀏覽器)
建議把頁面「加入主畫面 / 加書籤」,整場活動重複使用不必再設定。
- 請勿把這個 QR 投影到大螢幕或公開張貼
否則賓客掃了就能自己加入,失去「上台才能玩」的控管意義。
事前設定(後台 → 「小遊戲」分頁)
- 遊戲時長(可設 5~120 秒,指一位挑戰者上台玩一次的長度)
- 地鼠出現間隔
- 地鼠停留時間
- 通關門檻(預設 0 = 無限模式)
- 格子大小(2×2 ~ 5×5,預設 3×3)
- 👑 地鼠王模式(見下方)
若想做傳統「打中 N 隻就贏走獎品」,把門檻改 1-100 任一數字即可,達標時遊戲會立即結束並判定通關。
👑 地鼠王模式(愈打愈快)
勾選後,地鼠的出現速度會隨著你打中的隻數持續加快——打得愈準,地鼠冒得愈兇。 這跟單純「時間到就變快」不同:它會自動把高手逼到極限、也不會為難新手,一局下來自然分出高下,很適合用來決出地鼠王。
- 畫面上會顯示加速等級 LV.1 ~ LV.5,升級時會閃一下並有提示音,背景音樂節奏也跟著加快。
- 加速是漸進的。以 90 秒的局、每隻都打中的高手為例,大約 12 隻到 LV.2、27 隻到 LV.3、40 隻到 LV.4、53 隻才到 LV.5,整場都在持續加速而不會一下就頂到最高速。
- 此模式一律跑滿整場時間、以分數排名,會忽略上方的「通關門檻」——因為「先打到 N 隻就結束」和「爭奪地鼠王」在概念上互相矛盾。
音效與配音
遊戲全程有音效與中文配音(「預備」→ 3-2-1 → 「開始!」,結束時「時間到」或「恭喜通關!」), 進行中有輕快背景音樂。iPad 端在挑戰者按下「開始挑戰」時自動開啟聲音; 大螢幕端則跟著「點畫面或按任意鍵開啟音樂」一起解鎖(見手機遙控台一章)。
到會場彩排時,在後台「小遊戲 → 打地鼠 → 遊戲參數」按「🔊 在大螢幕試聽」, 大螢幕會照一局的順序把倒數、開始、地鼠冒出、打中、升級、通關各播一次(約 8 秒), 覺得太大或太小就拉「大螢幕音效音量」(0~200%)再試聽,剛好了按「儲存參數」,大螢幕立刻套用。 若試聽時提示「大螢幕還沒開啟聲音」,先到大螢幕上點一下畫面或按任意鍵。
背景音樂會自動讓位:按「▶ 開啟挑戰」時,正在播的背景音樂會在約 2 秒內慢慢變小並暫停(跟按影片播放一樣), 遙控台也會同步顯示已暫停。之後每一局開始倒數時也會再檢查一次,兩局之間若又把音樂打開,下一局開始時一樣會自動淡出。 遊戲結束後音樂不會自己恢復,需要時在遙控台按播放即可,會從剛才暫停的地方接著放。
現場啟動流程
- 選獎品 → 按「▶ 開啟挑戰」
大螢幕進入打地鼠等待畫面,顯示「請使用工作人員提供的 iPad 挑戰」+ 地鼠王排行榜(不再投影公開 QR)。工作人員 iPad 的遊戲站頁也會從待機切換成「我要挑戰!」。
- 把 iPad 交給上台的挑戰者 → 按「我要挑戰!」
輸入暱稱後鎖定該輪挑戰者,其他裝置無法插隊。
- 3-2-1 倒數
iPad 跟大螢幕同步顯示倒數。
- 開始打地鼠
Server 隨機決定地鼠位置,同時推播給 iPad 跟大螢幕。挑戰者點到 → server 驗證 → 雙方計分,槌子砸下、水豚噴土。
- 通關 / 結算
大螢幕把這一位的命中數放到全畫面最大,從 0 一路跳到最後的數字, 接著顯示名次(「👑 新的地鼠王!」或「目前排名第 N 名」)和「第 3 / 9 位挑戰者」這類進度,右邊是排行榜。 約 10 秒後自動回到等待狀態,換下一位上台。
👑 地鼠王頒獎動畫
適合「每人一份參加獎、最高分再拿地鼠王大獎」的玩法。以準備 9 份參加獎、1 份地鼠王獎品為例:
- 正式開始前:按「↺ 重置排行榜」
彩排時打的分數也會算進排行榜,不清掉的話地鼠王可能頒給測試的人,人數也會算錯。
- 遊戲參數的「預定挑戰人數」填 9,按「儲存參數」
- 「本輪獎品」選地鼠王的獎品,再按「▶ 開啟挑戰」
這個獎品會顯示在頒獎畫面上,並記進得獎紀錄。
- 9 位依序上台挑戰
等待畫面會顯示「已完成 N / 9 位挑戰者」。
- 第 9 位的結算畫面播完,大螢幕自動開始頒獎
畫面暗下來 →「誰是今晚的地鼠王?」配小鼓聲 → 第三名、第二名依序出場 → 皇冠落到水豚頭上、地鼠王的名字放大登場,配號角和撒花 →「歡迎地鼠王上台領獎!」。 畫面會一直停在頒獎,讓主持人頒完獎。
- 頒完獎按「↩ 頒獎結束,回到等待挑戰」
若還要加賽可以繼續玩,不會再自動頒一次;整個結束就按「■ 停止」。
同分怎麼辦?最高分同分時,頒獎畫面會顯示「並列地鼠王」並列出所有人, 這種情況不會自動寫入得獎紀錄,由主持人決定要加賽還是一起頒獎。 一位地鼠王時,得獎紀錄會自動記一筆,重複揭曉也不會重複記。
公平性
- 地鼠位置由 server 決定,玩家手機只是顯示 / 收 tap event
- Server 持有當前地鼠的過期時間,玩家 tap 過期或位置錯誤都不計分
- 客戶端無法偽造分數(每次 hit 都需 server 確認)
14🎯 婚禮賓果 (Bingo)
背景型遊戲,可整場活動進行。賓客領一張隨機 5×5 卡片,完成現場任務(例:「跟新郎合照」)就點該格。連成一條線即可申請 BINGO。司儀在大螢幕公開覆核後決定是否得獎。
事前設定(後台 → 「小遊戲」分頁 → 賓果區塊)
- 建立任務池
點「+ 新增」一個個加,或「批次新增」貼一段文字一次匯入幾十個。任務舉例:
跟新郎合照 找穿紅色的人 敬一杯交杯酒 吃下一道魚料理 與三位以上長輩合照 找到帶小孩來的賓客 聽到一首慢歌時舞步擺一下 拍張新人特寫
5×5 卡片需至少 24 個啟用任務(中央格自動 FREE);3×3 需 8 個。
- 設定遊戲規則
卡片大小(3×3 / 5×5)、是否啟用 FREE 中央格、得獎名額(0 = 無上限)。
- 選獎品 → 按「▶ 開啟賓果」
賓客手機橫幅出現,大螢幕右下角顯示金色「Wedding Bingo」面板 + 大 QR + 即時統計。
賓客流程
- 掃碼進入
/guest,看到金色「🎯 婚禮賓果進行中」橫幅 - 點「領取賓果卡」→ 輸入暱稱 → 拿到隨機洗牌的 5×5 卡(每人不同)
- 完成現場任務後點該格打勾(即時同步給 server,可隨時重整不丟失)
- 連成一條線(橫 / 豎 / 斜),按鈕變紅「🎉 申請 BINGO!」
- 按下申請後手機顯示「等候司儀審核中…」(無法重複申請)
司儀審核(大螢幕公開覆核)
玩家申請後,大螢幕全螢幕揭曉:
- 玩家姓名(超大字)
- 完整 5×5 卡片(每格的任務文字)
- 已完成的格子填金色 ✓
- 已連成的線格子加玫瑰色光環
- 司儀拿 mic 公開讀任務、跟賓客互動「真的有跟新郎合照嗎?」
- 下方兩顆大按鈕:✓ 確認得獎 / ✗ 駁回
司儀快捷鍵
| 按鍵 | 動作 |
|---|---|
| A | 確認得獎(撒花、寫入 event_draws) |
| R | 駁回(玩家可繼續打勾再申請) |
| Esc | 暫離(pending 保留,可隨時回來決定) |
/admin 登入有「執行抽獎」權限的帳號。Cookie 跨分頁共用,大螢幕分頁就有權限。否則點「確認得獎」會出現「需要登入」提示。
排隊機制
同時多人申請 BINGO,server 一張一張推給大螢幕。司儀決定一張後自動推下一張,不會錯過任何申請。
結束 / 重置
- 停止:賓客無法領新卡,但已領的卡仍可繼續打勾跟申請
- 清空所有卡片:刪除所有卡(包含 pending),已寫入的得獎紀錄保留在 event_draws
得獎名單
後台分頁底下顯示按時間順序的得獎者,前 N 位真正得獎(取決於 max_winners 設定)。
16賓客體驗
- 賓客用手機相機掃 QR Code(印在桌牌、邀請函、投影螢幕都可)
- 進入上傳頁,輸入名字(可選,空白則匿名)
- 選擇「📷 拍照 / 錄影」直接呼叫相機,或「🖼 從相簿選」
- 可一次選最多 10 個檔案、單檔 50MB
- 傳送後即時飛上大螢幕
- 底下有「💬 發送祝福」可發 100 字內彈幕
localhost 測試 OK,正式部署到區網或公網時,賓客手機掃碼進來後若用 HTTP 會無法使用相機(只能從相簿選)。記得加 SSL 憑證或反向代理(nginx + Let's Encrypt)。
17大螢幕操作員
進場前準備
- 用大螢幕電腦的瀏覽器先到
/admin登入有抽獎權限的帳號(cookie 跨分頁共用) - 另開分頁到
/display/?event=<slug> - 按 F11 進全螢幕
- 若有音樂且畫面中央浮出金色提示:點畫面任一處或按任意鍵(前一步按 F11 就已經算了)。沒出現提示就是已經有聲,不用理它
當天可用快捷鍵
| 場合 | 快捷鍵 | 動作 |
|---|---|---|
| 抽獎 | 連按 3 下「PhotoWall」字 / Shift+L | 呼出抽獎面板(選獎品 → 抽) |
| 抽獎結果 | C / Esc | 關閉抽獎結果覆蓋層 |
| 賓果審核 | A | 確認得獎(撒花、寫入紀錄) |
| 賓果審核 | R | 駁回(玩家可繼續努力) |
| 賓果審核 | Esc | 暫離(pending 保留) |
| 瀏覽器 | F11 | 進 / 出全螢幕 |
18手機遙控台(導播)
司儀 / 音控用自己的手機就能遠端遙控大螢幕的場景切換與音樂 / 影片,不用一直守在大螢幕電腦前。
開啟方式
- 後台「背景音樂」分頁 → 按「📱 開啟手機遙控台」,或直接開
/remote?event=<slug> - 在手機上登入本活動的 Owner 或協作者帳號(也可用「活動密碼」登入)
- 大螢幕那台記得先點一下畫面「開啟聲音」,之後遙控台就能控音量 / 播放
大螢幕場景
| 場景 | 畫面 | 用在 |
|---|---|---|
| 封面 | 新人名 / 日期 / 歡迎詞 | 開場前、空檔待機 |
| 婚紗輪播 | 只有婚紗照 + 背景音樂(不露照片牆/留言) | 一般過場、安全模式 |
| 照片留言牆 | 賓客即時上傳照片 + 彈幕留言 | 炒熱氣氛時 |
| 影片 | 全螢幕播放(進場 / 二進影片) | 播片段 |
音樂段落
婚前先到後台「背景音樂」把每首歌指定段落(進場 / 輪播 / 吃飯 / 二進 / 送客)。現場在遙控台切段落即可:
- 點段落分頁 → 若正在播放,目前的歌會先淡出到無聲(約 2 秒)、停頓半秒,新段落再響起,轉場聽得很清楚;暫停中切段落只會換歌單,不會自己播起來
- ⏮ / ⏯ / ⏭ 切歌暫停、音量滑桿即時調整;⏮ / ⏭ 換歌是直接切換,不淡出
- 進度條:曲名下方顯示目前播到哪裡和整首長度,拖曳就能跳到那個位置(例如跳過前奏)。 進度是大螢幕回報的,所以大螢幕要開著才會動。遙控台若出現「⚠ 沒有偵測到大螢幕」, 代表大螢幕沒開,或是系統更新前就開著的舊頁面 —— 到大螢幕上按 F5 重新整理一次即可
播放方式(每個段落分開設定)
進場和輪播的需求完全不同,所以每個段落各自記一種播放方式,切段落時自動套用。 段落分頁下方的小圖示就是該段落目前的設定。
| 播放方式 | 一首播完之後 | 預設用在 |
|---|---|---|
| 🔁 列表循環 | 照歌單順序播下一首,最後一首播完回到第一首 | 輪播、吃飯、送客 |
| 🔀 列表隨機 | 隨機挑下一首。整份歌單洗牌後依序播完才重洗, 每一輪每首都會輪到一次,也不會同一首連播兩次。切進這個段落時也從隨機一首開始 | — |
| 🔂 單曲循環 | 一直重播同一首 | 進場、二進(新人走到定位前歌不會換) |
| ➡️ 不循環 | 照順序播,整個段落播完就停 | —(想讓送客播完自然收尾可以改成這個) |
- 婚前先排好:後台「背景音樂」分頁上方有「各段落的播放方式」表格,四個段落可以一次設好,不會影響正在播的音樂
- 現場臨時改:遙控台音量下方的四顆按鈕,改的是目前這個段落,其他段落不受影響
- 兩邊是同一份設定,而且會存下來,服務重啟也不會跑掉
影片
- 清單列出活動內「本地上傳」的影片,點一下即全螢幕播放
- 大檔進場影片建議放雲端,用「貼影片直連網址(.mp4)」播放(避開單檔 50MB / Cloudflare 100MB 限制)
- 「■ 停止影片,回照片牆」一鍵收尾
- 進度條:跟音樂一樣,影片播放中可以看到進度、拖曳跳轉
按下去之後大螢幕會等約 2 秒才出現影片,是正常的,不要再按一次 ▶(再按一次會變成暫停)。 影片播完後音樂不會自己恢復,請依流程切到下一個音樂段落(例如「進場」)再按播放; 若沒切段落、直接在音樂區按播放,則從剛才暫停的地方接著放。
小遊戲(打地鼠 / 賓果)
現場不用再切回後台,遙控台最下面就能操作小遊戲。要顯示哪些遊戲,在後台「小遊戲」分頁最上方勾選 (預設兩個都顯示,改了之後已開著的遙控台會馬上更新)。
- 🔨 打地鼠:選獎品、▶ 開啟挑戰 / ■ 停止、即時狀態(誰在玩、命中幾隻、已完成幾位)、 預定挑戰人數 − / +(按了就存,進行中的挑戰也馬上採用)、🔊 音效音量(0~200%,放開時大螢幕會播一聲「打中」讓你聽大小,現場覺得太小聲可以直接在手機上調)、👑 揭曉地鼠王、↩ 回到等待挑戰、🔊 試聽音效、↺ 重置排行榜
- 🎯 賓果:選獎品、▶ 開啟 / ■ 停止、目前發了幾張卡與得獎人數。 有賓客宣告賓果時遙控台會跳提示,直接在手機上按「✓ 得獎」或「✗ 駁回」, 大螢幕的審核畫面也會跟著關閉,不用走到大螢幕前操作
- 沒有該權限的帳號看不到對應的按鈕(例如沒有「執行抽獎」權限就不會出現賓果審核與獎品選單)
15☁️ Google Drive 同步
把賓客上傳的照片 / 影片自動同步到 Owner 自己的 Google Drive。同步後伺服器立即刪除本地暫存,既不佔用伺服器空間,系統管理者也看不到照片內容(只看到「已連接」狀態)。
隱私模型
| 角色 | 看得到的東西 | 看不到的東西 |
|---|---|---|
| Super Admin | 是否已連接、Owner 的 Google email | refresh token、Drive 內容、無法存取 Drive |
| Owner | 自己 Drive 的所有同步檔案 | (就是它自己,沒有限制) |
| Moderator | 透過分享連結看照片 | 連接設定、refresh token |
| 賓客 | 透過分享連結看照片 | 所有後台 |
權限範圍
使用 Google Drive 的 drive.file scope:
- 能建立檔案、上傳到本 app 建立的資料夾、分享連結
- 不能讀取 Owner 個人 Drive 其他資料、不能刪除非本 app 建立的檔案
Owner 連接流程
- 進「☁️ Drive 同步」分頁,點「🔗 連接我的 Google Drive」
- 跳轉到 Google 登入,選擇要同步的 Google 帳號
- 同意 app 在 Drive 建立檔案的權限
- 自動跳回後台,看到「已連接 · email@gmail.com」
- 第一張照片上傳時,系統自動建立資料夾「Memory Wall · 活動標題」
同步機制
- 賓客按下上傳 → server 暫存到
uploads/photos/ - 立即在牆上顯示(用 server local URL,讓賓客覺得很快)
- 非同步啟動:用 Owner refresh token 取 access token → 上傳到 Drive → 設定為「任何人有連結就能看」
- 取得 Drive URL,更新 DB 記錄,推 socket 通知 display / admin 切換 src
- 刪除 server 上的暫存檔案
停用 / 中斷
- 停用同步:新上傳會留 server,既有的 Drive 檔案保留
- 中斷連接:刪除 refresh token,新上傳改 local。系統不會刪除已存於 Drive 的檔案(那些檔案是 Owner 自己 Drive 內容,自己決定怎麼處理)
儲存空間
- Drive 免費帳號 15 GB(跟 Gmail / Google Photos 共用)
- 一場婚禮約 500 張照片 + 50 部影片 ≈ 5-10 GB,通常夠用
- 若空間不夠,可升級到 Google One(NT$65/月 起)或定期下載備份後刪除 Drive 檔案
19隱私與安全
賓客會問「我的照片會被誰看到」,這一節是你可以直接回答的內容。
誰看得到照片
| 對象 | 看得到 |
|---|---|
| 現場賓客 | 大螢幕上輪播的照片,以及自己上傳的內容 |
| 活動 Owner | 全部照片與留言,可刪除、可整包下載 |
| 協作者(Moderator) | 依 Owner 勾選的權限而定 |
| 其他活動的主辦方 | 完全看不到——不同活動的資料彼此隔離 |
| 系統管理者 | 若已啟用 Drive 同步,照片存在新人自己的 Google Drive,系統管理者看不到照片內容 |
賓客隱私
- 賓客不需要註冊或登入,系統不會蒐集手機號碼、Email 或任何帳號資料
- 只會記錄賓客自己填的暱稱與上傳內容
- RSVP 回覆只有主辦方看得到,不會出現在大螢幕上
內容管控
- 不適當的照片或留言,Owner 可在後台立刻刪除,大螢幕會同步移除
- 留言內容經過處理才存檔,不可能藏入惡意程式碼
- 有防灌水限制(每分鐘上傳 30 次、留言 20 次),正常使用不會碰到
- 活動可以隨時「一鍵關閉」,關閉後賓客無法再上傳,但已上傳的內容仍保留
操作紀錄
刪照片、抽獎、改權限等重要動作都會留下紀錄(誰、什麼時候、做了什麼), 可以在後台的「稽核紀錄」分頁查看。這在多人協作時特別有用。
20常見問題
Q. 我忘記後台密碼了,怎麼辦?
Q. 可以同時辦多場活動嗎?
/super 一覽全部,各 Owner 只看自己的。
Q. 賓客手機掃碼後相機開不起來?
localhost 例外)。請部署時加 SSL 憑證(Let's Encrypt + nginx 反向代理是最常見組合)。
Q. 大螢幕音樂沒聲音?
Q. 抽獎完想再抽一輪,但不希望已中獎的人再被抽中?
若要全員重新可被抽中,進「抽獎紀錄」按「↺ 重置紀錄」,歷史保留但取消排除效果。
Q. 可以自己改主題色嗎?
:root,主要是 --cream、--paper、--ink、--rose、--gold。改 CSS 即可。
Q. 照片會不會不見?怎麼把照片帶走?
要把照片帶走,到後台「照片管理」按「全選下載」,會打包成一個 ZIP。 若有啟用 Drive 同步,照片本來就已經在新人自己的 Google Drive 裡了。
Q. 賓客可以刪自己上傳的照片嗎?
Q. 活動結束後想保留照片但禁止再上傳?
Q. 排座位的名單少了幾位賓客?
用電話或口頭告知的長輩,可以在排座位頁面直接手動新增,不必請他們補填喜帖。
Q. 我是 Moderator,看不到抽獎分頁?
Q. 賓果遊戲玩家自己亂打勾怎麼辦?
Q. 司儀按「確認得獎」沒反應?
/admin,使用有「執行抽獎」權限的帳號。Cookie 是跨分頁共用,登入後切回 display 分頁就有權限了。沒登入會收到「需要登入司儀帳號」提示。
Q. 多人同時申請 BINGO 怎麼處理?
Q. 賓果任務要寫多少個?
Q. 打地鼠太簡單 / 太難?
- 更難:減短地鼠停留時間(例 0.8 秒)、增加通關門檻(例 15 隻)
- 更簡單:延長地鼠停留(1.5 秒)、減少門檻(7 隻)、用 4×4 或 5×5 格子(目標更多)
- 更刺激:縮短遊戲時間(20 秒)、加快出現間隔(0.5 秒)
Q. 兩款遊戲跟抽獎能同時跑嗎?
event_draws 表,「排除已中獎」設定會把所有來源的得獎者都排除。