iT邦幫忙

2025 iThome 鐵人賽

DAY 19
0
生成式 AI

30 天 Vibe Coding:全端 × 機器學習的實作挑戰系列 第 19

Day 19|30 天 Vibe Coding:日記不只要寫,還要能帶走

  • 分享至 

  • xImage
  •  

昨天把隱私和加密處理好,今天要補上另一個關鍵功能 —— 匯出/匯入
畢竟日記是很個人的資料,不能只困在雲端,也要能備份、遷移,甚至重新匯入
所以今天的目標就是讓使用者可以把日記資料輸出成 JSON/CSV 檔案,還能在需要時匯入回來


今日目標

  1. 支援 匯出 日記
  • 格式:JSON、CSV(日期、內容、情緒標籤)
  • 下載到本地,或透過系統分享
  1. 支援 匯入 日記
  • 使用者上傳 JSON/CSV → 解析後寫回 Firestore
  • 自動跳過重複 id 的日記(避免覆蓋)
  1. UI 設計:
  • 「匯出」按鈕放在設定頁
  • 「匯入」支援拖曳或檔案選擇
  1. 錯誤處理:
  • 檔案格式不正確 → 顯示提示
  • 匯入成功 → 顯示成功訊息 + 列表更新

Prompt

幫我在 React (Firestore + Auth) 的情緒日記 App 加入「匯出/匯入」功能  

=== 功能需求 ===  
1) 匯出功能  
   - 從 Firestore 讀取 users/{uid}/diaries  
   - 輸出為 JSON 與 CSV  
   - 下載檔案:命名為 diary-YYYYMMDD.json / .csv  

2) 匯入功能  
   - 使用 input type="file" 上傳 JSON/CSV  
   - 解析後比對日記 id:  
     - 如果已有同 id → 跳過  
     - 沒有 → 新增到 Firestore  
   - 格式:{ id, date, content, sentiment }  

3) UI  
   - 設定頁面加兩個按鈕:「匯出」「匯入」  
   - 匯入成功/失敗要有訊息提示  

4) 技術細節  
   - 匯出 JSON:用 `JSON.stringify()`  
   - 匯出 CSV:用 PapaParse 或自己組字串  
   - 匯入:支援 JSON 與 CSV 解析  

今日驗收 ✅

  1. 點「匯出」 → 成功下載 JSON/CSV 檔案
  • 檔案包含日期、內容、情緒標籤
  • 命名正確
    https://ithelp.ithome.com.tw/upload/images/20250907/201409984R7ax7XJNY.png
    https://ithelp.ithome.com.tw/upload/images/20250907/20140998NSqmAn3yFT.pnghttps://ithelp.ithome.com.tw/upload/images/20250907/20140998rA0k77IKxK.png
  1. 上傳 JSON/CSV 檔案 → Firestore 新增日記
  • 舊資料不被覆蓋
  • 格式錯誤時會提示
  1. 匯入後列表立刻更新

明日預告

Day 20 要來做 PWA 離線模式!
我希望就算在沒有網路的情況下,也能照樣寫日記,等到恢復連線後自動同步到雲端,真正做到「隨時隨地」記錄心情


上一篇
Day 18|30 天 Vibe Coding:日記是要跟我進墳墓的,誰都不能看
下一篇
Day 20|30 天 Vibe Coding:沒有網路就活不下去?至少日記不能斷
系列文
30 天 Vibe Coding:全端 × 機器學習的實作挑戰21
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言