我用一台 iPad 管整間餐廳:Tablee 的技術選型與實作心得

更新 發佈閱讀 4 分鐘

最近把自己做的餐廳管理系統正式上線了,趁這個機會分享一下技術架構和踩過的坑。


---

背景


台灣很多中小型餐廳還在用紙本點餐或老舊 POS,換系統的門檻很高。我想做一個不需要安裝任何 App、不需要特殊硬體、一台 iPad

就能跑起來的餐廳管理平台。


系統叫 Tablee,官網:https://restaurant.taiwan-fan.com/


---

為什麼選 Cloudflare Workers + D1?


一開始考慮過 GCP Cloud Run + MySQL,但餐廳這個場景有個特性:流量非常不平均,午餐晚餐各爆一次,其他時間幾乎閒置。


Serverless edge 完美符合這個需求:

Workers:請求到來才執行,沒有冷啟動費用

D1:SQLite-based,小餐廳的資料量完全夠用

KV:拿來存 session state、OAuth state、rate limit counter

R2:菜單圖片 CDN


整個後端零台機器,按用量計費,一間小餐廳一個月的費用幾乎是 $0。


---

前端為什麼不用 React / Vue?


餐廳後台用 Alpine.js SPA,消費者點餐頁也是 Alpine.js。原因很簡單:不需要 build step,wrangler deploy 直接推靜態檔。


一個指令,Worker + 靜態資源全部更新完畢。


---

QR 點餐的安全機制


每次「入座」會產生一個 UUID session token,綁定桌號和餐廳 ID。QR Code 是固定的(不用每次換),但 token 是動態的。


流程:入座 → 產生 session token → 客人掃 QR → 帶 token 驗證 → 進入菜單 → 結帳 → session closed → token 失效


這樣解決了幾個問題:

舊客人的手機掃不回來加點

掃到隔壁桌的 QR 會被拒絕(token 綁 table_id)

忘記結帳 → 4 小時後自動過期


同桌多人掃同一張 QR,系統用 localStorage 的 device_id 區分誰點了什麼,最後合併成一張帳單。


---

廚房出餐狀態機


五個階段:pending → preparing → cooking → ready → served


廚房端只需要一個平板,顯示所有進行中的訂單。消費者端每 10 秒輪詢一次,看到「您的餐點正在烹煮」。


這個輪詢設計是刻意的選擇:WebSocket 在 Cloudflare Workers 上需要 Durable Objects,成本和複雜度不划算,10 秒輪詢對餐廳場景完全夠用。


---

Demo 環境


做了一個完整的互動 Demo,模擬真實餐廳的點餐流程:

https://restaurant.taiwan-fan.com/demo-live.html


業者可以在這裡體驗完整流程再決定要不要申請。


---

目前狀態


Beta 開放中,完全免費

支援:QR 點餐、訂位管理、廚房出餐追蹤、桌位管理、多語言菜單

OAuth 登入:Google / LINE


有興趣的朋友歡迎試用,或留言討論技術細節。

