# 複習系統產品需求規格書 (MVP版本) **版本**: 1.0 MVP **日期**: 2025-10-03 **策略**: 階段性開發,避免過度工程 **當前狀態**: 極簡MVP已完成 ✅ --- ## 🎯 **產品願景** ### **核心價值主張** 幫助用戶通過**翻卡記憶**快速有效地複習詞彙,提升學習效率。 ### **設計理念** - **簡單可用** > 功能完整 - **用戶驗證** > 假設需求 - **迭代進化** > 一次到位 - **真實反饋** > 完美設計 --- ## 🚀 **階段1: 極簡MVP (當前版本)** ### **US-001: 基礎翻卡記憶** **作為** 想複習詞彙的學習者 **我希望** 能夠翻卡查看詞彙內容並評估自己的熟悉程度 **以便** 測試和強化我的詞彙記憶 **實作狀態**: ✅ 已完成 **技術路徑**: `/review-simple` ### **核心功能清單** - ✅ 3D翻卡動畫和互動 - ✅ 詞彙內容顯示 (定義、例句、同義詞) - ✅ 信心度評估 (1-5級) - ✅ 基礎進度追蹤 - ✅ 完成統計結果 --- ## 🎯 **階段2: 線性雙測驗流程** ### **US-002: 線性複習流程** **作為** 想要高效複習的學習者 **我希望** 系統自動安排複習順序和測驗類型 **以便** 無需思考如何複習,專注於學習本身 **核心設計原則**: - 🔄 **線性流程** - 用戶不需要選擇,系統決定下一步 - 📚 **固定模式** - 每張詞卡必須完成兩種測驗 - ⚡ **自動進行** - 完成一個測驗自動進入下一個 ### **詳細流程規格** #### **2.1 測驗項目生成** ``` 詞卡A → [翻卡記憶, 詞彙選擇] 詞卡B → [翻卡記憶, 詞彙選擇] 詞卡C → [翻卡記憶, 詞彙選擇] ... 線性序列: A翻卡 → A選擇 → B翻卡 → B選擇 → C翻卡 → C選擇 → ... ``` #### **2.2 狀態追蹤架構** ```typescript interface QuizItem { id: string // 測驗項目ID cardId: string // 所屬詞卡ID testType: 'flip-card' | 'vocab-choice' isCompleted: boolean // 個別測驗完成狀態 skipCount: number // 跳過次數 wrongCount: number // 答錯次數 order: number // 序列順序 } ``` #### **2.3 進度計算邏輯** - **測驗項目總數**: `詞卡數量 × 2` - **當前進度**: `已完成測驗項目數 / 總測驗項目數` - **詞卡完成條件**: 兩個測驗項目都標記為已完成 #### **2.4 用戶介面流程** 1. **進入複習** → 自動開始第一個測驗項目 2. **完成測驗** → 自動進入下一個測驗項目 3. **全部完成** → 顯示整體結果統計 #### **2.5 測驗項目詳細設計** ##### **翻卡記憶測驗** - **目的**: 自我評估對詞彙的熟悉程度 - **互動方式**: 點擊翻卡查看定義、例句、同義詞 - **評分機制**: 3級信心度 (模糊0分、一般1分、熟悉2分) - **完成條件**: 用戶選擇任意信心度 ##### **詞彙選擇測驗** - **目的**: 客觀測試詞彙記憶準確性 - **互動方式**: 4選1選擇題,根據定義選擇正確詞彙 - **評分機制**: 正確2分、錯誤0分 - **選項生成**: 1個正確答案 + 3個隨機干擾項 - **完成條件**: 用戶點擊任意選項 #### **2.6 延遲計數系統整合** - **跳過行為**: 兩種測驗都支援跳過功能 - **錯誤處理**: 翻卡測驗選擇"模糊"、選擇題答錯都計入錯誤 - **優先級算法**: 跳過次數 + 錯誤次數 = 延遲分數,越高越優先 #### **2.7 進度保存機制** - **範圍**: 個別測驗項目的完成狀態 - **存儲**: localStorage,包含測驗項目陣列 - **恢復**: 頁面重新載入時恢復到正確的測驗項目 - **重置**: 跨日期自動重置進度 --- ## 🎯 **階段3: API集成版本 (遠期)** ### **US-003: 真實詞彙庫** **作為** 想學習更多詞彙的學習者 **我希望** 能夠複習我收藏的真實詞彙 **以便** 學習我感興趣的內容 **觸發條件**: - ✅ 線性流程驗證成功 - ✅ 有明確需要更多詞彙的用戶反饋 - ✅ 靜態數據已無法滿足需求 --- ## 📊 **成功標準** ### **階段1 MVP成功標準** - ✅ 用戶能完整完成翻卡記憶流程 - ✅ 無功能性錯誤或崩潰 - ✅ 載入時間 < 2秒 - ✅ 延遲計數系統運作正常 ### **階段2 線性流程成功標準** - [ ] 測驗項目自動線性進行,無需用戶選擇 - [ ] 每張詞卡的兩種測驗都正確執行 - [ ] 延遲計數系統適用於兩種測驗類型 - [ ] 進度顯示反映真實的測驗項目完成狀態 - [ ] localStorage 保存/恢復測驗項目狀態 - [ ] 整體複習完成後顯示統合結果 ### **驗收條件 (Definition of Done)** - [ ] 用戶進入 `/review-simple` 自動開始第一個測驗項目 - [ ] 完成翻卡記憶後自動切換到詞彙選擇測驗 - [ ] 完成詞彙選擇後自動進入下一張詞卡的翻卡記憶 - [ ] 進度條顯示 `已完成測驗項目 / 總測驗項目` - [ ] 延遲計數在兩種測驗間正確傳遞和累積 - [ ] 頁面刷新能恢復到正確的測驗項目位置 ### **避免的功能 (Out of Scope)** ❌ 用戶手動選擇測驗類型 ❌ 智能排程算法 ❌ 複雜狀態管理架構 ❌ 測驗順序自定義 **參考**: `技術實作規格.md` 和 `開發控制規範.md` 詳細規定