dramaling-vocab-learning/docs/02_design/DramaLing-Product-Requireme...

695 lines
18 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.

# DramaLing 產品需求規格書
## 📋 **文件資訊**
- **文件名稱**: DramaLing 產品需求規格書 (統一版)
- **版本**: v3.0 (整合版)
- **建立日期**: 2025-09-23
- **最後更新**: 2025-09-23
- **負責團隊**: DramaLing 產品與技術團隊
- **適用範圍**: 全平台 (Web、API、未來 Mobile)
---
## 🎯 **產品概述**
### **產品定位**
DramaLing 是一個 AI 驅動的個人化英語學習平台,專注於通過智能句子分析、互動式詞彙學習和間隔重複算法,提供高效的英語學習體驗。
### **商業目標**
- 🎯 **提升學習效率**: 通過 AI 分析幫助用戶快速理解句子結構
- 💡 **個人化學習**: 基於用戶 CEFR 等級提供適合的學習內容
- 📈 **用戶留存**: 通過互動式體驗和科學算法增加平台黏性
- 🌍 **市場差異化**: 提供業界領先的 AI 驅動語言學習體驗
### **核心價值主張**
- 🤖 **AI 驅動分析** - 即時語法檢查和詞彙解析
- 🎯 **個人化學習** - 基於 CEFR 等級的智能詞彙分類
- 📊 **科學算法** - SM-2 間隔重複算法優化記憶
- 💡 **互動式體驗** - 點擊探索式的深度學習
---
## 🎭 **核心用戶故事**
### **US1. AI 智能分析流程**
#### **US1.1 智能句子分析**
```gherkin
功能: 智能英文句子分析
背景: 用戶想要學習和理解英文句子
場景: 用戶分析英文句子
給定 用戶是英語學習者 (CEFR A2 等級)
用戶輸入英文句子 "She just join the team, so let's cut her some slack until she get used to the workflow."
並且 點擊「分析句子」按鈕
那麼 系統應該顯示語法修正建議 (join → joins, get → gets)
並且 系統應該提供詞彙難度標記 (based on A2 level)
並且 系統應該識別慣用語 "cut someone some slack"
並且 系統應該提供完整的中文翻譯
驗收標準:
- 能輸入最多 300 字的英文句子
- 分析回應時間 < 5 秒
- 語法檢查準確率 > 85%
- 詞彙 CEFR 分級準確率 > 90%
- 慣用語識別覆蓋率 > 80%
```
#### **US1.2 個人化詞彙學習**
```gherkin
功能: 基於 CEFR 等級的個人化詞彙標記
背景: 不同程度的學習者需要不同的學習重點
場景: A2 程度學習者查看句子分析
給定 用戶的 CEFR 等級是 A2
系統分析句子中的詞彙
那麼 A1 詞彙應該顯示為「太簡單啦」(灰色虛線)
並且 A2 詞彙應該顯示為「重點學習」(綠色邊框)
並且 B1+ 詞彙應該顯示為「有點挑戰」(橙色邊框)
並且 慣用語應該獨立顯示為「慣用語」(藍色邊框)
並且 常用詞彙顯示 ⭐ 星星標記
驗收標準:
- 詞彙分類基於用戶當前 CEFR 等級動態計算
- 用戶可以調整 CEFR 等級設定
- 等級變更時詞彙標記即時更新
- 統計卡片數字與實際標記一致
- 常用詞彙星星標記正確顯示
```
### **US2. 詞卡管理系統**
#### **US2.1 AI 詞卡生成**
```gherkin
功能: 從分析結果生成學習詞卡
背景: 用戶想要將分析的詞彙保存為學習材料
場景: 用戶生成詞卡
給定 句子分析已完成
用戶點擊詞彙的「保存到詞卡」按鈕
那麼 系統應該自動填入詞彙資訊
並且 包含翻譯、定義、發音、例句
並且 設定適當的 CEFR 等級
並且 保存到用戶的詞卡庫
驗收標準:
- 一鍵保存詞彙到詞卡
- 自動填入完整詞卡資訊
- 支援批量生成詞卡
- 避免重複詞卡 (智能檢測)
```
#### **US2.2 詞卡學習系統**
```gherkin
功能: 科學的間隔重複學習
背景: 用戶需要有效的記憶和複習機制
場景: 用戶進行詞卡複習
給定 用戶有待複習的詞卡
用戶進入學習模式
那麼 系統應該根據 SM-2 算法排序詞卡
並且 提供多種學習模式 (翻卡/測驗)
並且 根據答題表現調整複習間隔
並且 追蹤學習進度和統計
驗收標準:
- SM-2 算法正確實施
- 學習模式切換流暢
- 進度追蹤準確
- 複習提醒及時
```
---
## 📋 **功能需求規格**
### **FR1. 用戶認證系統**
#### **FR1.1 註冊與登入**
**優先級**: P0 (必須)
**功能描述**:
- Email 註冊與驗證
- Google OAuth 整合
- 安全的密碼管理
- 多設備 Session 管理
**詳細規格**:
```yaml
註冊功能:
- Email 格式驗證和唯一性檢查
- 密碼要求: 最少8位包含大小寫字母、數字、特殊符號
- 用戶名: 3-20字符唯一性檢查
- 驗證郵件: 24小時有效期
- Google OAuth: 一鍵登入,自動創建帳號
登入功能:
- Email/密碼登入
- 記住我功能 (7天/30天)
- 失敗限制: 5次後鎖定15分鐘
- 上次登入信息顯示
Session 管理:
- JWT Token: Access (15分鐘), Refresh (7天)
- 自動更新 Token
- 多裝置登入管理
- 強制登出所有裝置
```
### **FR2. AI 智能分析系統**
#### **FR2.1 文本輸入處理**
**優先級**: P0 (必須)
**功能描述**:
- 支援英文文本輸入和預處理
- 智能字符限制和驗證
- 輸入格式標準化
**詳細規格**:
```yaml
輸入限制:
- 最大長度: 300 字符
- 支援字符: 英文字母、數字、標點符號
- 警告機制: 280字符黃色警告300字符禁止輸入
- 即時驗證: 字符計數顯示,超限阻止提交
錯誤處理:
- 空字串: 禁用分析按鈕
- 無效字符: 自動過濾或提示
- 超長文本: 截斷並警告用戶
預處理功能:
- 自動語言檢測 (英文)
- 格式標準化
- 特殊字符處理
```
#### **FR2.2 AI 分析核心**
**優先級**: P0 (必須)
**功能描述**:
- 整合 Google Gemini API 進行多維度分析
- 提供語法檢查、詞彙分析、翻譯、慣用語識別
- 確保分析準確性和一致性
**詳細規格**:
```yaml
分析範圍:
- 語法檢查: 時態、主謂一致、介詞、詞序
- 詞彙分析: CEFR等級、詞性、發音、翻譯、使用頻率
- 句子翻譯: 自然流暢的繁體中文
- 慣用語識別: 慣用語、片語動詞、固定搭配
API 回應格式:
- 詞彙物件: word, definition, translation, cefrLevel, isCommon
- 慣用語物件: idiom, meaning, translation, isCommon
- 語法修正: original, corrected, type, explanation
- 整句翻譯: 完整的繁體中文翻譯
品質要求:
- 語法檢查準確率: > 85%
- CEFR 分級準確率: > 90%
- 翻譯自然度評分: > 4.0/5.0
- 慣用語識別率: > 80%
- 常用詞頻率判定準確率: > 85%
性能要求:
- 分析響應時間: < 5 秒
- 同時支援用戶數: > 100
- 服務可用性: > 99.5%
- 快取命中率: > 80% (已實現 67%+)
```
#### **FR2.3 個人化學習引擎**
**優先級**: P0 (必須)
**功能描述**:
- 基於用戶 CEFR 等級的動態詞彙分類
- 智能學習重點推薦
- 個人化統計和進度追蹤
**詳細規格**:
```yaml
分類邏輯:
- 簡單詞彙: 用戶等級 > 詞彙等級
- 適中詞彙: 用戶等級 = 詞彙等級
- 困難詞彙: 用戶等級 < 詞彙等級
- 慣用語: 獨立分類,不參與等級比較
支援等級:
- A1: 初學者 (約1000詞彙)
- A2: 基礎 (約2000詞彙)
- B1: 中級 (約3000詞彙)
- B2: 中高級 (約4000詞彙)
- C1: 高級 (約8000詞彙)
- C2: 精通 (約15000詞彙)
視覺標記:
- 簡單詞彙: 灰色虛線,「太簡單啦」
- 適中詞彙: 綠色邊框,「重點學習」
- 困難詞彙: 橙色邊框,「有點挑戰」
- 慣用語: 藍色邊框,「慣用語」
- 常用標記: ⭐ 星星 (右上角)
```
### **FR3. 詞卡管理系統**
#### **FR3.1 詞卡 CRUD 操作**
**優先級**: P0 (必須)
**功能描述**:
- 完整的詞卡創建、讀取、更新、刪除功能
- 批量操作和管理工具
- 智能重複檢測
**詳細規格**:
```yaml
創建功能:
- 手動創建 (填寫表單)
- 從 AI 分析結果創建
- 批量導入 (CSV/JSON)
- 快速添加模式
編輯功能:
- 編輯所有欄位
- 富文本編輯器 (例句)
- 圖片上傳 (記憶圖像)
- 音頻錄製 (自定義發音)
刪除功能:
- 單個刪除 (確認對話框)
- 批量刪除 (多選)
- 軟刪除 (回收站30天內可恢復)
組織功能:
- 標籤系統 (預設 + 自定義)
- 收藏功能
- 搜尋篩選 (全文搜尋、標籤、難度、狀態)
- 排序選項 (創建時間、掌握度、複習時間)
```
#### **FR3.2 智能詞卡生成**
**優先級**: P0 (必須)
**功能描述**:
- 從 AI 分析結果一鍵生成詞卡
- 自動填入完整詞卡資訊
- 智能去重和品質檢查
**詳細規格**:
```yaml
生成流程:
1. AI 分析句子
2. 用戶點擊詞彙「保存到詞卡」
3. 自動填入詞卡資訊
4. 用戶確認或編輯
5. 保存到詞卡庫
詞卡內容:
- 基礎資訊: 詞彙、翻譯、定義、詞性
- 語音資訊: IPA 發音、音頻播放
- 學習輔助: 同義詞、例句、例句翻譯
- 個人化: CEFR 等級、難度標記
品質保證:
- 重複檢測: 避免創建重複詞卡
- 資訊完整性: 必填欄位驗證
- 格式標準化: 統一的資料格式
```
### **FR4. 學習系統**
#### **FR4.1 間隔重複算法 (SM-2)**
**優先級**: P0 (必須)
**功能描述**:
- 實施科學的 SM-2 算法
- 智能複習排程
- 個人化學習參數調整
**詳細規格**:
```yaml
算法參數:
- 初始間隔: 1天、6天、依此類推
- 難度係數: 1.3-2.5
- 最小間隔: 1天
- 最大間隔: 365天
評分系統:
- 1分: 完全不記得 (重置進度)
- 2分: 有印象但錯誤 (間隔 × 0.6)
- 3分: 困難但正確 (間隔 × 0.8)
- 4分: 猶豫後正確 (間隔 × 1.0)
- 5分: 輕鬆正確 (間隔 × 1.3)
複習排程:
- 每日複習上限: 可設定 (預設50個)
- 優先級排序: 過期天數、難度係數
- 智能分散: 避免同時大量到期
- 負債管理: 過期詞卡優先處理
```
#### **FR4.2 多模式學習**
**優先級**: P1 (重要)
**功能描述**:
- 多種學習模式適應不同學習偏好
- 互動式學習體驗
- 進度追蹤和反饋
**詳細規格**:
```yaml
翻卡模式:
- 正面: 英文詞彙
- 背面: 定義、例句、發音、圖片
- 操作: 手勢滑動、鍵盤快捷鍵
- 評分: 1-5分即時評分
測驗模式:
- 選擇題: 定義選翻譯 (4選1)
- 填空題: 例句挖空填入
- 聽力測試: 聽音選詞 (未來)
- 口說測試: 念例句 (未來)
沉浸模式:
- 全螢幕學習
- 自動播放 (可調速度)
- 背景音樂 (白噪音)
- 番茄鐘計時 (25分鐘)
```
### **FR5. 數據分析與統計**
#### **FR5.1 學習統計**
**優先級**: P1 (重要)
**功能描述**:
- 全面的學習數據追蹤
- 視覺化進度展示
- 成就系統激勵
**詳細規格**:
```yaml
基礎數據:
- 總學習詞彙數
- 今日學習時間
- 連續學習天數
- 週/月學習統計
- 平均每日學習詞數
進階分析:
- 記憶曲線 (艾賓浩斯)
- 詞彙掌握度分布
- 最難/最易詞彙排行
- 學習效率趨勢
- 最佳學習時段分析
視覺化展示:
- 折線圖: 學習趨勢
- 柱狀圖: 每日學習量
- 熱力圖: 365天學習記錄
- 圓餅圖: 詞彙分類分布
- 雷達圖: 能力維度分析
成就系統:
- 里程碑徽章 (100/500/1000詞)
- 連續學習徽章 (7/30/100天)
- 特殊成就 (完美週/月)
- 等級系統 (經驗值)
```
---
## 🎨 **用戶介面需求**
### **UI1. 視覺設計標準**
#### **UI1.1 詞彙標記設計**
```yaml
視覺層次:
- 簡單詞彙: bg-gray-50, border-dashed, border-gray-300
- 適中詞彙: bg-green-50, border-green-200, text-green-700
- 困難詞彙: bg-orange-50, border-orange-200, text-orange-700
- 慣用語: bg-blue-50, border-blue-200, text-blue-700
常用標記設計:
- 圖示: ⭐ emoji 星星
- 位置: 詞彙框線內右上角,絕對定位
- 大小: 12px (桌面) / 10px (移動設備)
- 顯示條件: 僅當 isCommon === true 時顯示
- 響應式: 在所有詞彙類型中一致顯示
互動效果:
- hover: 陰影提升,輕微上移
- focus: 鍵盤導航支援
- active: 點擊回饋動畫
- 星星: 無互動行為,純視覺標記
```
#### **UI1.2 響應式設計**
```yaml
桌面版 (>1024px):
- 三欄布局 (側邊欄+主內容+右側面板)
- 懸浮操作按鈕
- 鍵盤快捷鍵支援
平板版 (768-1024px):
- 兩欄布局
- 可收縮側邊欄
- 觸控優化
手機版 (<768px):
- 單欄布局
- 底部導航欄
- 手勢操作
- 大按鈕設計
```
---
## 🔧 **技術規格需求**
### **Tech1. 前端技術棧**
```yaml
框架: Next.js 15 (App Router)
語言: TypeScript
樣式: Tailwind CSS
狀態管理: React useState/useEffect
數據獲取: Native fetch
表單: React Hook Form (規劃中)
```
### **Tech2. 後端技術棧**
```yaml
API: .NET 8 Web API
資料庫: SQLite (開發) / PostgreSQL (生產)
認證: JWT Bearer Token
AI: Google Gemini API
快取: Memory Cache + 分散式快取架構
檔案存儲: 本地存儲 (規劃中: 雲端存儲)
```
### **Tech3. 第三方服務**
```yaml
AI 服務: Google Gemini API
語音服務: Azure Speech Services (規劃中)
分析追蹤: 內建日誌系統
錯誤監控: 結構化錯誤處理
CDN: 本地部署 (規劃中: CDN)
```
---
## 🧪 **非功能性需求**
### **NFR1. 性能需求**
#### **NFR1.1 響應時間要求**
```yaml
核心功能:
- 文本輸入響應: < 100ms
- AI 分析處理: < 5秒
- 詞彙標記渲染: < 200ms
- 詞彙詳情彈窗: < 100ms
- 統計卡片更新: < 50ms
已實現性能:
- 快取命中響應: < 0.1ms (57,200倍提升)
- API 端點響應: < 200ms
- 頁面載入時間: < 2秒
系統負載:
- 同時在線用戶: > 100
- 每日分析請求: > 10,000
- 峰值處理能力: > 200 req/min
- 系統可用性: > 99.5%
```
### **NFR2. 安全需求**
```yaml
認證安全:
- JWT Token 管理
- 密碼加密 (bcrypt)
- Session 超時控制
- 多設備管理
數據安全:
- HTTPS 強制加密
- XSS 防護 (已實現)
- 輸入驗證 (已實現)
- SQL Injection 防護
- Rate Limiting (已實現)
隱私保護:
- 用戶數據加密存儲
- 分析記錄本地化
- 數據導出功能
- 帳號刪除功能
```
---
## 🚀 **開發路線圖**
### **Phase 1: MVP 基礎 (已完成) ✅**
**時間**: 第1-2週
- ✅ AI 句子分析核心功能
- ✅ 基礎詞彙標記和分類
- ✅ 語法修正功能
- ✅ 慣用語識別
- ✅ 基礎 UI 和響應式設計
### **Phase 2: 性能優化 (已完成) ✅**
**時間**: 第3週
- ✅ 智能快取系統 (57,200倍性能提升)
- ✅ 架構重構和優化
- ✅ 錯誤處理改善
- ✅ 監控系統建立
### **Phase 3: 系統穩定 (當前階段) 🔄**
**時間**: 第4週
- ✅ 詞卡頁面修復 (CardSets 概念移除)
- 🔄 認證系統完善
- ⏳ 詞卡管理功能完整實現
- ⏳ 學習模式實現
### **Phase 4: 功能擴展 (規劃中) 📅**
**時間**: 第5-6週
- 📅 SM-2 算法完整實施
- 📅 學習統計和可視化
- 📅 語音功能整合
- 📅 測驗模式多樣化
### **Phase 5: 商業化準備 (未來) 🔮**
**時間**: 第7-8週
- 🔮 付費方案設計
- 🔮 用戶反饋系統
- 🔮 管理後台
- 🔮 A/B 測試框架
---
## ✅ **驗收標準**
### **AC1. 功能驗收 (當前狀態)**
#### **AI 分析功能** ✅
- [x] 文本輸入和字符限制正常運作
- [x] AI 分析在5秒內完成並返回結果
- [x] 語法修正準確檢測並提供合理建議
- [x] 詞彙 CEFR 分級準確率達到90%以上
- [x] 慣用語識別功能正常
- [x] 個人化詞彙標記根據用戶等級正確分類
- [x] 統計卡片數字與實際詞彙標記一致
- [x] 詞彙和慣用語詳情彈窗正常運作
- [x] 常用詞彙正確顯示 ⭐ 星星標記
#### **系統基礎** ✅
- [x] 前後端服務穩定運行
- [x] 快取系統高效運作 (67% 命中率)
- [x] API 端點正常響應
- [x] 錯誤處理和日誌記錄完善
#### **待完成功能** ⏳
- [ ] 用戶認證系統 (JWT 整合)
- [ ] 詞卡 CRUD 完整實現
- [ ] 學習模式和 SM-2 算法
- [ ] 完整的用戶介面和體驗
### **AC2. 技術驗收**
- [x] API 回應格式穩定一致
- [x] 性能指標達到要求基準 (57,200倍提升)
- [x] 架構治理系統建立
- [ ] 安全檢查通過滲透測試
- [ ] 代碼測試覆蓋率 > 80%
---
## 📊 **成功指標 (KPIs)**
### **產品指標**
```yaml
用戶參與度:
- 日活躍用戶數 (DAU): > 100 (MVP 目標)
- 平均每用戶分析次數: > 5次/日
- 功能使用率: > 80%
- 用戶滿意度: > 4.5/5
學習效果:
- 詞彙掌握改善度: > 30%
- 重複使用率: > 60%
- 學習目標完成率: > 85%
```
### **技術指標 (已實現)**
```yaml
性能指標:
- 快取命中率: 67% (目標 80%+)
- API 回應時間: < 0.1ms (快取) / < 5s (AI)
- 頁面載入時間: < 2秒
- 系統可用性: > 99%
品質指標:
- AI 分析準確率: > 90%
- 架構健康度: 78/100
- 零停機部署:
- 錯誤恢復能力:
```
---
## 🔄 **變更管理**
### **需求變更流程**
1. **變更提出**: 產品經理、技術團隊、用戶反饋
2. **影響評估**: 技術可行性、時程影響、資源需求
3. **優先級評定**: 商業價值、緊急程度、實施成本
4. **實施追蹤**: 開發進度、測試驗證、部署監控
### **文檔版本歷史**
- **v1.0**: 初始 AI 分析功能規格 (2025-09-21)
- **v2.0**: 系統功能需求規格 (2025-01-25)
- **v3.0**: 統一產品需求規格書 (2025-09-23)
---
## 📚 **關聯文件**
### **技術文檔**
- [架構治理指南](../ARCHITECTURE_GOVERNANCE.md)
- [架構檢查清單](../ARCHITECTURE_CHECKLIST.md)
- [Services 優化總結](../SERVICES_OPTIMIZATION_SUMMARY.md)
- [技術架構指南](./docs/05_deployment/AI驅動產品後端技術架構指南.md)
### **修復記錄**
- [詞卡頁面問題診斷](../FLASHCARD_PAGE_ISSUE_REPORT.md)
- [詞卡修復總結](../FLASHCARD_FIX_SUMMARY.md)
- [系統優化摘要](../OPTIMIZATION_SUMMARY.md)
---
**文件狀態**: 🟢 當前有效
**下次審查**: 2025-10-23
**維護責任**: DramaLing 產品與技術團隊