鄭沛軒
|
0292c1bbfe
|
refactor: 重新命名review-tests為review-design
- 資料夾從review-tests重命名為review-design
- 導航標籤改為🎨設計,更明確UI設計用途
- 頁面標題更新為"Review 組件設計"
- 統一外層排版與review頁面一致
- 移除測驗組件外層卡片包裝,直接展示在背景上
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-27 21:00:14 +08:00 |
鄭沛軒
|
f494331bdb
|
feat: 建立Review Tests組件展示頁面
- 新增/review-tests測試頁面專門展示review-tests組件
- 導航欄添加🧪測試項目方便快速進入
- 實現Tab切換界面,每個測驗組件獨立展示
- 包含操作日誌系統追蹤組件互動行為
- 修正SentenceSpeakingTest組件props類型錯誤
- 提供完整模擬資料用於組件測試
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-27 19:18:43 +08:00 |
鄭沛軒
|
74932e58ff
|
fix: 修復Flashcards頁面TypeScript類型錯誤
- 添加imageGenerationService導入修復未定義錯誤
- 修正getExampleImage和hasExampleImage函數類型簽名
- 添加缺失的generatingCards和generationProgress屬性
- 移除未使用的hasExampleImage函數
- 為status參數添加類型註解
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-27 18:50:41 +08:00 |
鄭沛軒
|
3fdd8bd6c3
|
feat: 完成完整的Learn→Review路由統一化
## 路由統一化
- 移除重複的 /app/learn/ 目錄
- 統一使用 /review 路由作為用戶訪問入口
- 更新 Navigation.tsx 路由:/learn → /review
## 用戶界面更新
- Dashboard按鈕:「開始今日學習」→「開始今日複習」
- Navigation標籤:「學習」→「複習」
- 路由跳轉全部指向 /review
## 統一化成果
- 用戶訪問:http://localhost:3000/review
- 語義一致:從路由到組件都使用review概念
- 架構清晰:不再有learn/review混淆
- 專業性提升:使用正確的教育學術術語
## 功能驗證
- /review 路由正常運作 (HTTP 200)
- /dashboard 和 /flashcards 功能完整
- Navigation導航正確跳轉
- 用戶體驗無縫切換
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-27 18:42:12 +08:00 |
鄭沛軒
|
afd0e660ef
|
refactor: 完成Learn→Review重命名和Navigation死代碼清理
## Learn → Review 語義重命名
- 目錄結構: learn/ → review/ (內部架構)
- 測驗組件目錄: tests/ → review-tests/
- 狀態管理: useLearnStore → useReviewStore
- 服務層: LearnService → ReviewService
- 核心組件: TestRunner → ReviewRunner
## Navigation.tsx 死代碼清理
- 移除從未使用的 showExitLearning 和 onExitLearning props
- 刪除永不顯示的「結束複習」按鈕邏輯
- 簡化函數簽名,提升代碼可讀性
- 更新導航文字:「學習」→「複習」
## 架構優化成果
- 語義更精確:review(複習) 比 learn(學習) 更準確描述功能
- 代碼更清潔:移除16行左右的死代碼
- 用戶體驗保持:/learn 路由依然正常運作
- 維護性提升:組件職責更明確,擴展更容易
## 技術改進
- 保持完整的企業級4層架構
- 7種測驗組件完整重命名
- Zustand狀態管理語義優化
- 路由兼容性確保用戶無感知
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-27 18:18:43 +08:00 |
鄭沛軒
|
9f47be50d7
|
feat: 建立企業級Learn功能前端架構
## 架構重新設計
- 實現4層分離架構:UI層、組件層、狀態層、服務層
- 建立Zustand狀態管理中心,替代複雜的useState邏輯
- 建立完整的7種測驗類型組件庫,獨立且可復用
## 核心組件完成
- TestRunner.tsx: 測驗執行統一管理器
- 7種測驗組件: FlipMemory、VocabChoice、SentenceFill、SentenceReorder、聽力、口說
- 完整錯誤處理體系: 分類處理、自動重試、降級備份
## 狀態管理架構
- useLearnStore: 核心學習狀態和業務邏輯
- useUIStore: UI控制狀態管理
- 智能狀態恢復機制完整實現
## 技術改進
- 頁面代碼從2428行減少到215行 (91.1%減少)
- 模組化設計:1個巨型檔案 → 15個專門模組
- 企業級錯誤處理和容災機制
- 充分利用現有組件庫,避免重複開發
## 文檔完善
- 建立完整前端架構說明文檔
- 文檔重組和交叉引用系統
- 統一文檔導航入口
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-27 17:37:45 +08:00 |
鄭沛軒
|
0b7f709dba
|
docs: 建立詞彙學習測驗UI設計規格文件
## 文件內容
- 從原始備份檔案提取完整的測驗UI設計規格
- 涵蓋6種測驗類型的詳細HTML結構和CSS樣式
- 包含互動邏輯、動畫效果和無障礙設計規範
## 設計規格涵蓋
- 翻卡記憶:3D動畫效果和信心等級評估
- 詞彙選擇:四選一選擇題和即時反饋
- 例句填空:內嵌式輸入框和動態寬度調整
- 例句重組:拖拽式重組和雙區域設計
- 聽力測驗:音頻播放和網格選項布局
- 口說測驗:語音錄製和評估系統
## 技術特色
- 響應式設計和一致性配色方案
- 完整的狀態管理和錯誤處理
- 進度追蹤系統和Modal設計規範
- 保留原始用戶體驗的所有設計細節
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-27 15:32:41 +08:00 |
鄭沛軒
|
599af6a6b0
|
refactor: 重構學習頁面為標準模組化架構
## 重構成果
- 將 page.tsx 從 2428 行重構為 229 行 (90.6% 代碼減少)
- 建立標準 Next.js 架構:hooks 和 components 全域化
- 創建完整備份系統,保留原始實作以供參考
## 新的模組化架構
- `/hooks/learn/` - 4個專用狀態管理 hooks
- `/components/learn/` - 4個可復用 UI 組件
- `/lib/utils/` - CEFR 工具函數
- `/app/learn/page.tsx` - 純路由邏輯
## 技術改進
- 消除代碼重複和複雜狀態管理
- 實現關注點分離和單一職責原則
- 提升開發體驗和可維護性
- 支持未來功能擴展和團隊協作
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-27 15:06:54 +08:00 |
鄭沛軒
|
807eb9114d
|
feat: 實現測驗狀態持久化和智能導航系統設計
## 核心功能實現
- 實現測驗狀態持久化機制,解決刷新重置問題
- 新增 GET /api/study/completed-tests 和 POST /api/study/record-test API
- 添加 StudyRecord 表唯一索引防止重複記錄測驗
- 實現前端載入時查詢已完成測驗並跳過的邏輯
## 智能導航系統設計
- 重新設計導航邏輯:答題前顯示「跳過」,答題後顯示「繼續」
- 設計跳過隊列管理:答錯和跳過題目移到隊列最後
- 完善產品需求規格書,添加 US-008 和 US-009 用戶故事
## 技術架構改進
- 修復 API 認證問題,統一使用 auth_token
- 改善後端錯誤診斷,添加詳細日誌記錄
- 創建完整的 5 階段開發計劃文檔
- 更新前後端功能規格書,整合新功能需求
## 文檔更新
- 更新產品需求規格書 User Flow 和功能需求
- 更新前端功能規格書測驗狀態管理章節
- 更新後端功能規格書新增 API 端點
- 創建智能複習系統開發計劃文檔
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-26 17:57:31 +08:00 |
鄭沛軒
|
6c8c656dc3
|
feat: 添加重構計劃文檔和前端會話狀態優化
- 新增複習系統重構計劃文檔,詳細規劃後端驅動架構
- 優化前端學習頁面,添加詞卡複習會話狀態管理
- 實現測驗項目進度追蹤和任務清單彈出功能
- 清理過期文檔檔案
- 為後續重構奠定基礎
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-26 13:37:34 +08:00 |
鄭沛軒
|
c21e9de8e5
|
feat: 改進進度條為測驗數量追蹤,更準確反映學習進度
- 新增測驗進度狀態管理 (totalTests, completedTests)
- 實現智能測驗數量計算,基於CEFR情境判斷每詞卡測驗數
- 進度條改為基於測驗完成度而非詞卡完成度
- 新增詳細調試日誌,顯示測驗總數計算和分布
- 進度顯示格式:X/Y 測驗 + 詞卡位置 + 答題分數
- 更準確反映不同難度詞彙的實際學習工作量
範例:A1學習者3測驗 + 困難詞彙2測驗 + 適中詞彙3測驗 = 8測驗總數
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-26 11:00:45 +08:00 |
鄭沛軒
|
db16e58fb6
|
refactor: 移除冗餘UserLevel/WordLevel欄位,實現純CEFR標準架構
- 執行資料庫遷移移除flashcards表的UserLevel和WordLevel冗餘欄位
- 更新Flashcard模型移除數值屬性定義
- 清理FlashcardsController和SpacedRepetitionService中的數值欄位邏輯
- 更新前端接口移除數值欄位映射,改用純CEFR字符串
- 消除資料重複問題:users.english_level不再與UserLevel重複
- 消除資料重複問題:flashcards.difficulty_level不再與WordLevel重複
- 系統現使用即時CEFR轉換,性能優異且符合國際標準
- 徹底解決技術債務,實現純淨的CEFR標準化架構
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-26 08:43:29 +08:00 |
鄭沛軒
|
d19fa34556
|
fix: 修復學習頁面到期詞卡載入問題
- 移除API調用中的date參數,使用後端預設邏輯
- 修復日期篩選過於嚴格導致可學習詞卡被過濾問題
- 添加詳細調試日誌,便於追蹤API調用和數據轉換
- 後端現在返回所有需要復習的詞卡(到期、逾期、新詞卡)
- 學習頁面現在能正確載入5張可復習詞卡
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-26 08:03:01 +08:00 |
鄭沛軒
|
6c83316467
|
feat: 統一全前端播放按鈕為精美圓形TTS設計
- 完全重構AudioPlayer組件,移除後端依賴,改用純TTS
- 統一播放按鈕設計:圓形漸變、播放中波紋動畫、懸停特效
- 實現獨立播放狀態:詞彙和例句播放按鈕各自管理狀態
- 添加完整無障礙支援:aria-label、title提示、鍵盤支援
- 優化播放控制:點擊播放/暫停、互斥播放、錯誤處理
- 現在所有頁面的播放按鈕都使用統一的精美圓形設計
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-25 23:51:41 +08:00 |
鄭沛軒
|
0f0f1de913
|
fix: 修復詞卡頁面新增詞卡功能模態框顯示問題
- 修復setShowForm未定義錯誤,添加缺失的狀態管理
- 解決模態框z-index被遮擋問題,將模態框移至最外層
- 使用內聯樣式替代CSS類名,避免樣式衝突
- 優化模態框架構:狀態提升到父組件,確保正確顯示
- 新增詞卡功能現已完全正常運作
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-25 23:23:41 +08:00 |
鄭沛軒
|
d0b8269f60
|
feat: 完成學習頁面Mock數據清理,升級為生產級系統
- 移除所有硬編碼選項數據,改用動態生成邏輯
- 更新"智能適配演示"為"CEFR智能複習系統"
- 優化選項生成:優先使用其他詞卡,必要時使用相關詞彙補充
- 清理所有Mock相關註釋,完善接口文檔
- 系統現已完全脫離Demo狀態,成為正式的智能複習平台
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-25 22:42:25 +08:00 |
鄭沛軒
|
10778ac738
|
fix: 統一學習頁面導航欄設計,移除結束學習按鈕
- 移除Navigation組件的showExitLearning和onExitLearning props
- 學習頁面右上角菜單現在與其他頁面保持一致
- 用戶可以通過標準導航菜單正常切換頁面
- 提升界面一致性和用戶體驗
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-25 22:34:48 +08:00 |
鄭沛軒
|
639f620948
|
fix: 修復卡片右上角CEFR顯示空白問題
- 移除ExtendedFlashcard接口中冗余的difficulty屬性
- 所有CEFR顯示統一使用difficultyLevel屬性
- 確保卡片右上角正確顯示CEFR等級 (A1, A2, B1, etc.)
- 完善接口註釋,避免屬性混淆
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-25 22:30:37 +08:00 |
鄭沛軒
|
bc4b14a629
|
fix: 修復CEFR顯示錯誤,使用正確的difficultyLevel屬性
- 修復測驗卡片右上角CEFR等級顯示問題
- 將所有currentCard.difficulty改為currentCard.difficultyLevel
- 修復AudioPlayer在p標籤內導致的HTML結構錯誤
- 確保CEFR字符串架構完全正確運作
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-25 21:07:27 +08:00 |
鄭沛軒
|
52ae910276
|
feat: 實現純CEFR字符串智能複習系統和完整四情境對照表
- 將雙欄位架構改為純CEFR字符串架構,消除資料冗余
- 後端API改為接收CEFR字符串,使用即時轉換進行計算
- 前端完全使用CEFR等級進行智能選擇和顯示
- 新增完整四情境對照表,突出顯示當前情境和建議複習方式
- 優化沒有到期詞卡時的用戶體驗,提供專用提示頁面
- 修復例句重組結果閃爍重置問題
- 修復AudioPlayer在p標籤內的HTML結構錯誤
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-25 21:05:54 +08:00 |
鄭沛軒
|
7011502270
|
fix: 修復ExtendedFlashcard接口類型衝突
- 使用 Omit<Flashcard, 'nextReviewDate'> 避免類型衝突
- 移除未使用的 isA1Learner import
- 修復 nextReviewDate 可選屬性類型錯誤
編譯現在應該無錯誤,頁面可正常顯示
|
2025-09-25 18:20:58 +08:00 |
鄭沛軒
|
31fb57861a
|
fix: 修復智能複習系統載入和TypeScript錯誤
## 🐛 修復問題
- 修復頁面載入卡在自動選擇狀態的問題
- 修復 startTime 屬性不存在的 TypeScript 錯誤
- 修復 synonyms 可能為 undefined 的類型錯誤
- 修復 exampleImage 類型不匹配問題
- 移除不存在的圖片路徑,避免404錯誤
## ✅ 載入邏輯優化
- 簡化初始載入流程,避免循環依賴
- 確保 isAutoSelecting 狀態正確設置
- 新增詳細的 console.log 用於調試
- 優化錯誤處理和邊界條件
## 🎯 現在可以正常訪問
http://localhost:3001/learn 已可正常顯示智能複習系統
|
2025-09-25 18:18:14 +08:00 |
鄭沛軒
|
c2ca9e0aea
|
feat: 優化智能複習系統mock數據展示四情境自動適配效果
## 🎯 Mock數據優化重點
### 📚 四情境完整演示
1. **A1學習者情境** (卡片1-2)
- userLevel ≤ 20 → 自動限制基礎3題型
- 詞彙: cat, dog (基礎詞彙)
- 系統選擇: 翻卡記憶、詞彙選擇、詞彙聽力
2. **簡單詞彙情境** (卡片3)
- userLevel > wordLevel (difficulty < -10)
- 詞彙: happy (學習者70 vs 詞彙35)
- 系統選擇: 例句重組、例句填空
3. **適中詞彙情境** (卡片4)
- userLevel ≈ wordLevel (-10 ≤ difficulty ≤ 10)
- 詞彙: determine (學習者60 vs 詞彙65)
- 系統選擇: 填空、重組、口說
4. **困難詞彙情境** (卡片5)
- userLevel < wordLevel (difficulty > 10)
- 詞彙: sophisticated (學習者50 vs 詞彙85)
- 系統選擇: 翻卡記憶、詞彙選擇
### 🖥️ UI增強功能
- **智能適配演示面板**: 實時顯示當前情境和程度差異
- **實時熟悉度指示器**: 展示記憶衰減效果
- **詳細演示說明**: 引導用戶體驗不同情境效果
### 📱 互動體驗
- 點擊「下一張」體驗不同情境下的自動題型選擇
- 每張卡片都會自動選擇最適合的複習方式
- 清楚展示零選擇負擔的智能學習體驗
## 🌟 演示價值
- 直觀展示四情境智能適配邏輯
- 證明A1學習者自動保護機制
- 展示基於學習程度的個人化複習體驗
- 體驗零選擇負擔的流暢學習流程
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-25 18:09:49 +08:00 |
鄭沛軒
|
3ef5ea8ffe
|
feat: 實現智能複習系統前端核心重構
## 🎯 重構完成項目
### ✅ 移除手動模式切換
- 刪除7個手動切換按鈕 (lines 337-410)
- 改為系統自動選擇模式
- 保留所有優秀的UI設計和互動邏輯
### ✅ 新增智能化組件
- **ReviewTypeIndicator**: 純顯示當前系統選擇的題型
- **MasteryIndicator**: 實時熟悉度顯示,支援衰減指示
- **masteryCalculator**: 四情境適配邏輯 + 熟悉度計算
### ✅ API服務擴展
- 擴展 flashcardsService 新增6個智能複習方法
- getDueFlashcards: 取得到期詞卡
- getNextReviewCard: 取得下一張復習詞卡
- getOptimalReviewMode: 系統自動選擇題型
- submitReview: 提交復習結果並更新間隔
- generateQuestionOptions: 生成題目選項
### ✅ 狀態管理升級
- 從固定 mock data 改為動態 API 數據
- 新增 ExtendedFlashcard 接口支援智能複習欄位
- 實現自動選擇邏輯和四情境適配
- 整合復習結果提交和熟悉度更新
### ✅ 例句聽力功能補完
- 新增例句選項自動生成邏輯
- 實現例句聽力答題和結果反饋
- 移除"開發中"標記,功能正式可用
## 🌟 核心價值實現
- **零選擇負擔**: 用戶無需手動選擇,系統自動提供最適合的題型
- **四情境適配**: A1學習者自動保護,簡單/適中/困難詞彙智能匹配
- **7種題型完整**: 所有複習方法UI和邏輯都已完成
- **實時熟悉度**: 動態計算和顯示學習進度
## 🎨 UI設計保留
- ✅ 精美的3D翻卡動畫
- ✅ 完整的音頻播放和錄音功能
- ✅ 響應式設計和流暢互動
- ✅ 詳細的答題反饋和錯誤處理
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-25 18:01:25 +08:00 |
鄭沛軒
|
1661eccf24
|
feat: 改進詞卡編輯流程,從列表導航到詳細頁面編輯
✨ UX改進:
- 點擊列表中的編輯按鈕直接導航到詳細頁面
- 詳細頁面自動開啟編輯模式,提供專注的編輯環境
- 移除列表頁面底部的編輯表單,簡化界面
🔧 技術實作:
- 使用URL參數(?edit=true)傳遞編輯狀態
- 詳細頁面檢查URL參數自動開啟編輯模式
- 清理不必要的編輯表單狀態管理
🚀 編輯體驗提升:
- 在詳細頁面編輯,享有完整功能(圖片生成、統計資訊等)
- 避免在列表頁面編輯時的干擾和空間限制
- 統一所有編輯操作在同一位置進行
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-25 09:09:17 +08:00 |
鄭沛軒
|
f3d1f358d6
|
fix: 修復所有資料變更操作的快取問題
- 統一所有 CRUD 操作使用 refetch() 而非 refresh()
- 確保新增、刪除、收藏切換後畫面立即更新
- 解決刪除成功但畫面未更新的問題
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-25 08:03:11 +08:00 |
鄭沛軒
|
48bbfb867b
|
fix: 修復圖片生成後前端未即時顯示的問題
- 修復 FlashcardsController 中變數引用和型別匹配錯誤
- 統一 GetFlashcards 和 GetFlashcard API 的圖片資料結構
- 更新前端使用 refetch() 清除快取確保載入最新圖片資料
- 完善圖片生成後的狀態更新和資料刷新機制
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-25 08:00:07 +08:00 |
鄭沛軒
|
cb3309295b
|
feat: 完成前端詞卡圖片整合與詞性簡寫顯示
🎉 前端詞卡管理功能完全整合後端圖片資料
**圖片整合功能**:
- ✅ 更新Flashcard介面:添加exampleImages、hasExampleImage、primaryImageUrl欄位
- ✅ 取代硬編碼映射:getExampleImage和hasExampleImage改用API資料
- ✅ 詞卡列表頁面:完全使用動態圖片資料顯示
- ✅ 詞卡詳細頁面:修復資料載入邏輯使用列表API獲取圖片資訊
**詞性簡寫顯示**:
- ✅ 全域詞性轉換函數:getPartOfSpeechDisplay()
- ✅ 標準英語縮寫:noun→n., verb→v., adjective→adj.等
- ✅ 複合詞性處理:preposition/adverb→prep./adv.
- ✅ 應用到所有詞性顯示位置:列表和詳細頁面
**系統整合成果**:
- ✅ 完全移除硬編碼圖片映射依賴
- ✅ 前端直接使用後端API返回的圖片URL
- ✅ 支援AI生成圖片的即時顯示
- ✅ Mock資料相容性:添加圖片欄位避免錯誤
前端詞卡管理系統現已完全整合AI圖片生成功能!
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-25 01:57:04 +08:00 |
鄭沛軒
|
b45f2ef4c1
|
feat: 實現詞卡管理頁面完整響應式設計(RWD)
- 例句圖片使用固定像素尺寸,不隨螢幕縮放變形
- 手機版採用垂直堆疊佈局,平板/桌面版水平排列
- 操作按鈕在小螢幕僅顯示圖示,節省空間
- 搜尋控制區域支援垂直/水平佈局切換
- 進階篩選網格響應式調整(1列→2列→4列)
- 頁面標題和按鈕區域完整響應式設計
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-24 18:02:18 +08:00 |
鄭沛軒
|
913d31100f
|
refactor: 簡化例句圖片新增按鈕設計
- 移除內聯樣式避免尺寸衝突
- 改用div結構取代button標籤
- 純粹依賴Tailwind類別控制大小
- 保持完整的互動效果
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-24 17:29:47 +08:00 |
鄭沛軒
|
ecbc5f7d09
|
fix: 修正例句圖片映射邏輯,正確顯示新增按鈕
- 修改imageMap只保留真正有圖片的詞彙(evidence)
- warrants和recovering現在會顯示「新增例句圖」按鈕
- 修復所有詞卡都顯示mock圖片的問題
- 為AI生成流程提供正確的入口點
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-24 17:08:23 +08:00 |
鄭沛軒
|
acd20e3f2c
|
feat: 實現智能例句圖片顯示和AI生成按鈕
- 修改例句圖片邏輯,只顯示已確認存在的圖片
- 為沒有例句圖片的詞彙顯示「新增例句圖」按鈕
- 添加AI生成例句圖片的預留接口
- 提供直觀的視覺提示,區分已有圖片和待生成圖片
- 為下階段AI生成流程做準備
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-24 16:59:42 +08:00 |
鄭沛軒
|
e424c04443
|
style: 將詞卡數目統計顯示調整為右對齊
- 修改詞卡數量統計的對齊方式從左對齊改為右對齊
- 提升頁面佈局的視覺平衡
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-24 16:51:57 +08:00 |
鄭沛軒
|
9a54105061
|
refactor: 移除搜尋欄位內的橢圓形查詢數量顯示
- 移除搜尋框內重複的查詢結果數量顯示
- 保留清除搜尋按鈕功能
- 統一在搜尋控制下方顯示詞卡統計信息
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-24 16:50:58 +08:00 |
鄭沛軒
|
f7ee5be06c
|
feat: 在搜尋控制與詞卡清單間添加詞卡數目統計顯示
- 添加詞卡總數和當前頁面詞卡數量顯示
- 支援分頁時顯示頁面信息
- 添加快取狀態指示器
- 提升用戶對搜尋結果的認知
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-24 16:44:31 +08:00 |
鄭沛軒
|
51cdd521b1
|
fix: 恢復詞卡管理頁面的例句圖片顯示功能
- 在重構過程中遺失的例句圖片功能已恢復
- 添加 getExampleImage 函數到新架構中
- 更新組件 props 以支援例句圖片傳遞
- 在 FlashcardItem 組件中重新實現例句圖片顯示
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-24 16:42:20 +08:00 |
鄭沛軒
|
e05e6f09f2
|
feat: 實現進階搜尋功能的完整前後端架構重構
- 新增完整的前後端架構設計文檔
- 實現 useFlashcardSearch Hook 統一狀態管理
- 重構 FlashcardsPage 使用新架構
- 添加排序和分頁功能
- 實現客戶端 CEFR 等級篩選
- 修復 TypeScript 類型錯誤
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-24 16:23:01 +08:00 |
鄭沛軒
|
75f81f3e2e
|
fix: 修復搜尋框失去焦點問題並優化搜尋體驗
- 分離輸入顯示狀態(searchInput)和查詢狀態(debouncedSearchTerm)
- 新增 isSearching 狀態區分初始載入和搜尋載入,避免搜尋時觸發 loading 狀態
- 使用 useRef 追蹤輸入框 DOM 元素並實現智能焦點恢復機制
- 修復每次輸入後輸入框失去焦點需要重新點擊的 UX 問題
- 保持游標位置在正確的輸入位置,確保連續輸入體驗
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-24 15:13:38 +08:00 |
鄭沛軒
|
989e92ce85
|
fix: 修復詞卡頁面 TypeScript 錯誤並清理冗餘代碼
🔧 TypeScript 錯誤修復:
- 移除循環引用:刪除 `type Flashcard = Flashcard` 重複定義
- 清理 import 衝突:直接使用從 flashcards.ts 導入的 Flashcard 型別
- 移除未使用變數:刪除 mockFlashcards 假資料定義
- 清理冗餘型別:移除不需要的 CardSet 型別定義
🧹 代碼清理:
- 完全移除假資料依賴,現在純粹使用真實 API
- 簡化型別結構,避免不必要的型別重複定義
- 提升代碼可維護性和類型安全性
現在詞卡頁面沒有 TypeScript 錯誤,所有功能正常運作。
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-24 14:41:23 +08:00 |
鄭沛軒
|
70bf3f8fed
|
feat: 完善通知系統堆疊效果並添加分頁 emoji
🎨 Toast 通知系統改進:
- 實現智能通知堆疊:新通知推動舊通知下移而不覆蓋
- 優化動畫邏輯:只有最新通知從右側滑入,舊通知僅平滑移位
- 新增位置追蹤:每個通知按堆疊順序計算垂直位置 (80px 間隔)
- 修復閃爍問題:防止舊通知重複執行入場動畫
- 限制通知數量:最多顯示 5 個通知,自動移除最舊的
- 改進動畫細節:分離入場動畫和位置移動動畫
📚 視覺設計優化:
- 為「所有詞卡」分頁添加 📚 書籍 emoji
- 完善分頁視覺層次:📚 所有詞卡 與 ⭐ 收藏詞卡 形成完美對比
- 提升學習應用的視覺識別度和用戶友善性
🚀 用戶體驗提升:
- 支援快速連續操作:每個動作都有自己的通知反饋
- 非侵入式設計:通知不會阻擋用戶操作流程
- 平滑的視覺效果:所有動畫過渡自然流暢
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-24 14:34:01 +08:00 |
鄭沛軒
|
724ba391b2
|
feat: 實現優雅的角落通知系統取代惱人的 alert 彈窗
🎨 新增 Toast 通知組件:
- 位置:右上角固定位置,不阻擋主要內容
- 動畫:優雅的滑入/滑出動畫 (300ms)
- 自動消失:3秒後自動消失,無需手動點擊
- 手動關閉:可點擊 X 按鈕立即關閉
- 響應式設計:在手機上自動調整寬度
🎯 支援多種通知類型:
- success: ✅ 綠色成功通知(收藏、保存、刪除成功)
- error: ❌ 紅色錯誤通知(操作失敗、網路錯誤)
- warning: ⚠️ 黃色警告通知(重複詞卡、數據警告)
- info: ℹ️ 藍色資訊通知(提示信息)
🔄 全面替換所有 alert 調用:
- 詞卡管理頁面:收藏切換、創建、刪除、編輯操作
- AI 生成頁面:詞卡保存成功、重複檢測、錯誤處理
- 詞卡詳細頁面:更新、刪除、收藏操作反饋
🚀 用戶體驗大幅提升:
- 移除煩人的阻擋式 alert 彈窗
- 實現非侵入式的操作反饋
- 保持操作流程的連續性和流暢度
- 提供視覺上更加現代和優雅的交互體驗
修復編譯問題並重新啟動前端,確保所有功能正常運作。
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-24 04:55:31 +08:00 |
鄭沛軒
|
bfa353bd6b
|
fix: 修復收藏詞卡分頁數量顯示和統計同步問題
- 新增 totalCounts 狀態追蹤所有詞卡和收藏詞卡的總數量
- 新增 loadTotalCounts 函數分別載入全部和收藏詞卡數量統計
- 修復收藏詞卡分頁使用後端 filteredCards 而非前端假資料篩選
- 優化分頁標籤顯示實際的統計數量而非動態計算
- 確保所有 CRUD 操作後都會重新載入統計數據:
* 創建詞卡後更新統計
* 刪除詞卡後更新統計
* 收藏切換後更新統計
- 分離 C1 和 C2 快速篩選按鈕,提供更精準的等級篩選
現在收藏詞卡功能完全基於後端 API,分頁數量顯示準確且即時同步。
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-24 04:34:02 +08:00 |
鄭沛軒
|
c6d5bb6ce3
|
feat: 完成詞卡管理功能前後端完整整合
🎯 後端 API 增強:
- 擴展搜尋功能支援例句內容 (Example 和 ExampleTranslation)
- 新增進階篩選查詢參數 (cefrLevel, partOfSpeech, masteryLevel)
- 建立完整的 FlashcardDto.cs 含資料驗證規則
- 查詢效能優化:新增 AsNoTracking() 提升效能
- 實現三級掌握度篩選邏輯 (high ≥80%, medium 60-79%, low <60%)
🖥️ 前端功能完善:
- FlashcardsService 支援完整進階篩選參數
- FlashcardForm 新增 CEFR 等級選擇器 (A1-C2)
- 統一詞性格式使用英文值 (noun, verb, adjective 等)
- 詞卡頁面整合後端篩選,移除前端重複邏輯
- 實現 300ms 搜尋防抖處理
- 快速篩選按鈕分離 C1/C2 等級選項
- AI 生成頁面支援完整 CEFR 等級儲存
🔗 完整 API 整合:
- 詞卡詳細頁面修復 import 錯誤並完整整合後端 API
- ClickableTextV2 修復 userLevel 和 compareCEFRLevels 函數問題
- 所有 CRUD 操作 (創建、讀取、更新、刪除、收藏) 完全整合
- 前後端型別定義完全一致,確保型別安全
📋 文檔完善:
- 建立後端 API 開發計劃文檔含完整技術規格
- 所有文檔引用標注清楚,便於開發者理解
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-24 04:21:06 +08:00 |
鄭沛軒
|
7f85c79bc3
|
docs: 簡化星星標記提示文字並新增詞卡管理功能產品需求規格
- 簡化星星標記說明為「⭐ 為常用高頻詞彙,建議優先學習!」
- 修復 generate 頁面 TypeScript 錯誤:新增 compareCEFRLevels 函數
- 修復慣用語星星顯示邏輯中的 userLevel 變數問題
- 新增詳細的詞卡管理功能產品需求規格書,涵蓋:
* 完整的功能模組分析和UI/UX設計規格
* 搜尋與篩選系統的詳細實現規格
* CRUD操作流程和技術架構定義
* 響應式設計要求和可訪問性標準
* 測試用例規格和未來功能規劃
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-24 03:01:12 +08:00 |
鄭沛軒
|
8d85366a45
|
feat: 精確化星星顯示條件
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-24 02:46:31 +08:00 |
鄭沛軒
|
650a19c998
|
fix: 將星星標記說明移至分析結果頁面
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-24 02:17:20 +08:00 |
鄭沛軒
|
55ad563fd2
|
feat: 添加星星標記使用說明
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-24 01:57:39 +08:00 |
鄭沛軒
|
e71c0f5542
|
feat: 改善詞卡保存用戶反饋體驗
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-24 01:50:59 +08:00 |
鄭沛軒
|
fd58f43b9b
|
refactor: 完成前端組件重命名,統一使用flashcards服務
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-24 01:21:42 +08:00 |
鄭沛軒
|
523ab90e8f
|
feat: 實施智能詞卡生成與保存功能 (進行中)
核心功能開發:
🎯 SimplifiedFlashcardsController 增強:
- ✅ 添加 ToggleFavorite 端點 (POST /{id}/favorite)
- ✅ 實現重複檢測邏輯 (資料庫查詢 + 友善提示)
- ✅ 恢復認證要求 [Authorize]
- ✅ 改善錯誤處理和日誌記錄
🔧 前端服務整合:
- ✅ 更新 generate/page.tsx 使用 simplifiedFlashcardsService
- ✅ 改善錯誤處理 (空值檢查)
- ✅ 添加重複詞卡檢測提示
📚 文檔整合完成:
- ✅ 創建統一產品需求規格書 (整合兩份文檔)
- ✅ 完整的開發計劃追蹤系統
- ✅ 詳細的功能實施記錄
🚨 當前問題:
- ⚠️ 網路錯誤: 認證問題導致 API 調用失敗
- ⚠️ 需要暫時移除認證或修復 JWT Token 處理
開發進度:
- 總時間: 25 分鐘 (4個階段完成)
- API 端點: 已就緒,等待認證問題解決
- 重複檢測: 已實現
- 錯誤處理: 已改善
下一步: 修復認證問題,完成端到端測試
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-23 22:31:20 +08:00 |
鄭沛軒
|
2bd5d2067c
|
fix: 完全修復詞卡頁面 - 移除 CardSets 概念衝突
問題解決:
🔍 根本原因: CardSets 概念在前後端不一致導致頁面載入失敗
🎯 解決方案: 系統性移除 CardSets 依賴,簡化架構
前端修復:
- ✅ 移除所有 loadCardSets() 調用
- ✅ 創建 simplifiedFlashcardsService (無 CardSets)
- ✅ 更新 mockFlashcards 格式為 SimpleFlashcard
- ✅ 修復 TypeScript 類型錯誤
- ✅ 移除未使用變量和依賴
後端修復:
- ✅ 創建 SimplifiedFlashcardsController
- ✅ 新端點 /api/flashcards-simple (已驗證正常)
- ✅ 移除 CardSet 依賴邏輯
- ✅ 暫時移除認證要求便於測試
修復驗證:
- ✅ 前端編譯成功: GET /flashcards 200
- ✅ 後端 API 正常: {"success": true, "data": {"flashcards": [], "count": 0}}
- ✅ TypeScript 錯誤修復
- ✅ 系統穩定運行
架構改善:
- 🚀 簡化 API 架構 (移除複雜卡組邏輯)
- 🚀 更直觀的詞卡管理
- 🚀 更少的 API 調用
- 🚀 更易維護的代碼結構
修復時間: 5 分鐘 (快速響應)
影響範圍: 詞卡頁面核心功能恢復
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-23 21:08:39 +08:00 |
鄭沛軒
|
a2ac3d35fd
|
feat: 實現常用詞彙星星標記功能
- 在WordAnalysis介面新增frequency屬性支援
- 在ClickableTextV2組件實現詞彙星星顯示邏輯
- 在generate頁面為慣用語加入星星標記
- 當frequency為"high"時顯示⭐emoji於右上角
- 優化星星位置避免遮擋文字內容
- 實現完整的容錯處理機制
- 更新實施計劃文件和產品需求規格
🎯 功能驗證: API回傳high頻率詞彙正確顯示星星
🎨 視覺優化: 星星位於框外右上角不影響可讀性
🛡️ 容錯處理: 資料缺失時安全降級不影響其他功能
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-23 04:05:39 +08:00 |
鄭沛軒
|
add6e2a3dc
|
docs: 更新產品需求規格並添加待辦清單
📝 文檔更新:
• 在AI句子分析功能產品需求規格.md中添加待辦清單
• 記錄需要進一步實現的功能需求
📋 待辦項目:
• 顯示常用詞彙功能
• 確保所有詞彙都進行分析
• 點擊圖+生成例句圖功能
• 點播放生成語音功能
• 儲存詞彙的後端API整合
🎯 改善效果:
• 明確下一步開發方向
• 追蹤功能完整性
• 提升產品規劃清晰度
🚀 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-23 02:51:04 +08:00 |
鄭沛軒
|
a2c2ada8a9
|
style: 優化統計卡片文字字體大小
改進詞彙難度統計卡片的可讀性:
• 將標籤文字從 text-xs sm:text-sm 調整為 text-sm sm:text-base
• 提升「太簡單啦」、「重點學習」、「有點挑戰」、「慣用語」的字體大小
• 保持響應式設計,手機端14px,桌面端16px
• 改善用戶體驗和視覺平衡
🚀 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-23 02:40:21 +08:00 |
鄭沛軒
|
0e04a9bbfa
|
feat: 完成AI句子分析功能前後端串接與UI優化
✨ 核心功能完成:
• 移除API請求中的userLevel參數,適配新後端格式
• 更新回應數據結構處理,支援result.data格式
• 修正vocabularyAnalysis詞彙查找邏輯
• 整合idioms陣列顯示功能
🎨 UI/UX 改進:
• 修正首字母大寫詞彙點擊問題(如"Education")
• 添加同義詞顯示區域(紫色標籤)
• 統一播放按鈕樣式,使用Lucide Play圖標
• 優化慣用語popup,移除不必要的詞性欄位
🔧 技術改進:
• 更新TypeScript interface定義
• 改進詞彙key查找算法
• 統一播放按鈕設計語言
📊 測試驗證:
• API健康檢查通過
• 前後端通信正常
• 3.5秒分析時間符合<5秒要求
• 詞彙標記和統計功能正常
🚀 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-23 02:38:46 +08:00 |
鄭沛軒
|
49f144a332
|
feat: 完成第二次慣用語術語檢查和修正
第二次檢查修正項目:
1. 前端關鍵邏輯修正
- page.tsx:170,437 - IsPhrase → IsIdiom 統一
- page.tsx:464,504,519,575 - setPhrasePopup → setIdiomPopup 統一
- 註釋「設定片語彈窗狀態」→「設定慣用語彈窗狀態」
2. 後端數據庫實體修正
- SentenceAnalysisCache.cs - PhrasesDetected → IdiomsDetected
- 註釋更新為「檢測到的慣用語」
3. 完整檢查報告
- 第二次片語俚語檢查修正報告.md
- 詳細記錄遺漏項目和修正過程
- 最終驗證:功能代碼100%完成
系統現已徹底統一「慣用語(idiom)」術語
所有功能性程式碼無任何遺漏,快取系統已完全移除
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-22 19:00:02 +08:00 |
鄭沛軒
|
03c1756d71
|
feat: 完成AI生成功能的完整前後端整合
後端實現:
- 創建AIController和GeminiService集成Google Gemini API
- 實現完整的句子分析API端點
- 添加數據模型和錯誤處理機制
- 集成現有的緩存和使用追蹤服務
- 使用User Secrets安全存儲Gemini API Key
前端整合:
- 更新為使用真實API調用替代假資料
- 修復所有API服務指向正確port (5008)
- 改善錯誤處理和用戶體驗
- 確保前後端數據格式完全匹配
功能特色:
- 智能語法檢查和修正建議
- 基於CEFR等級的個人化詞彙標記
- 慣用語識別和展示
- 完整的詞彙詳情彈窗
- 一鍵保存到詞卡功能
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-22 03:04:29 +08:00 |
鄭沛軒
|
3785897a94
|
refactor: 優化前端代碼結構並完成AI生成功能後端API規格
- 清理未使用的變數和代碼(mode, isPremium等)
- 改善錯誤處理機制,移除侵入式alert彈窗
- 優化詞彙標記算法性能,添加useCallback記憶化
- 改進彈窗定位算法,防止超出螢幕邊界
- 添加學習提示系統,幫助用戶理解詞彙標記
- 統一代碼風格和TypeScript類型定義
- 撰寫完整的AI生成功能後端API規格文檔
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-22 01:40:27 +08:00 |
鄭沛軒
|
09cc219a4c
|
docs: 創建完整規格文檔並統一用詞為慣用語
📚 新增規格文檔:
- AI生成網頁前端需求規格.md (完整需求分析)
- AI生成網頁前端功能規格.md (功能實現規格)
- AI生成網頁前端技術規格.md (技術架構規格)
🔤 統一用詞:
- 前端卡片標籤更新為更友善的表達:
- 「太簡單啦」(簡單詞彙)
- 「重點學習」(適中詞彙)
- 「有點挑戰」(艱難詞彙)
- 「慣用語」(慣用語)
- 需求規格文檔中統一使用「慣用語」
📖 文檔特色:
- 包含詳細的用戶故事和驗收標準
- 完整的技術架構和性能規格
- 具體的測試案例和品質指標
- CEFR等級比較機制詳細說明
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-22 00:13:27 +08:00 |
鄭沛軒
|
6fbb6fc4a4
|
perf: 修復React Hooks順序錯誤並完成前端性能優化
🐛 修復Hooks順序問題:
- 將useMemo移到組件頂層,避免條件渲染中的Hooks
- 修正vocabularyStats的使用邏輯
⚡ 性能優化完成:
- 添加useMemo和useCallback優化重複計算和渲染
- 完善TypeScript類型定義
- 改善響應式設計 (移動設備適配)
- 統一代碼風格和常數定義
- 移除未使用變數和import
✅ 功能驗證:
- 詞彙標記系統正常
- 片語展示功能完整
- 統計卡片準確顯示
- 彈窗互動流暢
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-21 23:01:26 +08:00 |
鄭沛軒
|
11e19d5e1c
|
fix: 優化詞彙標記樣式與片語點擊功能
- 還原例句中詞彙樣式為簡潔設計 (rounded, px-1 py-0.5)
- 實現片語標籤點擊顯示詳細彈窗功能
- 修正假資料結構,區分cut動詞和cut someone some slack片語
- 調整片語標籤樣式與例句詞彙保持一致
- 修復Console錯誤和語法問題
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-21 21:31:08 +08:00 |
鄭沛軒
|
fb89cf1a33
|
feat: 完成詞彙標記系統與片語展示功能
- 實現前端CEFR等級直接比較的詞彙分類系統
- 添加四張統計卡片顯示各類詞彙數量分布
- 設計片語獨立展示區域,採用學習功能一致的樣式
- 優化詞彙間距避免上下行標記重疊
- 創建語法錯誤檢測測試情境
- 更新需求規格文檔添加遺漏的ExampleTranslation欄位
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-21 21:08:55 +08:00 |
鄭沛軒
|
14b55d6f7a
|
refactor: 完全移除query-word API調用並修正資料傳遞問題
🎯 主要修正:
- 完全移除queryWordWithAI函數和相關API調用
- 移除handleCostConfirm中的query-word調用
- 簡化ClickableTextV2組件介面,移除onNewWordAnalysis回調
🔧 架構優化:
- 統一使用analyze-sentence API作為唯一資料來源
- 實現findWordAnalysis智能詞彙匹配(處理大小寫問題)
- 提取POPUP_CONFIG常數,提高代碼可維護性
- 移除未使用的變數viewportHeight
🚨 關鍵問題發現:
- 前端期望result.data.WordAnalysis但API回傳undefined
- 導致ClickableTextV2接收到空物件,無法顯示詞彙資料
- 添加智能屬性名稱匹配:WordAnalysis || wordAnalysis
📊 Debug增強:
- 添加資料傳遞過程的詳細調試
- 確認API回應和組件接收的資料一致性
- 為問題診斷提供完整的資訊鏈
🎯 新架構效果:
- 只使用一個API端點,避免資料不一致
- 智能大小寫匹配,確保詞彙查找成功
- 簡化的代碼邏輯,更易維護
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-21 16:17:26 +08:00 |
鄭沛軒
|
36659d3bed
|
clean: 清理前端debug程式碼,保持生產代碼整潔
🧹 清理內容:
- 移除API接收階段的詳細調試資訊
- 移除詞彙點擊路由的debug輸出
- 移除例句檢查的console.log
- 移除各種JSON.stringify調試
✅ 保留功能:
- 例句顯示區塊(藍色區塊)
- 強化的getWordProperty函數
- 同義詞補充機制
- 所有Portal彈窗功能
🎯 代碼狀態:
- 乾淨的生產代碼,無debug污染
- 功能完整且性能優化
- 準備用於後續問題修正
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-21 14:39:21 +08:00 |
鄭沛軒
|
3b61cf8ce4
|
fix: 修正AI例句生成和前端詞彙顯示問題
🔧 後端修正:
- 修正Gemini AI prompt,要求生成實用例句和翻譯
- 擴展WordAnalysisResult添加Example和ExampleTranslation屬性
- 修正後處理邏輯,優先使用AI例句,沒有時使用優質例句庫
- 添加GetQualityExampleSentence和GetQualityExampleTranslation函數
🎯 例句品質提升:
- bonus: "Employees received a year-end bonus for excellent performance."
- company: "The tech company is hiring new software engineers."
- 移除垃圾模板例句,提供真實場景和實際用法
🔍 前端Debug增強:
- 添加詳細的API接收調試資訊
- 添加詞彙點擊路由調試
- 新增例句區塊顯示(藍色區塊)
- 強化getWordProperty函數的屬性查找
📊 診斷發現:
- API確實生成了優質例句
- 前端調用了錯誤的query-word API覆蓋了正確資料
- 需要修正前端詞彙查找邏輯
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-21 14:33:29 +08:00 |
鄭沛軒
|
209dcedf2c
|
feat: 完成個人化重點學習範圍系統實現
🎯 核心功能實現:
- 建立CEFRLevelService服務,實現個人化判定邏輯
- 重點學習範圍:用戶程度+1~2階級的詞彙
- 完整的CEFR等級管理(A1-C2)
🔧 後端架構完成:
- 擴充CEFRLevelService新增等級描述和範例詞彙
- AIController新增PostProcessWordAnalysisWithUserLevel後處理
- 不再依賴AI決定重點學習詞彙,改由後端邏輯控制
- 補充同義詞和例句資料,解決AI資料不完整問題
⚡ 前端整合完成:
- handleAnalyzeSentence傳遞userLevel參數
- 個人化程度指示器顯示當前程度和重點學習範圍
- localStorage機制支援未登入用戶
- 設定頁面完整的CEFR等級選擇器
✅ 驗收測試全部通過:
- A2用戶:重點學習範圍B1-B2,標記offered/bonus
- C1用戶:重點學習範圍C2,標記為空(無C2詞彙)
- API向下相容:不傳userLevel時預設A2
- 效能達標:API回應時間符合要求
🎯 個人化效果:
- A1學習者現在看到A2-B1詞彙(實用目標)
- C1學習者只看到C2詞彙(避免簡單干擾)
- 提供適合當前程度的學習挑戰
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-21 03:23:38 +08:00 |
鄭沛軒
|
a5c439bbaf
|
docs: 完成AI詞彙分析系統規格文件並整合個人化重點學習範圍
📋 文件內容:
- 創建完整的AI詞彙分析生成系統規格文件
- 整合個人化重點學習範圍系統設計
- 詳細的功能規格、技術架構、API規格
🎯 重大概念更新:
- 高價值詞彙 → 重點學習範圍概念
- AI不再自己決定,改由CEFRLevelService判定
- 個人化判定邏輯:用戶程度+1~2階級
🔧 前端修正:
- 修正getWordProperty函數處理AI資料格式不完整問題
- 智能處理同義詞、例句等缺失欄位
- 前端能夠適應AI回應格式變化
🏗️ 後端詞彙庫擴充:
- 新增用戶例句中的所有詞彙翻譯和定義
- 修正同義詞函數返回空數組而非無意義文字
- 確保AI分析和本地增強的整合
📊 規格文件特色:
- v2.0版本整合個人化系統
- 完整的CEFR等級判定邏輯
- Portal設計技術規格
- 用戶程度設定系統架構
- 個人化快取策略
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-21 03:00:50 +08:00 |
鄭沛軒
|
b348780eaa
|
feat: 完成詞卡儲存功能整合並移除假資料
🎯 主要功能:
- 統一前後端API欄位名稱(word/translation/definition)
- 移除所有假資料生成函數,改用真實API調用
- 修正FlashcardForm和相關組件的欄位映射
🔧 技術修正:
- 前端handleSaveWord函數使用正確的API欄位
- flashcardsService interface與後端API完全匹配
- handleAnalyzeSentence改為調用真實的analyze-sentence API
📝 代碼清理:
- 移除generateMockAnalysis函數(~150行代碼)
- 移除getRandomTranslation、getRandomPartOfSpeech等工具函數
- 清理所有mock相關的註釋和變數
✅ 功能驗證:
- 後端API正常運行(localhost:5000)
- 前端Portal彈窗樣式完美
- 詞卡儲存功能完整可用
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-21 01:36:22 +08:00 |
鄭沛軒
|
aca9ec2f7a
|
clean: 移除所有測試和demo頁面
刪除的頁面:
- /demo-v2: 舊版ClickableTextV2測試頁面
- /demo-v3: 包含語法修正的測試版本
- /test: 基礎測試頁面
- /test-api: API測試頁面
- /test-simple: 簡單測試頁面
- /debug: 調試頁面
- /generate-demo: 生成功能的demo版本
清理原因:
- 這些頁面都使用已刪除的ClickableText組件
- 功能已整合到正式的/generate頁面
- 沒有任何其他文件引用這些頁面
- 減少約125KB的冗餘代碼
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-21 01:10:50 +08:00 |
鄭沛軒
|
5583b763bc
|
clean: 移除展示頁面和舊的規格文件
- 刪除 /vocab-designs 展示頁面(已完成使命)
- 清理過時的中文規格文件
- Portal重構完成後不再需要樣式對比頁面
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-21 01:03:23 +08:00 |
鄭沛軒
|
db952f94be
|
fix: 統一popup樣式,修正詞卡風格與實際功能的一致性問題
- 修正ClickableTextV2組件的popup樣式,與詞卡風格展示頁面保持一致
- 調整詞彙標題為左對齊
- 統一按鈕容器padding (p-4)
- 修復TypeScript錯誤和類型問題
- 新增詞卡風格選項到展示頁面
- 實現完整的popup樣式一致性測試
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-20 23:10:26 +08:00 |
鄭沛軒
|
be236f7216
|
refactor: 移除卡組功能,簡化詞卡管理系統
- 完全移除卡組分類功能,簡化詞卡管理邏輯
- 詞卡管理頁面只保留"所有詞卡"和"收藏詞卡"兩個tab
- 移除卡組相關界面元素和統計信息
- 詞卡列表顯示創建時間取代卡組信息
- 詞卡詳細頁面移除開始學習按鈕
- CEFR標籤移至卡片右上角,移除"CEFR"文字前綴
- 底部操作按鈕採用平均延展布局(flex-1)
- 強化搜尋和收藏功能作為主要組織方式
- 創建詞卡管理系統簡化規格文檔
- 專注詞彙學習本質,降低管理複雜度
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-20 19:29:00 +08:00 |
鄭沛軒
|
080cbe14a6
|
refactor: 優化詞卡詳細頁面設計並修正TypeScript錯誤
- 刪除左上角藍色圓圈頭像,讓詞彙標題更突出
- 調整詞性位置到音標左邊,邏輯順序更合理
- 統一播放按鈕樣式,參考學習功能翻卡模式設計
- 刪除右上角多餘的收藏星星,保持CEFR標籤純粹
- 修正TypeScript類型錯誤,確保編譯正常
- 簡化API邏輯,使用假資料確保穩定展示
- 統一詞彙和例句的播放按鈕為學習功能風格
設計現在更加簡潔清晰,與學習功能完全一致。
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-20 18:52:08 +08:00 |
鄭沛軒
|
0b871a9301
|
feat: 創建詞卡詳細頁面與完善導航功能
- 新增詞卡詳細頁面 (/flashcards/[id]) 採用學習功能風格設計
- 實現完整的詞卡詳細展示,包含學習統計、內聯編輯功能
- 修正Next.js 15的params處理,使用React.use()解包Promise
- 更新詞卡列表的導航邏輯,點擊詳細按鈕跳轉到詳細頁面
- 添加假資料支援,確保所有詞卡都能正常顯示詳細頁面
- 實現內聯編輯功能,支援翻譯、定義、例句的即時編輯
- 整合收藏功能到詞卡詳細頁面
- 提供開始學習和刪除詞卡的快速操作
- 採用漸層背景和彩色區塊設計,與學習功能保持一致
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-20 18:40:39 +08:00 |
鄭沛軒
|
33b291b505
|
feat: 完善詞卡管理頁面的搜尋和交互體驗
- 實現進階搜尋功能,支援CEFR等級、詞性、掌握度、收藏狀態篩選
- 新增搜尋結果高亮顯示,關鍵字會被黃色標記
- 重新設計右側操作按鈕,增大尺寸提升點擊體驗
- 修正tab高亮邏輯,避免多個tab同時亮起的問題
- 優化卡片交互邏輯,移除整卡點擊,只保留右側導航按鈕
- 修正例句圖片映射邏輯,確保所有詞卡都有對應圖片
- 添加完整的假資料展示六個CEFR等級效果
- 實現快速篩選按鈕,一鍵篩選常用條件
- 修正TypeScript類型錯誤,確保編譯正常
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-20 18:19:31 +08:00 |
鄭沛軒
|
4e69030bc2
|
feat: 實現完整的詞彙儲存功能與UI設計優化
- 新增後端批量詞卡保存API (POST /api/flashcards/batch)
- 實現前端詞卡選擇對話框組件 (CardSelectionDialog)
- 優化句子分析頁面設計,以句子為主體
- 重新設計ClickableTextV2詞彙popup,採用現代玻璃morphism風格
- 改進詞卡清單頁面,採用簡潔的清單設計
- 添加CEFR等級標註與六級顏色設計
- 新增收藏功能與收藏詞卡tab頁面
- 創建詞彙版型展示頁面 (vocab-designs)
- 建立完整的UI/UX設計規範文件
- 撰寫詞彙生成與儲存系統技術規格文件
- 使用假數據實現快速測試功能
- 優化例句圖片展示與播放按鈕設計
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-20 17:52:22 +08:00 |
鄭沛軒
|
b8aa0214f0
|
style: 優化重組區域置中效果與註解規範
## 重組區域視覺改進
- 修正「答案區」完全置中對齊(上下左右都置中)
- 使用 absolute inset-0 確保完美居中效果
- 添加 relative 定位支援絕對定位子元素
## 代碼註解規範
- 為所有測驗說明文字添加統一註解格式
- 使用 "Instructions Test Action" 標準註解
- 提升代碼可讀性和維護性
## 布局微調
- 優化重組區域的空白狀態顯示
- 確保視覺元素的精確對齊
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-20 12:18:11 +08:00 |
鄭沛軒
|
12488b3bdd
|
style: 統一所有測驗的答案回饋樣式與間距
## 樣式統一化
- 統一所有答案回饋為例句重組的標準格式
- 修正詞彙選擇和詞彙聽力的選項間距問題
- 統一圖片顯示尺寸,以例句重組為標準
## 具體改進
- 答案回饋容器:統一使用 p-6 rounded-lg w-full mb-6
- 標題文字:統一使用 text-left text-xl mb-4
- 選項區域:添加 mb-6 底部間距避免與回饋區域黏合
- 圖片樣式:移除 VoiceRecorder 中的額外樣式限制
## VoiceRecorder 組件優化
- 添加自定義說明文字支援
- 統一圖片容器和樣式
- 改善布局順序和間距
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-20 04:31:27 +08:00 |
鄭沛軒
|
d1c5f2e31c
|
refactor: 優化例句口說功能設計與用戶體驗
## VoiceRecorder 組件改進
- 添加自定義說明文字 prop (instructionText)
- 調整布局順序:圖片 → 說明 → 例句
- 統一圖片容器樣式與其他模式一致
## 例句口說頁面優化
- 移除重複的例句和圖片顯示
- 簡化錄音完成回饋區域
- 移除不必要的目標單字和發音顯示
- 調整回饋訊息為分行顯示,提升可讀性
- 實現滿版寬度布局
## 用戶體驗改進
- 消除重複內容,介面更簡潔
- 統一設計語言,視覺一致性更好
- 優化訊息層次,重點更突出
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-20 04:12:52 +08:00 |
鄭沛軒
|
7203346134
|
feat: 完成例句重組與例句口說功能設計
## 例句重組功能實現
- 實現完整的點擊式單字重組功能
- 添加例句圖片顯示支援
- 創建直觀的重組區域和可用單字區域
- 實現答案檢查和結果回饋系統
- 提供重新開始功能
## 例句口說功能優化
- 添加例句圖片顯示
- 重新設計為完整例句口說練習
- 使用統一的區塊化布局設計
- 移除單獨的詞彙發音區塊,專注於例句練習
- 調整VoiceRecorder目標為完整例句
## 技術改進
- 改進拖拉操作為更簡單的點擊操作
- 統一所有測驗模式的視覺設計
- 優化用戶互動體驗和學習流程
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-20 04:00:14 +08:00 |
鄭沛軒
|
a20fa9004d
|
feat: 重構例句填空與例句重組功能
## 例句填空重大改進
- 實現真正的例句挖空功能,支援點擊輸入
- 添加例句圖片顯示,提供視覺化學習輔助
- 重新設計答案回饋為滿版左對齊布局
- 優化提示功能顯示詞彙定義而非字母提示
- 移除例句中文翻譯,專注於英文理解
## 例句重組功能增強
- 添加例句圖片顯示功能
- 保持與例句填空一致的視覺設計
## 其他優化
- 修復翻卡記憶標題置中問題
- 優化詞彙聽力模式,移除定義和翻譯干擾
- 統一所有測驗模式的標題和布局格式
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-20 03:41:44 +08:00 |
鄭沛軒
|
a39ef4ba6f
|
ux: 調整測驗頁面布局為統一格式
- 將所有測驗模式的標題移至左上角
- 難度標籤移至右上角
- 為每個測驗添加清楚的操作說明文字
- 使用 flex justify-between 布局統一標題區域
改善用戶體驗,讓每個測驗的目的和操作方式更加清晰明確。
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-20 02:49:36 +08:00 |
鄭沛軒
|
55db91c872
|
refactor: 重新命名學習模式為更清晰的名稱
- 翻卡題 → 翻卡記憶 (flip-memory)
- 選擇題 → 詞彙選擇 (vocab-choice)
- 詞彙聽力題 → 詞彙聽力 (vocab-listening)
- 例句聽力題 → 例句聽力 (sentence-listening)
- 填空題 → 例句填空 (sentence-fill)
- 例句重組題 → 例句重組 (sentence-reorder)
- 例句口說題 → 例句口說 (sentence-speaking)
更新了TypeScript型別定義、Tab Bar按鈕文字、測驗頁面標題和所有相關的條件判斷邏輯。新名稱更具描述性,用戶更容易理解每種測驗的功能和目標。
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-20 01:00:42 +08:00 |
鄭沛軒
|
e794f47909
|
fix: 修復選擇題模式的 TypeScript 型別錯誤
為 selectedOtherWords 變數加上明確的 string[] 型別宣告,
解決了 TypeScript 無法推斷變數型別的編譯錯誤。
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-19 23:49:20 +08:00 |
鄭沛軒
|
15c4bffe3d
|
ux: 優化選擇題模式的對齊方式和答案回饋
- 統一選擇題內容為左對齊:問題文字、選項按鈕、答案回饋
- 完善答案顯示:答對和答錯時都顯示詞彙、音標和播放功能
- 改善學習回饋體驗,確保用戶獲得完整的發音資訊
- 優化視覺一致性,與翻卡模式保持統一設計語言
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-19 23:36:53 +08:00 |
鄭沛軒
|
5bd823ee91
|
ux: 重構學習模式設計與導航體驗
- 改進選擇題模式:顯示定義讓用戶選擇對應英文詞彙
- 優化選項生成邏輯:動態從卡片組生成選項並隨機排序
- 新增翻卡背面例句播放功能,提升學習效果
- 統一所有學習模式導航按鈕位置和樣式
- 實現全版導航按鈕設計,改善觸控體驗
- 修正結果顯示邏輯和音頻回饋功能
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-19 23:23:02 +08:00 |
鄭沛軒
|
c1e296c860
|
ux: 實現翻卡模式動態高度適配與版面優化
- 新增動態高度計算系統,解決翻轉時卡片大小變化問題
- 實現正面背面高度自動匹配,確保翻轉體驗一致
- 優化翻卡模式設計:移除CEFR標籤、簡化正面佈局
- 改善背面內容組織:灰底區分、左對齊文字、移除冗餘元素
- 修復背面底部空白問題,提升視覺整潔度
- 添加平滑高度過渡動畫,增強用戶體驗
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-19 23:09:45 +08:00 |
鄭沛軒
|
31e3fe9fa8
|
ux: 優化學習頁面用戶體驗和互動設計
- 修正翻卡模式卡片翻轉動畫和版面配置
- 改善選擇題模式答案顯示和回饋機制
- 優化語音錄音組件狀態管理
- 加強用戶交互體驗和視覺回饋
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-19 17:44:39 +08:00 |
鄭沛軒
|
da85bb8f42
|
ux: 優化學習模式的用戶體驗設計
- 簡化語音播放器,移除口音切換和音量控制
- 修正選擇題邏輯:根據英文定義選擇詞彙
- 修復播放按鈕事件冒泡問題,避免誤觸翻卡
- 優化翻卡背面設計,使用灰色區塊和自適應高度
- 統一語音播放為美式發音,提供一致體驗
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-19 14:49:37 +08:00 |
鄭沛軒
|
0bfb08a97b
|
ux: 優化翻卡模式和錯誤回報按鈕的視覺設計
- 移除翻卡背面的滾動條,讓內容自然延伸
- 將錯誤回報按鈕從紅色改為灰色,降低視覺干擾
- 提升整體用戶體驗的視覺和諧度
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-19 13:50:36 +08:00 |
鄭沛軒
|
d5395f5741
|
feat: 實現完整語音功能系統與學習模式整合
- 新增 TTS 語音播放和語音辨識功能
- 實現 Azure Speech Services 整合架構
- 建立完整的音頻快取和評估系統
- 整合語音功能到五種學習模式
- 新增語音錄製和發音評分組件
- 優化學習進度和評分機制
- 完成語音功能規格書和測試案例文檔
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-19 13:33:17 +08:00 |
鄭沛軒
|
f90286ad88
|
ux: 優化用戶友善文案,將「高價值詞彙」改為「重點學習詞彙」
文案優化:
- 程度指示器:「💎 高價值範圍」→「📈 重點學習範圍」
- 設定頁面:「高價值詞彙範圍」→「重點學習範圍」
- AI Prompt:「標記為高價值」→「標記為重點學習」
- 詞彙標記:「高價值詞彙」→「重點學習詞彙」
視覺優化:
- 圖標升級:⭐ (價值感) → 🎯 (目標感)
- 強化學習導向的表達方式
技術修復:
- 新增DbContext個人化欄位映射,解決資料庫欄位問題
- 確保C#模型與SQLite表結構正確對應
用戶體驗提升:
- 從商業化的「價值」概念轉為教育性的「學習」概念
- 更直觀的個人化學習目標表達
- 減少用戶理解負擔,提升整體友善度
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-19 00:26:10 +08:00 |
鄭沛軒
|
0bf0541c87
|
feat: 實現個人化高價值詞彙判定系統
主要功能:
- 實現基於用戶英語程度的個人化詞彙標記
- A1用戶標記A2-B1為高價值,C1用戶只標記C2為高價值
- 完整的前後端個人化學習體驗
後端架構:
- 擴充User實體新增英語程度相關欄位
- 建立CEFRLevelService等級比較服務
- 更新GeminiService支援個人化AI Prompt
- API支援userLevel參數,回應包含個人化資訊
前端體驗:
- 新增完整的程度設定頁面(/settings)
- 導航選單整合設定連結
- generate頁面顯示個人化程度指示器
- 自動傳遞用戶程度到API進行個人化分析
技術實現:
- 動態AI Prompt根據用戶程度調整判定標準
- localStorage保存用戶程度設定
- 向下相容設計,未設定時預設A2程度
- 完整的錯誤處理和回退機制
用戶價值:
- 從固定B1以上改為個人化程度+1~2級
- 真正適合用戶挑戰程度的詞彙標記
- 提升學習效率,避免過難或過簡單的干擾
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-18 22:37:38 +08:00 |
鄭沛軒
|
4f16cbfa08
|
refactor: 移除所有快取機制並優化 AI 服務架構
主要變更:
- 完全移除句子分析快取,每次都進行真實 AI 分析
- 移除詞彙查詢的假資料實現,改用真實 Gemini AI
- 在 GeminiService 中新增專門的 AnalyzeWordAsync 方法
- 修正架構設計,將 AI 邏輯從 Controller 移到 Service 層
- 移除前端快取狀態顯示,簡化用戶介面
技術改善:
- 遵循分層架構原則,Service 層處理 AI 邏輯
- 統一錯誤處理和回退機制
- 新增完整的詞彙分析 JSON 解析邏輯
- 確保每次查詢都獲得最新的 AI 分析結果
附加:
- 新增查詢歷史系統設計規格文檔
- 為未來實現查詢歷史功能做準備
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-18 20:47:48 +08:00 |
鄭沛軒
|
255adc62c9
|
feat: 簡化句子分析功能並實現全詞彙可點擊
主要變更:
- 移除句子分析中的冗長解釋,只保留翻譯
- 修改 AI Prompt 簡化回應格式
- 實現所有單字都可點擊的互動功能
- 無預存資料的詞彙支援即時 AI 查詢
- 移除付費限制,提供完全免費的詞彙查詢體驗
- 新增詞彙快取機制技術規格文檔
技術改善:
- 優化 ClickableTextV2 組件支援全詞彙點擊
- 新增動態詞彙資料更新機制
- 改善視覺提示,區分有/無預存資料的詞彙
- 整理項目文檔結構,移除過時檔案
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-18 19:41:48 +08:00 |
鄭沛軒
|
e940d86f4a
|
feat: 暫時關閉使用次數限制系統
- 修改前端 isPremium 設定為 true,跳過使用次數檢查
- 修改後端 UsageService 調用參數為 premium 用戶
- 修復後端編譯錯誤,添加 System.Text.Json using
- 更新使用限制實施報告,添加完整修改記錄和復原步驟
- 驗證系統可無限制調用分析功能
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-18 15:10:54 +08:00 |
鄭沛軒
|
1fb7cadd52
|
feat: 新增完整的系統分析文檔和前端快取狀態顯示
前端改善:
- 新增快取狀態視覺化標籤 (💾 快取結果 / 🤖 AI 分析)
- 完善ClickableTextV2組件的大小寫屬性相容性
- 修復互動式單字查詢功能在快取場景下的顯示問題
- 改善載入狀態提示,增加時間預期說明
- 新增getWordProperty輔助函數,統一處理屬性讀取
系統文檔:
- 新增完整的功能規格文檔 (User Flow + 測試案例)
- 生成快取機制分析報告 (前端+後端)
- 建立使用限制功能實現報告
- 記錄所有檢查方法和問題解決過程
清理:
- 移除過時的環境設定文檔
- 整理專案結構
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-18 14:44:48 +08:00 |
鄭沛軒
|
c0edf93c8a
|
feat: 添加登入頁面開發模式自動填入功能
- 登入頁面自動填入測試資料 (john@mail.com / 1qaz@WSX)
- 只在開發環境生效,生產環境保持原有行為
- 添加開發模式視覺提示
- 註冊頁面保持手動輸入確保流程完整性
提升開發效率,無需每次手動輸入登入資料
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-18 02:38:52 +08:00 |
鄭沛軒
|
d69ba4ea8a
|
feat: 完成前端整合和調試優化
- 整合demo-v3功能到正式generate頁面
- 移除測試示例和調試內容
- 添加前端調試日誌協助排查問題
- 修復組件安全性檢查
- 符合原始功能規格要求
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-18 02:10:55 +08:00 |
鄭沛軒
|
76e95dbef2
|
feat: 實現互動式單字查詢系統,包含語法修正和高價值標記功能
## 主要功能
- 智能語法錯誤檢測和修正建議(9種錯誤類型)
- 高價值詞彙標記系統(片語/俚語/中高級單字)
- 三色視覺區分:🟡高價值片語 🟢高價值單字 🔵普通單字
- 成本優化:高價值詞彙免費查詢,低價值詞彙按需收費
- 字數限制提升:50字→300字
## 技術實現
- 新增 ClickableTextV2 和 GrammarCorrectionPanel 組件
- 更新 Generate 頁面整合完整功能
- 完整的設計規格文檔(API、UI線框圖、功能規格)
- 多個演示頁面展示功能效果
## 成本效益
- 一次API調用,多次免費查詢
- 預估API成本降低80-95%
- 智能收費機制精準控制成本
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-17 19:57:08 +08:00 |