iT邦幫忙

2025 iThome 鐵人賽

DAY 19
0
自我挑戰組

我獨自開發 - Supabase 打造全端應用系列 第 19

第十九關 - Supabase 實戰開發全端應用:來企排隊

  • 分享至 

  • xImage
  •  

封面

專案背景

你是否曾經在餐廳門口排隊等位,眼睜睜看著時間一分一秒流逝?或是在診所候診室裡無聊地滑手機,不知道還要等多久?

作為一個非常討厭排隊的人,深深感受到排隊對時間的浪費。在台灣,排隊似乎已經成為生活的一部分,無論是為了美食、限量商品,還是各種服務,大家總是願意花費大量時間在排隊上。

如果能夠透過科技來優化排隊流程,可以預先預約、遠程排隊,並在輪到自己時收到通知,那該有多好?

專案目的

  1. 減少排隊時間

    • 讓使用者可以在家中、辦公室或任何地方進行線上預約
    • 透過即時通知系統,在輪到時才需要到現場
  2. 提升服務效率

    • 幫助商家更好地管理客流量
    • 減少現場擁擠情況
  3. 數位化服務

    • 建立現代化的客戶關係管理系統
    • 為未來更多創新功能奠定基礎

解決的問題

  • 時間浪費:消除不必要的等待時間
  • 資訊不透明:提供即時的排隊狀況和預估等待時間
  • 管理困難:幫助商家更有效地管理客流

專案名稱

「來企排隊」(LaiQiPaiDui),取自台語「來這裡排隊」的諧音,簡單易記,且帶有親切感。

「企」是企鵝的企,靈感來自企鵝會有類似排隊行為,因為牠們在軟軟的雪地裡走路,大家都當開路先鵝的話,會耗費太多體力,因此牠們演化出排隊省力的方法,固定在同一個路線,就會都是踩過的路。

而且在下水時,牠們也會排隊,若同時跳下水,會造成水花四濺之外,也有可能互相撞擊,影響其他同伴,因此牠們會一隻接一隻的跳下去。

主要功能

使用者管理

管理使用者帳號,提供基本的個人資料設定和安全性功能:

  • 個人資料管理:完整的使用者檔案,包含姓名、頭像、信箱、地址等基本資訊
  • 個人化設定:客製化的使用者偏好和通知設定

預約排隊

對於一般使用者(預約者):

  • 瀏覽可預約服務:查看所有提供預約服務的商家列表
    • 顯示商家名稱、頭像、地址、聯絡信箱
    • 即時顯示目前排隊人數
    • 一鍵預約功能
  • 管理個人預約:查看已預約的服務詳情
    • 顯示商家資訊和聯絡方式
    • 即時更新的號碼牌資訊
    • 隨時可以取消預約
  • 即時通知系統
    • 當輪到自己時收到完成預約通知
    • 重要狀態變更的推播提醒
  • 即時溝通:與商家進行一對一聊天,詢問詳細資訊或特殊需求

對於服務提供者(被預約者):

被預約者不限於商家,任何需要排隊預約的服務都可以使用此系統,可以是個人或者餐廳、診所、銀行等各類服務商家。

  • 管理預約列表:查看所有預約自己服務的客戶
    • 顯示客戶姓名、頭像、聯絡信箱
    • 即時更新的目前排隊人數
  • 處理客戶預約:管理個別客戶的預約狀態
    • 查看客戶詳細資訊
    • 顯示號碼牌資訊
    • 標記預約完成
  • 通知管理
    • 當客戶取消預約時收到通知
    • 重要事件的即時提醒
  • 客戶服務:透過一對一聊天室與客戶溝通

通訊系統

可以透過應用程式內的即時通訊系統,讓使用者和商家之間可以輕鬆交流:

  • 一對一聊天室:預約者與服務提供者之間的直接溝通管道
  • 訊息狀態追蹤:已讀、未讀狀態顯示

可以透過多種方式通知使用者和商家:

  • 多種通知方式:應用內通知、電子郵件通知
  • 即時狀態更新:排隊進度、預約狀態變更的即時通知

使用者故事

一般使用者的預約流程

小明想要到熱門餐廳用餐的一天:

  1. 註冊登入:小明下載應用程式,使用電子郵件註冊帳號,上傳個人頭像,填寫基本資料
  2. 瀏覽餐廳:在可預約列表中看到心儀的餐廳,查看目前排隊人數(15 人)
  3. 線上預約:點擊預約按鈕,系統分配給他 16 號
  4. 自由活動:小明可以繼續工作或處理其他事情,不需要在餐廳門口排隊
  5. 即時溝通:透過聊天室詢問餐廳是否有素食選項
  6. 收到通知:當排到 14 號時,收到「即將輪到您」的提醒
  7. 準時到達:收到「請前往餐廳」的通知後,小明準時到達
  8. 完成用餐:享受美食,節省了 1 小時的排隊時間

提供服務者的被預約流程

餐廳老闆阿華的管理日常:

  1. 查看預約狀況:每天早上查看預約列表,了解今日客流預估
  2. 人力安排:根據預約人數合理安排服務人員
  3. 處理客戶詢問:透過聊天室回答客戶關於菜單、等待時間等問題
  4. 更新服務狀態:當完成一位客戶的服務後,點擊「完成預約」
  5. 收到取消通知:當有客戶取消預約時,及時調整安排
  6. 提升服務品質:有更多時間專注於食物品質和服務,而非管理排隊

使用技術

前端技術棧

  • Next.js:提供伺服器端渲染、靜態生成等功能
  • TypeScript:型別安全的 JavaScript,提高程式碼品質
  • Tailwind CSS:快速建立美觀的使用者介面
  • Radix UI:無障礙的 UI 組件庫,確保良好的使用者體驗
  • ESLint:程式碼靜態分析工具,確保程式碼品質

後端技術棧

後端使用 Supabase 具有完整的 BaaS(Backend as a Service)功能

Auth(身份驗證)

  • 電子郵件登入:安全的密碼驗證機制
  • 會員管理:完整的使用者生命週期管理
  • JWT Token:安全的身份驗證令牌
  • 行級安全性(RLS):確保資料存取的安全性

Database(資料庫)

  • PostgreSQL:強大的關聯式資料庫
  • RESTful API:自動生成的 CRUD 操作介面
  • 複雜查詢支援:支援 SQL 查詢和資料關聯

Realtime(即時功能)

  • 即時排隊數更新:當有人預約或取消時,排隊數即時更新
  • 聊天室功能:預約者與商家之間的即時通訊
  • Presence 追蹤:使用者在線狀態管理

Edge Functions(邊緣函數)

  • Resend 整合:電子郵件發送服務
  • 業務邏輯處理:複雜的後端邏輯處理
  • 第三方服務整合:與外部 API 的安全整合

Storage(檔案儲存)

  • 頭像上傳:使用者和商家的頭像管理
  • 圖片處理:自動的圖片壓縮和格式轉換
  • 安全存取控制:基於使用者權限的檔案存取

小結

「來企排隊」希望可以改變生活方式。透過現代化的技術棧和使用者中心的理念,致力於解決排隊這個影響深遠的生活痛點。

一起告別無效的等待,更有效率的利用時間!

To be continued...

有任何想討論歡迎留言,或需要指正的地方請鞭大力一點,歡迎訂閱、按讚加分享,分享給想要提升開發效率或探索新技術可能性的朋友!


上一篇
第十八關 - 提升魔力波長MAX:Supabase Auth 進階設定
下一篇
第二十關 - 來企排隊:網頁地圖/流程圖/時序圖/設計稿
系列文
我獨自開發 - Supabase 打造全端應用22
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言