本系列將記錄開發 SyncETA Lite 的完整歷程——一套基於機率式思維、為初學者設計的出發時間推薦 PWA。
內容涵蓋 PWA 基礎架構、台灣 TDX 運輸資料與 Google Maps API 串接、簡化版機率推薦邏輯(分位數運算)、離線與推播體驗優化,以及部署上線。
全程程式碼皆會標注寫在專案 syncetalite-pwa/ 資料夾中的哪個檔案,適合對智慧交通、PWA 開發有興趣的初學者跟著實作。
第三階段開始,今天要申請 Google Maps API 金鑰,並了解我們會用到哪些子服務。 需要哪些 API? Google Maps Platform 底...
今天建立 src/components/Map.js,讓 SyncETA Lite 第一次出現真正的地圖畫面。 建立地圖元件 // src/component...
有了地圖跟標記,今天要讓 SyncETA Lite 具備「算路線」的能力。目標檔案:src/api/googleMaps.js。 建立路線查詢函式 // sr...
今天是第三階段的整合日,要把「即時公車到站資料」跟「Google Maps 路線規劃」放進同一個畫面,讓兩份原本各自獨立的資料開始產生關聯。 目標畫面 使用者...
今天是整個系列的中點,也是第三階段的收尾。我們先暫停加新功能,回頭把現有的東西整理得更完整、更好用。 目前完成的功能盤點 ✅ PWA 基礎架構(可安裝、Ma...
第四階段開始,今天先不寫程式碼,用一個生活化的例子,理解這個系列真正想解決的核心問題。 一個簡單的思考實驗 假設 Google Maps 告訴你:「從你家到公...
昨天談了為什麼「平均時間」不夠用,今天用具體數字,把「信心水準」這個概念講得更清楚,為明天寫程式碼做準備。 一個簡化的例子 假設你過去 10 次搭同一班公車...
今天正式建立 src/logic/recommend.js,把前兩天討論的分位數概念,寫成可以執行的程式碼。 撰寫分位數計算函式 // src/logic/r...
昨天的推薦邏輯還是用假資料測試,今天要把它跟系統其他部分真正串起來。 用 TDX 資料模擬「歷史花費時間」 嚴謹來說,「歷史花費時間」應該是長期蒐集使用者實際...
今天建立 src/components/PreferenceSlider.js,讓信心水準變成使用者可以互動調整的設定,而不是寫死的數字。 在 index.h...