留言
avatar-img
isan chen的沙龍
0會員
1內容數
你可能也想看
Thumbnail
本文深度解析賽勒布倫尼科夫的舞臺作品《傳奇:帕拉贊諾夫的十段殘篇》,如何以十段殘篇,結合帕拉贊諾夫的電影美學、象徵意象與當代政治流亡抗爭,探討藝術在儀式消失的現代社會如何承接意義,並展現不羈的自由靈魂。
Thumbnail
本文深度解析賽勒布倫尼科夫的舞臺作品《傳奇:帕拉贊諾夫的十段殘篇》,如何以十段殘篇,結合帕拉贊諾夫的電影美學、象徵意象與當代政治流亡抗爭,探討藝術在儀式消失的現代社會如何承接意義,並展現不羈的自由靈魂。
Thumbnail
想來逐步整理我的印本心得了 一次發很正式的教學文我覺得壓力會有點大,所以我分段發布 想先整理數據所以①就從數據開始發 印刷文字數據 以目前我多次試印的測試(書本尺寸為A5) 單元篇章標題 12pt 文字對話 9pt 附屬字 6~7pt(我是用6.5) 【CSP內的
Thumbnail
想來逐步整理我的印本心得了 一次發很正式的教學文我覺得壓力會有點大,所以我分段發布 想先整理數據所以①就從數據開始發 印刷文字數據 以目前我多次試印的測試(書本尺寸為A5) 單元篇章標題 12pt 文字對話 9pt 附屬字 6~7pt(我是用6.5) 【CSP內的
Thumbnail
還記得約莫在一年前,我有介紹過 Shiftscreen 這款能為 Apple 行動設備帶來類桌面操作體驗的工具吧,雖然那時候覺得它十分有潛力,但可惜後來作者似乎棄坑了,直到近期,我又找到了另一款類似的新秀,或許能填補這個空缺?
Thumbnail
還記得約莫在一年前,我有介紹過 Shiftscreen 這款能為 Apple 行動設備帶來類桌面操作體驗的工具吧,雖然那時候覺得它十分有潛力,但可惜後來作者似乎棄坑了,直到近期,我又找到了另一款類似的新秀,或許能填補這個空缺?
Thumbnail
長期以來,西方美學以《維特魯威人》式的幾何比例定義「完美身體」,這種視覺標準無形中成為殖民擴張與種族分類的暴力工具。本文透過分析奈及利亞編舞家庫德斯.奧尼奎庫的舞作《轉轉生》,探討當代非洲舞蹈如何跳脫「標本式」的文化觀看。
Thumbnail
長期以來,西方美學以《維特魯威人》式的幾何比例定義「完美身體」,這種視覺標準無形中成為殖民擴張與種族分類的暴力工具。本文透過分析奈及利亞編舞家庫德斯.奧尼奎庫的舞作《轉轉生》,探討當代非洲舞蹈如何跳脫「標本式」的文化觀看。
Thumbnail
全新版本的《三便士歌劇》如何不落入「復刻經典」的巢臼,反而利用華麗的秀場視覺,引導觀眾在晚期資本主義的消費愉悅之中,而能驚覺「批判」本身亦可能被收編——而當絞繩升起,這場關於如何生存的黑色遊戲,又將帶領新時代的我們走向何種後現代的自我解構?
Thumbnail
全新版本的《三便士歌劇》如何不落入「復刻經典」的巢臼,反而利用華麗的秀場視覺,引導觀眾在晚期資本主義的消費愉悅之中,而能驚覺「批判」本身亦可能被收編——而當絞繩升起,這場關於如何生存的黑色遊戲,又將帶領新時代的我們走向何種後現代的自我解構?
Thumbnail
若說易卜生的《玩偶之家》為 19 世紀的女性,開啟了一扇離家的窄門,那麼《海妲.蓋柏樂》展現的便是門後的窒息世界。本篇文章由劇場演員 Amily 執筆,同為熟稔文本的演員,亦是深刻體察制度縫隙的當代女性,此文所看見的不僅僅是崩壞前夕的最後發聲,更是女人被迫置於冷酷的制度之下,步步陷入無以言說的困境。
Thumbnail
若說易卜生的《玩偶之家》為 19 世紀的女性,開啟了一扇離家的窄門,那麼《海妲.蓋柏樂》展現的便是門後的窒息世界。本篇文章由劇場演員 Amily 執筆,同為熟稔文本的演員,亦是深刻體察制度縫隙的當代女性,此文所看見的不僅僅是崩壞前夕的最後發聲,更是女人被迫置於冷酷的制度之下,步步陷入無以言說的困境。
Thumbnail
iPad是一款功能强大的平板电脑,为用户提供了丰富的功能和便利的使用体验。对于新手来说,以下是一些使用iPad时需要注意的事情。 1. 更新系统和应用程序 确保您的iPad系统和应用程序始终保持最新版本。通过更新系统和应用程序,您可以获得最新的功能和性能优化,以及修复可能存在的漏洞和问题。 2. 设
Thumbnail
iPad是一款功能强大的平板电脑,为用户提供了丰富的功能和便利的使用体验。对于新手来说,以下是一些使用iPad时需要注意的事情。 1. 更新系统和应用程序 确保您的iPad系统和应用程序始终保持最新版本。通过更新系统和应用程序,您可以获得最新的功能和性能优化,以及修复可能存在的漏洞和问题。 2. 设
Thumbnail
前一陣子 Apple 發佈了新的 iPadOS 17 系統 Beta 版本,而值得一提的是,這次在功能上新增了支援外接攝影機的功能,但除此之外,似乎還有更有趣的應用。
Thumbnail
前一陣子 Apple 發佈了新的 iPadOS 17 系統 Beta 版本,而值得一提的是,這次在功能上新增了支援外接攝影機的功能,但除此之外,似乎還有更有趣的應用。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News