iT邦幫忙

鐵人檔案

2026 iThome 鐵人賽
回列表
Software Development

SyncETA 開發日記:手把手打造你的智慧出發時間推薦 PWA 系列

本系列將記錄開發 SyncETA Lite 的完整歷程——一套基於機率式思維、為初學者設計的出發時間推薦 PWA。

內容涵蓋 PWA 基礎架構、台灣 TDX 運輸資料與 Google Maps API 串接、簡化版機率推薦邏輯(分位數運算)、離線與推播體驗優化,以及部署上線。

全程程式碼皆會標注寫在專案 syncetalite-pwa/ 資料夾中的哪個檔案,適合對智慧交通、PWA 開發有興趣的初學者跟著實作。

參賽天數 23 天 | 共 23 篇文章 | 0 人訂閱 訂閱系列文 RSS系列文
DAY 11

【Day 11】Google Maps API 申請與基本設定

第三階段開始,今天要申請 Google Maps API 金鑰,並了解我們會用到哪些子服務。 需要哪些 API? Google Maps Platform 底...

2026-09-18 ‧ 由 zoeeyee 分享
DAY 12

【Day 12】在頁面上嵌入地圖、標記起訖點

今天建立 src/components/Map.js,讓 SyncETA Lite 第一次出現真正的地圖畫面。 建立地圖元件 // src/component...

2026-09-19 ‧ 由 zoeeyee 分享
DAY 13

【Day 13】使用 Directions API 計算路線與時間

有了地圖跟標記,今天要讓 SyncETA Lite 具備「算路線」的能力。目標檔案:src/api/googleMaps.js。 建立路線查詢函式 // sr...

2026-09-20 ‧ 由 zoeeyee 分享
DAY 14

【Day 14】將 TDX 資料與地圖路線結合顯示

今天是第三階段的整合日,要把「即時公車到站資料」跟「Google Maps 路線規劃」放進同一個畫面,讓兩份原本各自獨立的資料開始產生關聯。 目標畫面 使用者...

2026-09-21 ‧ 由 zoeeyee 分享
DAY 15

【Day 15】小結:完成一個「即時查詢」版本

今天是整個系列的中點,也是第三階段的收尾。我們先暫停加新功能,回頭把現有的東西整理得更完整、更好用。 目前完成的功能盤點 ✅ PWA 基礎架構(可安裝、Ma...

2026-09-22 ‧ 由 zoeeyee 分享
DAY 16

【Day 16】為什麼「準時到達」是機率問題,不是單一數字?

第四階段開始,今天先不寫程式碼,用一個生活化的例子,理解這個系列真正想解決的核心問題。 一個簡單的思考實驗 假設 Google Maps 告訴你:「從你家到公...

2026-09-23 ‧ 由 zoeeyee 分享
DAY 17

【Day 17】用簡單例子理解「信心水準」的概念

昨天談了為什麼「平均時間」不夠用,今天用具體數字,把「信心水準」這個概念講得更清楚,為明天寫程式碼做準備。 一個簡化的例子 假設你過去 10 次搭同一班公車...

2026-09-24 ‧ 由 zoeeyee 分享
DAY 18

【Day 18】設計一個簡化版的出發時間建議規則

今天正式建立 src/logic/recommend.js,把前兩天討論的分位數概念,寫成可以執行的程式碼。 撰寫分位數計算函式 // src/logic/r...

2026-09-25 ‧ 由 zoeeyee 分享
DAY 19

【Day 19】把建議邏輯寫進程式,串接真實資料

昨天的推薦邏輯還是用假資料測試,今天要把它跟系統其他部分真正串起來。 用 TDX 資料模擬「歷史花費時間」 嚴謹來說,「歷史花費時間」應該是長期蒐集使用者實際...

2026-09-26 ‧ 由 zoeeyee 分享
DAY 20

【Day 20】讓使用者可以調整「想要多準時」的偏好

今天建立 src/components/PreferenceSlider.js,讓信心水準變成使用者可以互動調整的設定,而不是寫死的數字。 在 index.h...

2026-09-27 ‧ 由 zoeeyee 分享