515 lines
13 KiB
Markdown
515 lines
13 KiB
Markdown
# DramaLing 功能需求規格書
|
||
|
||
## 1. 核心功能需求
|
||
|
||
### 1.1 用戶認證系統
|
||
|
||
#### 1.1.1 註冊功能
|
||
- **Email 註冊**
|
||
- 輸入:Email、密碼、用戶名
|
||
- 密碼要求:最少8位,需包含大小寫字母、數字、特殊符號
|
||
- Email 格式驗證
|
||
- 用戶名唯一性檢查(3-20字符)
|
||
- 發送驗證郵件(24小時有效期)
|
||
- 驗證後自動登入
|
||
|
||
- **Google OAuth 登入**
|
||
- 一鍵 Google 登入
|
||
- 自動獲取用戶名稱和頭像
|
||
- 首次登入自動創建帳號
|
||
- 綁定現有帳號功能
|
||
|
||
- **錯誤處理**
|
||
- Email 已註冊提示
|
||
- 密碼強度即時反饋
|
||
- 驗證碼錯誤/過期處理
|
||
|
||
#### 1.1.2 登入/登出
|
||
- **登入功能**
|
||
- Email/密碼登入
|
||
- 記住我功能(7天/30天選項)
|
||
- 登入失敗次數限制(5次後鎖定15分鐘)
|
||
- 顯示上次登入時間和IP
|
||
|
||
- **忘記密碼**
|
||
- 輸入 Email 發送重設連結
|
||
- 重設連結有效期(1小時)
|
||
- 密碼重設成功通知
|
||
- 安全問題驗證(可選)
|
||
|
||
- **Session 管理**
|
||
- JWT Token(Access Token: 15分鐘,Refresh Token: 7天)
|
||
- 自動更新 Token
|
||
- 多裝置登入管理
|
||
- 強制登出所有裝置選項
|
||
|
||
### 1.2 AI 詞卡生成
|
||
|
||
#### 1.2.1 輸入處理
|
||
- **文字輸入**
|
||
- 支援格式:純文字、SRT字幕、劇本格式
|
||
- 字數限制:單次最多5000字
|
||
- 自動語言檢測(英文)
|
||
- 保留上下文理解
|
||
|
||
- **主題模式**
|
||
- 預設主題:
|
||
- 日常對話(Daily Conversation)
|
||
- 商務英語(Business English)
|
||
- 美劇經典(TV Series Classics)
|
||
- 電影台詞(Movie Quotes)
|
||
- 學術英語(Academic English)
|
||
- 自定義主題輸入
|
||
- 難度選擇:A1, A2, B1, B2, C1, C2
|
||
|
||
#### 1.2.2 AI 生成規格
|
||
- **原始例句輸入**
|
||
- 輸入方式
|
||
1. 手動輸入
|
||
- 輸入資料
|
||
- 可接受多句子
|
||
- 字數限制規則:限定300字以內
|
||
|
||
- **例句分析**
|
||
- 用戶輸入句子後,AI進行以下分析
|
||
- 例句語法校正
|
||
- 例句中文翻譯
|
||
- 例句單字分析
|
||
- 例句慣用語分析
|
||
|
||
1. 點擊查詢體驗
|
||
- 句子顯示為可點擊的單字
|
||
- 點擊對象
|
||
- 若為高價值標記,則即時顯示意思(無延遲,讀取預分析資料),不扣除使用次數
|
||
- 若非高價值標記,則拿當前點擊單字及當前句子,給AI分析並生成內容詳情,扣除使用次數一次
|
||
- 片語/俚語特殊高亮顯示
|
||
- 智能提醒:當單字屬於片語/俚語時,優先顯示片語意思並提醒
|
||
- 若出現多筆片語/俚語需標記時,請使用不同顏色區分
|
||
|
||
2. 成本優化策略
|
||
- **核心原則**:一句一次 API 調用,多次查詢零成本
|
||
- 相同句子分析結果快取(24小時)
|
||
- 常用單字基礎資訊本地快取
|
||
- 預估 API 成本降低 80-95%
|
||
|
||
3. 收費策略(phase 2):
|
||
- 免費用戶:5次/3小時
|
||
- 付費用戶:無限制
|
||
|
||
- **生成內容詳情**
|
||
- **原始例句**
|
||
- 整體意思:不論原始例句是多句、一句、片段,就是將原始例句整體意思描述出來
|
||
- 修正語法錯誤:若原始例句有語法錯誤,則進行修正,並說明修正原因,且後續學習內容皆以正確的版本進行
|
||
|
||
- **單字/片語**
|
||
- 原形展示
|
||
- 詞性標註(n./v./adj./adv./idioms)
|
||
- 英文定義 (程度應維持在A1-A2)
|
||
- 同義詞(最多3個且程度應維持在A1-A2)
|
||
|
||
- **翻譯**
|
||
- 繁體中文翻譯
|
||
|
||
- **發音**
|
||
- IPA 國際音標
|
||
- 美式發音
|
||
- 音頻播放(整合 TTS)
|
||
|
||
- **例句**
|
||
- 原始例句(來自輸入文本)
|
||
- 生成例句(1個)
|
||
- 例句中文翻譯
|
||
- 重點標示(highlight目標詞)
|
||
- 例句圖
|
||
- 例句發音
|
||
|
||
- **生成後處理**
|
||
- 預覽所有生成詞卡
|
||
- 單個詞卡編輯/刪除
|
||
- 重新生成選項
|
||
- 批量保存到卡組
|
||
|
||
### 1.3 詞卡管理
|
||
|
||
#### 1.3.1 卡組管理
|
||
- **卡組 CRUD**
|
||
- 創建卡組(名稱、描述、封面圖)
|
||
- 編輯卡組資訊
|
||
- 刪除卡組(需二次確認)
|
||
- 複製卡組
|
||
- 卡組排序(創建時間/名稱/詞卡數量)
|
||
|
||
- **卡組類型**
|
||
- 個人卡組(私有)
|
||
- 共享卡組(公開,未來功能)
|
||
- 系統卡組(官方提供)
|
||
|
||
#### 1.3.2 詞卡操作
|
||
- **新增詞卡**
|
||
- 手動創建(填寫表單)
|
||
- 從 AI 生成添加
|
||
- 批量導入(CSV/JSON)
|
||
- 快速添加模式
|
||
|
||
- **編輯詞卡**
|
||
- 編輯所有欄位
|
||
- 富文本編輯器(例句)
|
||
- 圖片上傳(記憶圖像)
|
||
- 音頻錄製(自定義發音)
|
||
|
||
- **刪除詞卡**
|
||
- 單個刪除(滑動/右鍵)
|
||
- 批量刪除(多選)
|
||
- 軟刪除(回收站,30天內可恢復)
|
||
|
||
- **批量操作**
|
||
- 批量移動到其他卡組
|
||
- 批量添加標籤
|
||
- 批量重設學習進度
|
||
- 批量導出
|
||
|
||
- **智能檢測**
|
||
- 單一詞彙檢測
|
||
- 全面檢查指定詞彙所有內容是否有問題,並修正錯誤內容
|
||
- 點擊指定內容進行檢查,並修正錯誤內容
|
||
- 錯誤清單一鍵檢測
|
||
- 點擊後及針對當前錯誤回報系統中清單進行檢測,一一修正錯誤內容
|
||
|
||
#### 1.3.3 組織功能
|
||
- **標籤系統**
|
||
- 預設標籤(動詞、名詞、片語、俚語等)
|
||
- 自定義標籤(最多10個/詞卡)
|
||
- 標籤顏色自定義
|
||
- 標籤批量管理
|
||
|
||
- **收藏功能**
|
||
- 一鍵收藏/取消收藏
|
||
- 收藏夾分類
|
||
- 快速訪問收藏詞卡
|
||
|
||
- **搜尋篩選**
|
||
- 全文搜尋(單字、翻譯、例句)
|
||
- 按標籤篩選
|
||
- 按難度篩選
|
||
- 按學習狀態篩選(新詞/學習中/已掌握)
|
||
- 組合篩選條件
|
||
|
||
### 1.4 學習系統
|
||
|
||
#### 1.4.1 間隔重複算法(SM-2)
|
||
- **算法參數**
|
||
- 初始間隔:2^0天、2^1天...依此類推
|
||
- 難度係數:0.8-2.5
|
||
- 最小間隔:1天
|
||
- 最大間隔:365天
|
||
|
||
- **評分及間隔時間**
|
||
- 1分:完全不記得(重置進度)
|
||
- 2分:有印象但錯誤(間隔×0.6)
|
||
- 3分:困難但正確(間隔×0.8)
|
||
- 4分:猶豫後正確(間隔×1.0)
|
||
- 5分:輕鬆正確(間隔×1.3)
|
||
|
||
- **複習排程**
|
||
- 每日複習上限設定(預設50個)
|
||
- 優先級排序(過期天數)
|
||
- 智能分散(避免同時大量到期)
|
||
|
||
#### 1.4.2 學習模式
|
||
- **翻卡模式**
|
||
- 正面:英文詞彙
|
||
- 背面:英文定義、例句、發音、例句圖
|
||
- 手勢操作:左滑(不記得)、右滑(記得)、上滑(收藏)
|
||
- 鍵盤快捷鍵支援
|
||
|
||
- **測驗模式**
|
||
- 選擇題(題目是英文定義,答案中文翻譯4選1)
|
||
- 填空題
|
||
- 題目是顯示例句圖和挖空的例句
|
||
- 點擊提示,會出現詞彙的英文定義
|
||
- 答案就是詞彙,但是不是原型,而是例句挖空的部分
|
||
- 拼寫測試 (phase 2)
|
||
- 聽力測試(聽音選詞)
|
||
- 口說測試 (念例句)
|
||
|
||
- **錯誤回報**
|
||
- 翻卡模式及所有測驗模式,都要設定錯誤回報
|
||
- 點擊錯誤回報後,可以輸入錯誤原因,可以不填寫直接送出
|
||
|
||
- **沉浸模式**
|
||
- 全螢幕學習
|
||
- 自動播放(可調速度)
|
||
- 背景音樂(白噪音)
|
||
- 番茄鐘計時(25分鐘)
|
||
|
||
#### 1.4.3 複習設定
|
||
- **提醒功能**
|
||
- 每日提醒時間設定
|
||
- 推送通知(瀏覽器/Email)
|
||
- 連續學習天數追蹤
|
||
- 複習債務提醒
|
||
|
||
- **個人化設定**
|
||
- 每日目標詞數
|
||
- 學習時段偏好
|
||
- 難度調整(激進/保守)
|
||
- 音效開關
|
||
|
||
### 1.5 數據分析
|
||
|
||
#### 1.5.1 學習統計
|
||
- **基礎數據**
|
||
- 總學習詞彙數
|
||
- 今日學習時間
|
||
- 連續學習天數
|
||
- 本週/本月學習時間
|
||
- 平均每日學習詞數
|
||
|
||
- **進階分析**
|
||
- 記憶曲線(艾賓浩斯)
|
||
- 詞彙掌握度分布
|
||
- 最難/最易詞彙排行
|
||
- 學習效率趨勢
|
||
- 最佳學習時段分析
|
||
|
||
#### 1.5.2 視覺化展示
|
||
- **圖表類型**
|
||
- 折線圖:學習趨勢
|
||
- 柱狀圖:每日學習量
|
||
- 熱力圖:365天學習記錄
|
||
- 圓餅圖:詞彙分類分布
|
||
- 雷達圖:能力維度分析
|
||
|
||
- **成就系統**
|
||
- 里程碑徽章(100/500/1000詞)
|
||
- 連續學習徽章(7/30/100天)
|
||
- 特殊成就(完美週/月)
|
||
- 等級系統(經驗值)
|
||
- 排行榜(未來功能)
|
||
|
||
#### 1.5.3 報告導出
|
||
- **導出格式**
|
||
- PDF 學習報告
|
||
- Excel 數據表
|
||
- 圖表圖片
|
||
|
||
- **報告內容**
|
||
- 學習總結
|
||
- 詞彙清單
|
||
- 進步分析
|
||
- 學習建議
|
||
|
||
## 2. 用戶介面需求
|
||
|
||
### 2.1 頁面結構
|
||
- **首頁(未登入)**
|
||
- 產品介紹
|
||
- 功能展示
|
||
- 價格方案
|
||
- 註冊/登入入口
|
||
|
||
- **Dashboard(已登入)**
|
||
- 今日學習任務卡片
|
||
- 快速操作按鈕(生成詞卡/開始學習)
|
||
- 學習進度概覽
|
||
- 最近學習的詞卡
|
||
|
||
- **詞卡頁面**
|
||
- 卡組列表視圖(網格/列表切換)
|
||
- 詞卡詳情視圖
|
||
- 批量操作工具欄
|
||
- 篩選器側邊欄
|
||
|
||
- **學習頁面**
|
||
- 全螢幕學習界面
|
||
- 進度條顯示
|
||
- 操作按鈕區
|
||
- 設定面板
|
||
|
||
- **個人中心**
|
||
- 個人資料編輯
|
||
- 學習設定
|
||
- 數據統計
|
||
- 帳號安全
|
||
|
||
### 2.2 響應式設計
|
||
- **桌面版(>1024px)**
|
||
- 三欄布局(側邊欄+主內容+右側面板)
|
||
- 懸浮操作按鈕
|
||
- 鍵盤快捷鍵支援
|
||
|
||
- **平板版(768-1024px)**
|
||
- 兩欄布局
|
||
- 可收縮側邊欄
|
||
- 觸控優化
|
||
|
||
- **手機版(<768px)**
|
||
- 單欄布局
|
||
- 底部導航欄
|
||
- 手勢操作
|
||
- 大按鈕設計
|
||
|
||
## 3. 技術規格需求
|
||
|
||
### 3.1 前端技術
|
||
- **框架**:Next.js 14 (App Router)
|
||
- **語言**:TypeScript
|
||
- **樣式**:Tailwind CSS + shadcn/ui
|
||
- **狀態管理**:Zustand
|
||
- **數據獲取**:TanStack Query
|
||
- **表單**:React Hook Form + Zod
|
||
|
||
### 3.2 後端技術
|
||
- **API**:Next.js API Routes
|
||
- **資料庫**:Supabase (PostgreSQL)
|
||
- **認證**:NextAuth.js
|
||
- **AI**:Google Gemini API
|
||
- **文件存儲**:Supabase Storage
|
||
- **快取**:Redis (Upstash)
|
||
|
||
### 3.3 第三方服務
|
||
- **Email**:Resend/SendGrid
|
||
- **分析**:Google Analytics
|
||
- **錯誤追蹤**:Sentry
|
||
- **CDN**:Vercel Edge Network
|
||
|
||
## 4. 非功能性需求
|
||
|
||
### 4.1 效能需求
|
||
- **載入速度**
|
||
- FCP < 1.8秒
|
||
- LCP < 2.5秒
|
||
- TTI < 3.8秒
|
||
- CLS < 0.1
|
||
|
||
- **API 效能**
|
||
- 一般 API < 200ms
|
||
- AI 生成 < 3秒
|
||
- 資料庫查詢 < 100ms
|
||
|
||
- **容量需求**
|
||
- 支援單用戶 10,000+ 詞卡
|
||
- 支援 100+ 卡組
|
||
- 並發用戶 1000+
|
||
|
||
### 4.2 可用性需求
|
||
- **瀏覽器支援**
|
||
- Chrome 90+
|
||
- Safari 14+
|
||
- Firefox 88+
|
||
- Edge 90+
|
||
|
||
- **無障礙性**
|
||
- WCAG 2.1 AA 標準
|
||
- 鍵盤導航
|
||
- 螢幕閱讀器支援
|
||
- 高對比模式
|
||
|
||
- **國際化**
|
||
- 繁體中文(預設)
|
||
- 英文介面
|
||
- 日期/時間本地化
|
||
|
||
### 4.3 安全需求
|
||
- **認證安全**
|
||
- 密碼加密(bcrypt)
|
||
- JWT Token 管理
|
||
- Session 超時控制
|
||
- 2FA(未來功能)
|
||
|
||
- **數據安全**
|
||
- HTTPS only
|
||
- XSS 防護
|
||
- CSRF Token
|
||
- SQL Injection 防護
|
||
- Rate Limiting
|
||
|
||
- **隱私保護**
|
||
- GDPR 合規
|
||
- 數據加密存儲
|
||
- 用戶數據導出
|
||
- 帳號刪除功能
|
||
|
||
### 4.4 可靠性需求
|
||
- **可用性**:99.9% uptime
|
||
- **備份**:每日自動備份
|
||
- **災難恢復**:RTO < 4小時,RPO < 1小時
|
||
- **錯誤處理**:優雅降級,友善錯誤提示
|
||
|
||
## 5. 開發階段劃分
|
||
|
||
### Phase 1 - MVP(第1-2週)
|
||
**目標**:基礎功能可用
|
||
- ✅ 用戶註冊/登入(Email only)
|
||
- ✅ AI 詞卡生成(基礎版)
|
||
- ✅ 詞卡 CRUD
|
||
- ✅ 簡單翻卡學習
|
||
- ✅ 基礎 UI
|
||
|
||
### Phase 2 - 核心功能(第3-4週)
|
||
**目標**:完整學習流程
|
||
- ✅ Google OAuth
|
||
- ✅ 卡組管理
|
||
- ✅ SM-2 算法實現
|
||
- ✅ 學習模式(翻卡+測驗)
|
||
- ✅ 基礎統計
|
||
- ✅ 響應式設計
|
||
|
||
### Phase 3 - 增強功能(第5-6週)
|
||
**目標**:提升用戶體驗
|
||
- ✅ 標籤系統
|
||
- ✅ 搜尋篩選
|
||
- ⬜ **互動式單字查詢系統**
|
||
- 句子預分析 API 端點
|
||
- 可點擊文字組件
|
||
- 片語/俚語智能提醒
|
||
- 快取機制實現
|
||
- ✅ 進階統計圖表
|
||
- ✅ 成就系統
|
||
- ✅ 學習提醒
|
||
- ✅ 性能優化
|
||
|
||
### Phase 4 - 商業化準備(第7-8週)
|
||
**目標**:準備上線
|
||
- ⬜ 付費方案
|
||
- ⬜ 用戶反饋系統
|
||
- ⬜ 管理後台
|
||
- ⬜ 數據分析
|
||
- ⬜ A/B 測試
|
||
|
||
## 6. 驗收標準
|
||
|
||
### 6.1 功能驗收
|
||
- 所有 P0 功能完整實現
|
||
- 通過所有功能測試用例
|
||
- 無阻塞性 Bug
|
||
|
||
### 6.2 性能驗收
|
||
- Lighthouse 分數 > 90
|
||
- 所有頁面載入 < 3秒
|
||
- API 響應時間符合規格
|
||
|
||
### 6.3 品質驗收
|
||
- 代碼覆蓋率 > 80%
|
||
- 無安全漏洞(通過安全掃描)
|
||
- UI/UX 審查通過
|
||
|
||
## 7. 風險與限制
|
||
|
||
### 7.1 技術風險
|
||
- Gemini API 配額限制
|
||
- Supabase 免費層限制
|
||
- 第三方服務依賴
|
||
|
||
### 7.2 業務風險
|
||
- 競品競爭
|
||
- 用戶獲取成本
|
||
- 內容版權問題
|
||
|
||
### 7.3 緩解措施
|
||
- 實施 API 快取機制(重點:單字查詢預分析快取)
|
||
- 準備備用 AI 服務
|
||
- 建立用戶反饋循環
|
||
- 確保內容合規性
|
||
- 監控 AI API 使用量並設定預算警告
|
||
- 實現降級機制:API 配額用盡時使用離線字典 |