13 KiB
13 KiB
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 生成規格
-
原始例句輸入
- 輸入方式
- 手動輸入
- 輸入資料
- 可接受多句子
- 字數限制規則:限定300字以內
- 輸入方式
-
例句分析
- 用戶輸入句子後,AI進行以下分析
- 例句語法校正
- 例句中文翻譯
- 例句單字分析
- 例句慣用語分析
- 點擊查詢體驗
- 句子顯示為可點擊的單字
- 點擊對象
- 若為高價值標記,則即時顯示意思(無延遲,讀取預分析資料),不扣除使用次數
- 若非高價值標記,則拿當前點擊單字及當前句子,給AI分析並生成內容詳情,扣除使用次數一次
- 片語/俚語特殊高亮顯示
- 智能提醒:當單字屬於片語/俚語時,優先顯示片語意思並提醒
- 若出現多筆片語/俚語需標記時,請使用不同顏色區分
- 成本優化策略
- 核心原則:一句一次 API 調用,多次查詢零成本
- 相同句子分析結果快取(24小時)
- 常用單字基礎資訊本地快取
- 預估 API 成本降低 80-95%
- 收費策略(phase 2):
- 免費用戶:5次/3小時
- 付費用戶:無限制
- 用戶輸入句子後,AI進行以下分析
-
生成內容詳情
-
原始例句
- 整體意思:不論原始例句是多句、一句、片段,就是將原始例句整體意思描述出來
- 修正語法錯誤:若原始例句有語法錯誤,則進行修正,並說明修正原因,且後續學習內容皆以正確的版本進行
-
單字/片語
- 原形展示
- 詞性標註(noun/verb/adjective/adverb/pronoun/preposition/conjunction/interjection)
- 英文定義 (程度應維持在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 配額用盡時使用離線字典