dramaling-vocab-learning/docs/02_design/user-flows.md

353 lines
7.5 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 用戶流程文檔
## 1. 核心用戶流程圖
```mermaid
graph TD
Start[用戶訪問網站] --> Check{已登入?}
Check -->|否| Landing[首頁]
Check -->|是| Dashboard[儀表板]
Landing --> SignUp[註冊]
Landing --> Login[登入]
SignUp --> EmailVerify[郵件驗證]
EmailVerify --> Dashboard
Login --> Dashboard
Dashboard --> Generate[AI生成詞卡]
Dashboard --> Learn[開始學習]
Dashboard --> Manage[管理詞卡]
Generate --> Review[預覽生成結果]
Review --> Save[保存到卡組]
Learn --> Mode{選擇模式}
Mode --> Flip[翻卡學習]
Mode --> Quiz[測驗模式]
Manage --> CRUD[增刪改查]
```
## 2. 詳細用戶流程
### 2.1 新用戶註冊流程
#### 流程步驟
1. **進入首頁**
- 看到產品介紹
- 點擊「免費開始」或「註冊」
2. **選擇註冊方式**
- Option A: Email 註冊
- Option B: Google 快速註冊
3. **Email 註冊路徑**
```
輸入資料 → 提交表單 → 發送驗證郵件 → 查收郵件 → 點擊驗證連結 → 完成註冊
```
- 輸入Email、密碼、用戶名
- 即時驗證密碼強度、Email 格式
- 錯誤提示Email 已註冊、密碼不符要求
4. **Google 註冊路徑**
```
點擊 Google 登入 → 授權 → 自動創建帳號 → 進入儀表板
```
5. **註冊成功**
- 自動登入
- 顯示歡迎引導
- 推薦首次操作
#### UI 狀態
- Loading提交中顯示載入動畫
- Error顯示錯誤訊息並保留用戶輸入
- Success跳轉到儀表板
#### 異常處理
- 驗證郵件未收到 → 提供重發按鈕
- 驗證連結過期 → 提示重新發送
- Google 登入失敗 → 回退到手動註冊
### 2.2 AI 詞卡生成流程
#### 流程步驟
1. **進入生成頁面**
- 從儀表板點擊「生成新詞卡」
- 或從頂部導航欄快速入口
2. **選擇生成方式**
```
文字輸入模式 ←→ 主題選擇模式
```
3. **文字輸入模式**
```
貼上文本 → 設定參數 → 點擊生成 → 等待 AI 處理 → 預覽結果
```
- 輸入區:支援拖放文件
- 參數設定:
- 生成數量5-20
- 難度等級(初/中/高)
- 包含例句(開/關)
- 進度顯示:生成中顯示進度條
4. **主題選擇模式**
```
選擇主題 → 選擇子類別 → 設定數量 → 生成
```
- 熱門主題快速選擇
- 自定義主題輸入
5. **預覽與編輯**
```
查看生成結果 → 編輯個別詞卡 → 刪除不需要的 → 確認保存
```
- 卡片視圖預覽
- 即時編輯功能
- 批量操作選項
6. **保存到卡組**
```
選擇現有卡組 OR 創建新卡組 → 添加標籤 → 完成
```
#### 限制與配額
- 免費用戶:每日 50 個詞卡
- 顯示剩餘配額
- 超出限制提示升級
#### 錯誤處理
- AI 服務不可用 → 顯示友善錯誤,提供重試
- 生成失敗 → 保留用戶輸入,允許重新生成
- 網路中斷 → 自動保存草稿
### 2.3 學習流程
#### 流程步驟
1. **選擇學習內容**
```
儀表板 → 選擇卡組 → 選擇學習模式 → 開始學習
```
- 顯示待複習數量
- 推薦學習順序
2. **翻卡學習模式**
```
顯示正面 → 思考 → 翻轉查看答案 → 自評難度 → 下一張
```
- 操作方式:
- 點擊翻轉
- 鍵盤空格鍵
- 手機滑動手勢
- 評分選項:
- 😔 完全不記得 (1分)
- 😕 有印象但錯誤 (2分)
- 😐 困難但正確 (3分)
- 🙂 猶豫後正確 (4分)
- 😄 輕鬆正確 (5分)
3. **測驗模式**
```
顯示題目 → 選擇答案 → 即時反饋 → 查看解釋 → 下一題
```
- 題型:
- 英翻中選擇
- 中翻英選擇
- 聽力選擇
- 拼寫填空
- 即時顯示對錯
- 錯誤時顯示正確答案
4. **學習結束**
```
完成所有詞卡 → 顯示學習報告 → 更新統計 → 返回儀表板
```
- 顯示內容:
- 學習時長
- 正確率
- 掌握程度
- 獲得經驗值
#### 中斷處理
- 學習中退出 → 提示保存進度
- 自動保存學習記錄
- 下次從中斷處繼續
### 2.4 詞卡管理流程
#### 流程步驟
1. **查看詞卡**
```
進入卡組 → 瀏覽詞卡列表 → 查看詳情
```
- 視圖切換:網格/列表
- 排序選項:時間/字母/難度
- 篩選器:標籤/狀態/難度
2. **編輯詞卡**
```
選擇詞卡 → 點擊編輯 → 修改內容 → 保存
```
- 可編輯欄位:
- 單字/片語
- 翻譯
- 例句
- 標籤
- 筆記
3. **批量操作**
```
進入選擇模式 → 勾選多個 → 選擇操作 → 確認執行
```
- 批量移動
- 批量刪除
- 批量添加標籤
- 批量重設進度
4. **搜尋功能**
```
輸入關鍵字 → 即時搜尋 → 顯示結果 → 點擊查看
```
- 搜尋範圍:單字、翻譯、例句
- 高亮顯示匹配內容
### 2.5 個人設定流程
#### 流程步驟
1. **進入設定**
```
點擊頭像 → 選擇設定 → 進入設定頁面
```
2. **個人資料**
```
編輯資料 → 上傳頭像 → 保存更改
```
- 可修改:用戶名、頭像、簡介
- 不可修改Email需驗證
3. **學習設定**
```
調整參數 → 預覽效果 → 確認保存
```
- 每日目標
- 提醒時間
- 學習模式偏好
- 音效設定
4. **帳號安全**
```
修改密碼 → 管理登入裝置 → 下載數據 → 刪除帳號
```
- 修改密碼需驗證舊密碼
- 顯示最近登入記錄
- 數據導出JSON/CSV
## 3. 錯誤狀態處理
### 3.1 網路錯誤
```
檢測到錯誤 → 顯示錯誤提示 → 提供重試按鈕 → 自動重試(3次)
```
- 保留用戶輸入
- 顯示離線提示
- 恢復後自動同步
### 3.2 權限錯誤
```
未登入訪問受限頁面 → 重定向到登入 → 登入後返回原頁面
```
- 保存目標 URL
- 登入後自動跳轉
### 3.3 資料錯誤
```
載入失敗 → 顯示錯誤頁面 → 提供操作選項
```
- 友善的錯誤訊息
- 返回上一頁選項
- 聯繫支援連結
## 4. 行動裝置適配
### 4.1 觸控優化
- 按鈕最小 44x44px
- 滑動手勢支援
- 長按顯示選單
- 下拉刷新
### 4.2 螢幕適配
- 豎屏為主設計
- 橫屏特殊處理
- 安全區域適配
- 鍵盤彈出處理
### 4.3 性能優化
- 圖片延遲載入
- 虛擬滾動
- 離線快取
- 減少動畫
## 5. 無障礙設計
### 5.1 鍵盤導航
```
Tab 順序 → 焦點提示 → Enter 確認 → Esc 取消
```
- 所有功能可鍵盤操作
- 清晰的焦點指示
- 跳過導航連結
### 5.2 螢幕閱讀器
- 語義化 HTML
- ARIA 標籤
- 圖片替代文字
- 表單標籤關聯
### 5.3 視覺輔助
- 高對比模式
- 字體大小調整
- 顏色不作為唯一標識
- 動畫可關閉
## 6. 性能考量
### 6.1 載入優化
- 骨架屏顯示
- 漸進式載入
- 關鍵路徑優先
- 預載入下一頁
### 6.2 交互響應
- 樂觀更新
- 即時反饋
- 防抖處理
- 載入狀態提示
### 6.3 資料快取
- 本地存儲常用資料
- 智能預載入
- 背景同步
- 離線可用
## 7. 安全考量
### 7.1 輸入驗證
- 前端即時驗證
- 後端二次驗證
- XSS 防護
- SQL 注入防護
### 7.2 敏感操作
- 二次確認
- 密碼驗證
- 操作日誌
- 異常檢測
### 7.3 資料保護
- HTTPS 傳輸
- 敏感資料加密
- Token 定期更新
- 安全標頭設置