dramaling-app/projects/vocabulary-learning-web-dev...

392 lines
13 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.

# 詞彙學習功能開發計劃 (Web版)
## 📊 專案概要
**專案名稱**: 詞彙學習功能 (Web版)
**規劃日期**: 2025-09-10
**規格來源**: 基於`docs/02_design/function-specs/web/vocabulary-learning-web.md`
**視覺設計源**: 基於`docs/02_design/html-prototypes/pages/vocabulary.html`
**技術架構源**: 基於`docs/04_technical/03_frontend/vue-frontend-architecture.md`
**開發標準源**: 基於`docs/04_technical/03_frontend/vue-development-standards.md`
**預估時程**: 6-8週
**預計團隊**: 3-4人 (前端2人、後端1-2人)
**狀態**: 📋 規劃中
## 🎯 功能範圍分析
### 核心功能模組 (依據function-specs)
1. **詞彙介紹系統** - Page_Vocab_Introduction_W
- 多列布局:左側詞彙資訊,右側相關詞彙和例句
- 詞典整合:滑鼠懸停即時顯示釋義,右鍵查詢外部詞典
- 筆記功能內建筆記編輯器支援Markdown格式
- 書籤管理:瀏覽器書籤整合
2. **練習系統** - 選擇題、圖片匹配、句子重組
- Page_Vocab_Choice_Practice_W - 詞彙選擇練習頁面
- Page_Vocab_Fluency_Matching_W - 圖片匹配練習頁面
- Page_Vocab_Fluency_Reorganize_W - 句子重組練習頁面
3. **複習系統** - 間隔複習演算法
- Page_Vocab_Review_Main_W - 詞彙複習主頁面
4. **分析儀表板** - Web專用數據視覺化
- Page_Vocab_Analytics_Dashboard_W - 詞彙學習分析儀表板
5. **快捷鍵系統** - 全鍵盤操作支援 (依據function-specs Web版特色)
### Web端特色功能 (依據function-specs)
- 多標籤學習支援
- 筆記編輯器 (Markdown)
- 瀏覽器書籤整合
- 高級數據分析和匯出
- PWA支援
## 🏗️ 技術架構設計
### 前端技術棧 (依據vue-frontend-architecture.md)
```yaml
核心框架: Vue 3.4+ / TypeScript 5.x / Composition API
狀態管理: Pinia 2.1+
路由管理: Vue Router 4.3+
UI框架: Quasar Framework 2.16+ (依據架構推薦)
建構工具: Vite 5.x
測試框架: Vitest 1.6.x + Vue Test Utils 2.4.x
PWA支援: @vitejs/plugin-pwa 0.20.x
代碼檢查: ESLint 9.x + Prettier 3.x
```
### 視覺設計規範 (依據vocabulary.html原型)
```yaml
布局系統:
- 280px固定側邊欄 (與dashboard保持一致)
- 主內容區: flex: 1, margin-left: 280px
- 響應式卡片布局: border-radius: var(--radius-xl)
色彩系統:
- 主色調: var(--primary-teal) #00e5cc
- 背景: var(--bg-card), var(--bg-secondary)
- 文字: var(--text-primary), var(--text-secondary)
- 邊框: var(--divider)
組件規格:
- 詞彙卡片: .vocabulary-card, max-width: 600px, text-align: center
- 詞彙文字: font-size: var(--text-5xl), font-weight: 700
- 音標: font-size: var(--text-xl), color: var(--text-secondary)
- 控制按鈕: .control-btn, border-radius: var(--radius-lg)
```
### 資料模型設計 (依據function-specs)
```yaml
詞彙模型 (VocabularyWord):
- id: 唯一識別碼
- text: 詞彙文字 (1-50字)
- phonetic: 音標 (IPA音標格式)
- definition_chinese: 中文定義 (10-100字)
- definition_english?: 英文定義 (10-200字, 可選)
- part_of_speech: 詞性標記 (n./v./adj.等)
- examples: 例句陣列 (10-100字 × 1-5個)
- usage_context: 使用情境說明 (20-200字)
- related_words?: 相關詞彙推薦
- frequency_rating: 詞頻統計 (1-5星評級)
- audio_url: 音頻檔案路徑
- difficulty_level: 難度等級
- user_notes?: 用戶筆記
學習進度 (Progress):
- user_id: 使用者ID
- vocabulary_id: 詞彙ID
- mastery_level: 掌握程度 (0-100)
- last_studied: 最後學習時間
- review_count: 複習次數
- error_patterns: 錯誤模式
練習記錄 (Exercise):
- session_id: 學習會話ID
- exercise_type: 練習類型
- response_time: 反應時間
- accuracy: 正確率
- timestamp: 時間戳記
```
## 📅 開發階段規劃
### 第一階段 (Week 1-2): 基礎架構
#### Week 1: 專案設置 (依據vue-development-standards.md)
- [ ] Vue 3 + Quasar專案初始化和技術棧配置
- 設置Vite 5.x建構環境
- 配置TypeScript 5.x強型別支援
- 整合ESLint 9.x + Prettier 3.x代碼檢查
- [ ] Quasar UI組件庫和設計系統建立
- 實現vocabulary.html原型的色彩變數系統
- 建立280px側邊欄佈局結構
- 設置響應式卡片布局組件
- [ ] Vue Router路由結構和頁面骨架
- 設置所有Page_Vocab_*_W路由
- 實現基礎頁面組件結構
- [ ] Pinia狀態管理和API客戶端設置
- 建立vocabulary store (依據development-standards)
- 設置API服務層架構
- [ ] Vite開發環境和構建流程配置
- PWA plugin配置
- 自動導入組件設置
**交付物**: 可運行的專案骨架符合HTML原型視覺設計
#### Week 2: 詞彙介紹頁面 (Page_Vocab_Introduction_W)
- [ ] 實現HTML原型的完整視覺布局
- 280px固定側邊欄
- vocabulary-card組件 (max-width: 600px, 居中)
- vocabulary-word樣式 (text-5xl, font-weight: 700)
- [ ] Web Audio API音頻播放系統整合
- 發音播放按鈕 (快捷鍵: Space)
- 慢速發音按鈕 (快捷鍵: Shift+Space)
- 例句發音按鈕 (快捷鍵: 1-5)
- [ ] Vue 3快捷鍵系統框架實現 (依據function-specs)
- 收藏功能 (Ctrl+D) - 瀏覽器書籤整合
- 筆記編輯器 (Ctrl+N) - 支援Markdown
- 詞典查詢 (F1) - 外部詞典整合
- [ ] 多列布局實現 (依據function-specs)
- 左側詞彙資訊區域
- 右側相關詞彙和例句面板
- [ ] Quasar響應式設計實現
**交付物**: 完整的詞彙介紹頁面嚴格遵循HTML原型設計和function-specs
### 第二階段 (Week 3-4): 練習系統
#### Week 3: 基礎練習功能
- [ ] 選擇題練習頁面 (Page_Vocab_Choice_Practice_W)
- 實現HTML原型的mode-card布局設計
- 練習邏輯和狀態管理 (依據Pinia規範)
- 反應時間測量系統
- [ ] 結果分析頁面 (Page_Vocab_Choice_Results_W)
- 統計卡片視覺呈現
- 錯誤模式分析
- [ ] 本地存儲和離線支援 (PWA功能)
**交付物**: 可用的選擇題練習系統
#### Week 4: 進階練習功能
- [ ] 圖片匹配練習 (Page_Vocab_Fluency_Matching_W)
- [ ] 句子重組練習 (Page_Vocab_Fluency_Reorganize_W)
- [ ] 流暢度評估演算法
- [ ] 綜合結果頁面 (Page_Vocab_Fluency_Results_W)
- [ ] 多練習模式整合
**交付物**: 完整的練習系統
### 第三階段 (Week 5-6): 複習系統和分析
#### Week 5: 複習系統
- [ ] 間隔複習演算法實現
- [ ] 複習主頁面 (Page_Vocab_Review_Main_W)
- [ ] 學習計劃生成
- [ ] 薄弱點識別系統
- [ ] 複習提醒和通知
**交付物**: 智能複習系統
#### Week 6: 分析儀表板 (Web專用功能)
- [ ] 分析儀表板頁面 (Page_Vocab_Analytics_Dashboard_W)
- 實現HTML原型的統計卡片布局
- header-stats區域視覺實現
- [ ] 數據視覺化圖表 (依據架構推薦的圖表庫)
- [ ] 報告生成和匯出功能
- [ ] 學習建議系統
- [ ] 列印友善格式
**交付物**: 完整的數據分析系統
### 第四階段 (Week 7-8): 整合和優化
#### Week 7: Web端特色功能整合
- [ ] Vue多標籤學習支援實現 (依據function-specs)
- [ ] 瀏覽器書籤整合功能
- [ ] Quasar PWA功能實現
- [ ] 離線模式和Service Worker優化
- [ ] Pinia數據同步機制
**交付物**: 完整的Web應用
#### Week 8: 測試和部署
- [ ] Vitest + Vue Test Utils單元測試和集成測試 (依據standards)
- [ ] 跨瀏覽器相容性測試
- [ ] Vite打包優化和效能測試
- [ ] 無障礙性測試
- [ ] 生產環境部署和Quasar PWA發布
**交付物**: 可部署的生產版本
## 👥 團隊分工建議
### 前端開發 (2人)
**前端Lead (Senior)**:
- Vue 3 + Composition API架構設計 (依據development-standards)
- 複雜頁面開發 (詞彙介紹、分析儀表板)
- Pinia狀態管理和API整合
- Vite效能優化和Quasar PWA功能
**前端開發者 (Mid-level)**:
- Vue練習頁面開發 (依據HTML原型)
- Quasar UI元件開發
- Vue快捷鍵系統實現
- Vitest測試撰寫
### 後端開發 (1-2人)
**後端開發者**:
- API端點開發 (依據data models)
- 資料庫設計和優化
- 音頻服務整合
- 學習演算法實現
## 📋 關鍵里程碑
| 里程碑 | 完成日期 | 交付內容 | 驗收標準 |
|--------|----------|----------|----------|
| M1: 基礎架構 | Week 2 | 符合HTML原型的專案骨架和詞彙介紹頁 | 視覺100%符合vocabulary.html原型可瀏覽詞彙播放音頻 |
| M2: 練習系統 | Week 4 | 完整練習功能 | 3種練習模式正常運行視覺符合原型 |
| M3: 複習分析 | Week 6 | 複習和分析功能 | 智能複習安排和數據圖表符合function-specs |
| M4: 整合上線 | Week 8 | 完整Web應用 | 通過所有測試PWA功能正常可生產部署 |
## ⚠️ 風險識別和緩解
### 技術風險
| 風險 | 可能性 | 影響 | 緩解策略 |
|------|--------|------|----------|
| HTML原型vs實際實現差異 | 中 | 高 | 每個milestone嚴格對照HTML原型驗收 |
| Web Audio API 相容性問題 | 中 | 高 | 提前進行瀏覽器測試準備fallback方案 |
| Quasar組件客製化複雜度 | 中 | 中 | 評估原生HTML/CSS實現vs Quasar組件 |
### 規格一致性風險
| 風險 | 可能性 | 影響 | 緩解策略 |
|------|--------|------|----------|
| 偏離function-specs定義 | 高 | 高 | 每週review對照function-specs檢查清單 |
| HTML原型視覺不一致 | 高 | 高 | 像素級對照原型,設置自動化視覺測試 |
| 快捷鍵系統規格遺漏 | 中 | 中 | 完整實現function-specs定義的所有快捷鍵 |
## 📊 品質保證策略
### 規格合規檢查
```yaml
每週檢查清單:
視覺設計合規:
- 對照vocabulary.html原型像素級檢查
- 色彩系統100%使用原型CSS變數
- 布局結構嚴格遵循原型
功能規格合規:
- 對照vocabulary-learning-web.md功能檢查表
- Web端特色功能完整實現
- 頁面欄位細節100%實現
技術架構合規:
- Vue 3 Composition API使用規範
- Quasar Framework整合規範
- development-standards代碼規範
```
### 測試策略 (依據development-standards)
```yaml
單元測試:
- 覆蓋率目標: 80%
- 關鍵業務邏輯必須覆蓋
- 使用Vitest + Vue Test Utils
集成測試:
- API整合測試
- 用戶流程端到端測試
- 使用Playwright
效能測試:
- 頁面載入時間 < 3秒
- 音頻播放延遲 < 200ms
- 使用Lighthouse和WebPageTest
```
## 🔧 開發工具和環境
### 開發環境 (依據vue-frontend-architecture.md)
```yaml
IDE: VS Code + 推薦擴展包
版本控制: Git + GitHub/GitLab
專案管理: 依據原有系統
溝通工具: 依據團隊慣例
CI/CD:
- 自動化測試和部署
- 代碼品質檢查
- HTML原型視覺回歸測試
```
## 📈 成功指標
### 技術指標
- 頁面載入時間 < 3秒
- 音頻播放成功率 > 98%
- 跨瀏覽器相容性 > 95%
- 代碼測試覆蓋率 > 80%
### 規格合規指標
- HTML原型視覺還原度 = 100%
- function-specs功能實現率 = 100%
- Web端特色功能實現率 = 100%
- 快捷鍵系統完整度 = 100%
## 💰 資源需求評估
### 人力成本
```yaml
前端開發 (2人 × 8週): 16人週
後端開發 (1人 × 6週): 6人週
測試和QA (0.5人 × 4週): 2人週
專案管理 (0.2人 × 8週): 1.6人週
總計: 25.6人週
```
### 技術成本
```yaml
開發工具授權: $500/月
第三方服務: $200/月
雲端服務: $300/月
測試設備: $1000 (一次性)
```
## 🚀 部署策略
### 階段性部署
1. **內部測試** (Week 7): 內部團隊測試
2. **規格驗收** (Week 8): 嚴格對照所有specification文檔驗收
3. **Beta測試** (上線第1週): 小範圍使用者測試
4. **全面上線** (上線第2週): 100%使用者
### 監控和維護
- 實時效能監控
- 錯誤報告和快速修復
- 使用者反饋收集
- 定期效能優化
## 📋 下一步行動
### 立即行動 (本週)
1. [ ] 確認技術棧和架構決策
2. [ ] 設置開發環境和工具
3. [ ] 建立專案repository和CI/CD
4. [ ] 開始UI設計系統開發 (嚴格對照vocabulary.html)
### 短期目標 (2週內)
1. [ ] 完成專案初始化
2. [ ] API設計和Mock數據準備
3. [ ] 第一個頁面原型完成 (像素級對照HTML原型)
4. [ ] 團隊開發流程建立
---
**📊 規劃完成**: 2025-09-10
**🔄 狀態**: ✅ 已完成規劃嚴格基於specification文檔待開始執行
**📋 下一步**: 確認團隊資源並開始第一階段開發
**📖 合規基礎**:
- 視覺設計: `/docs/02_design/html-prototypes/pages/vocabulary.html`
- 功能規格: `/docs/02_design/function-specs/web/vocabulary-learning-web.md`
- 技術架構: `/docs/04_technical/03_frontend/vue-frontend-architecture.md`
- 開發標準: `/docs/04_technical/03_frontend/vue-development-standards.md`