dramaling-vocab-learning/note/複習系統/產品需求規格.md

164 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 複習系統產品需求規格書 (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` 詳細規定