里程碑
從題目打卡工具到結合 Line 查詢今日目標
拉布拉多拉的多不多 @labrador發布於 已編輯
一、開發靈感
「練習誌」的靈感,來自我自己的讀書需求。
在準備學校考試時,同一個章節裡會有不同題型,同一道題目也可能需要練習好幾次。我希望記下每次練習的日期,知道哪些題目還沒做過、哪些已經複習過,以及自己目前的進度。
因此,我開始構想一個以「科目、章節、題型、題目」分類的打卡工具,讓做題紀錄可以累積下來,也能在電腦、手機和平板之間同步查看。這就是「練習誌」最初的想法。
二、開發動機
練習誌最初著重在記錄「已經完成的練習」,後來我又加入考前月曆規劃,安排每天要讀的章節與題型,讓工具同時涵蓋進度紀錄和讀書計畫。
當網站逐漸成形後,我開始思考,能不能把它接到平常常用的 LINE,減少每天查詢計畫的步驟。
我先選擇兩個簡單、實際的功能:從 LINE 點開練習誌,以及在聊天室裡查詢「今日目標」。這次串接的重點,是讓 LINE 成為網站的入口,並透過 n8n 讀取既有的月曆安排,不必另外維護一份清單。
目前已完成從 LINE 傳送「今日目標」,取得當天規劃的回覆。
三、設計想法與製作過程
練習誌以網站作為主要操作介面。題目打卡、紀錄更正與考前規劃都在網站完成,LINE 則負責快速查詢,n8n 作為兩者之間的橋樑。
目前的互動方式是:我在官方帳號聊天室輸入「今日目標」,n8n 收到訊息後,確認 LINE 簽章、傳訊者身分與查詢文字,再讀取 Firebase 中的規劃紀錄,整理出台灣時間當天的安排,最後回覆到 LINE。
例如,這次實際測試收到的回覆包含:
今日目標(2 項)
- 中等會計學|ch16|Exercises
- 高等會計學|第三章|全一冊手寫
這份回覆來自網站月曆裡已安排的目標。目前規劃的單位是科目、章節與題型,尚未細分到個別題號。
製作過程中,第一個遇到的問題是網址格式。我用 Mac 上的 Docker 執行 n8n,原本產生的是本機 HTTP 網址,無法直接作為 LINE 要求的 HTTPS Webhook。因此,我先安裝 Homebrew 和 ngrok,建立公開的 HTTPS 入口,讓 LINE 的訊息可以轉送到本機 n8n。
接著,我在 Firebase 建立專用的唯讀服務帳戶,讓 n8n 能讀取規劃資料。這個帳戶不具備新增、修改或刪除資料的權限,但讀取範圍涵蓋資料庫,並非只限於今日目標;查詢流程則固定讀取我自己的網站帳號資料。
另一個重要的發現是,網站保存的是新增、移動、更正與刪除等操作紀錄。要取得正確的今日目標,不能只篩選日期,而必須先還原最新安排,再挑出今天的內容,避免把已經移走或刪除的目標也回覆出來。
這次最大的心得是,把流程拆成能逐步確認的小步驟,比一次加入所有功能更容易找到問題。當我能分辨訊息進到哪裡、哪個節點成功,以及資料如何變成回覆內容時,也更能理解自己做出的工具是怎麼運作的。
五、未來方向
接下來還是以網站本身功能和UI的修改為主,因為目前 n8n 和 ngrok 都在自己的 Mac 上執行,使用時需要保持電腦、容器與隧道運作,透過line去操作比較不方便。但是如果網站功能和介面都完成的差不多的話,Line的功能也會想再多新增打卡和規劃功能(跟上網站的各項功能)。
0 個愛心0 則留言
登入並驗證手機後就能留言。登入