Commit Graph

27 Commits

Author SHA1 Message Date
鄭沛軒 8290b35b0c fix: 完成第二次片語俚語檢查修正
修正遺漏項目:
1. 前端關鍵邏輯修正
   - IsPhrase → IsIdiom 屬性檢查統一
   - setPhrasePopup → setIdiomPopup 事件處理統一
   - 註釋「片語」→「慣用語」

2. 後端數據庫實體修正
   - PhrasesDetected → IdiomsDetected
   - 註釋更新為「檢測到的慣用語」

3. 新增第二次檢查報告
   - 第二次片語俚語檢查修正報告.md
   - 包含完整執行結果和最終驗證

系統現已100%統一使用「慣用語(idiom)」術語
功能代碼無任何遺漏,僅剩不影響功能的歷史遷移文件

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-22 18:56:22 +08:00
鄭沛軒 43aa9bfdd0 feat: 完成AIController重建並提交修正報告
主要變更:
1. 重建 AIController.cs
   - 移除快取系統依賴
   - 簡化為直接 AI 調用
   - 保留錯誤處理機制

2. 完成前端慣用語統一
   - page.tsx 和 ClickableTextV2.tsx 術語統一
   - 所有 phrase 相關術語改為 idiom

3. 新增完整修正報告
   - 片語俚語統一為慣用語修正報告.md
   - 包含執行結果和測試驗證

系統現已完成術語統一和快取移除

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-22 18:21:38 +08:00
鄭沛軒 9d00035fdf feat: 統一片語/俚語為慣用語並移除快取系統
主要變更:
1. 前端術語統一
   - PhrasePopup → IdiomPopup
   - phraseCount → idiomCount
   - isPhrase → isIdiom
   - showPhrasesInline → showIdiomsInline
   - UI文字統一為「慣用語」

2. 後端 DTO 統一
   - IncludePhraseDetection → IncludeIdiomDetection
   - IsPhrase → IsIdiom
   - Phrases → Idioms

3. 移除快取系統
   - 移除 AIController 中的快取邏輯
   - 移除快取服務依賴注入
   - 每次都直接調用 Gemini API

4. 重建 GeminiService
   - 簡化 API 調用邏輯
   - 移除所有 mock 數據
   - 直接使用 AI 回應

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-22 18:17:42 +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
鄭沛軒 f60570390e refactor: 移除後端高價值詞彙判定邏輯,完全交由前端處理
 移除的高價值判定方法:
- PostProcessWordAnalysisWithUserLevel (重新判定高價值)
- ExtractHighValueWords (提取高價值詞彙)
- IsHighValueWordDynamic (動態判定高價值)

 簡化analyze-sentence API:
- 移除HighValueWords欄位回應
- 移除高價值重新處理邏輯
- 直接回傳AI原始分析結果

🎯 責任分離:
- 後端:純AI分析、翻譯、語法修正
- 前端:高價值判定基於CEFR等級比較

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-21 22:38:02 +08:00
鄭沛軒 500d70839b refactor: 大幅清理AIController和GeminiService未使用的API
 保留的核心功能:
- analyze-sentence API (前端主要功能)

 刪除的未使用API:
- generate API (AI生成詞卡)
- generate/{taskId}/save API (保存生成詞卡)
- validate-card API (詞卡驗證)
- query-word API (單字查詢)
- cache-stats API (快取統計)
- cache-cleanup API (快取清理)
- usage-stats API (使用統計)

🧹 清理GeminiService中對應的未使用方法和DTO類別
📊 代碼量減少約336行,只保留核心句子分析功能

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-21 22:32:47 +08:00
鄭沛軒 be1126e7db refactor: 移除AIController中的所有測試和假資料API
- 刪除test/generate測試端點和TestGenerateCards方法
- 刪除test/save測試端點和TestSaveCards方法
- 移除GenerateMockCards假資料生成方法
- 移除TestSaveCardsRequest測試用請求類別
- 清理generate API中的mock邏輯,改為直接錯誤回應
- 提升API安全性,移除無認證的測試端點

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-21 21:47:26 +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
鄭沛軒 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
鄭沛軒 8a889a9d9c feat: 完成後端語音服務架構與測試文檔
- 實現 AudioController API 端點
- 建立 Azure Speech Services 整合架構
- 新增音頻快取、評估記錄、用戶偏好資料模型
- 完成服務依賴注入配置
- 建立完整的測試案例規格書
- 生成詳細的測試執行報告
- 建立語音功能技術規格文檔

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-19 13:33:31 +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
鄭沛軒 1b937f85c0 refactor: 大幅清理 AIController 冗餘代碼並優化架構
主要優化:
- 移除 AnalyzeLowValueWord 重複方法 (70+ 行)
- 移除 IsHighValueWord 複雜判定邏輯
- 移除 GetHighValueWordAnalysis 假資料方法
- 完全重寫 QueryWord 方法,從 55 行簡化到 25 行

架構改善:
- 統一使用 GeminiService.AnalyzeWordAsync 進行詞彙分析
- 移除高/低價值詞彙的複雜分支邏輯
- Controller 職責單純化,只負責 HTTP 請求處理
- 遵循 DRY 原則,避免重複代碼

代碼品質提升:
- 總行數減少約 200 行 (-14%)
- 移除 3 個重複方法
- 簡化錯誤處理邏輯
- 提升代碼可讀性和維護性

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-18 20:59:13 +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
鄭沛軒 63b1018d97 fix: 完全修復快取資料結構不一致問題和互動式單字查詢功能
- 修復快取API回應中sentenceMeaning大小寫不一致問題
- 完善ClickableTextV2組件對快取資料的屬性讀取相容性
- 新增前端快取狀態顯示(💾 快取結果 / 🤖 AI 分析)
- 統一JSON序列化設定,使用camelCase命名策略
- 新增getWordProperty輔助函數,支援大小寫屬性名稱
- 修復單字彈窗中所有屬性的讀取邏輯
- 完善語法修正和詞彙分析的資料格式相容性
- 新增詳細的系統功能分析文檔

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-18 14:43:53 +08:00
鄭沛軒 95097cf3f1 feat: 實現真正的AI驅動互動式單字查詢系統
## 主要功能
- 整合真正的Gemini AI進行句子分析和翻譯
- 實現智能語法錯誤檢查和修正建議
- 完整的高價值詞彙標記系統(片語/單字/普通)
- 24小時快取機制提升性能和降低成本
- 互動式單字查詢:高價值免費,低價值收費
- 使用次數限制:免費用戶5次/3小時

## 技術實現
- 新增真正的Gemini AI句子分析服務
- 實現快取服務和背景清理任務
- 完整的前後端API整合
- 語法修正面板和互動文字組件
- 使用統計追蹤和限制機制

## 系統架構
- 後端:真正的AI分析 + 快取 + 統計
- 前端:互動式UI + 狀態管理 + 錯誤處理
- 資料庫:快取表 + 使用統計表

## 成本優化
- 預分析高價值詞彙,後續免費查詢
- 24小時快取避免重複AI調用
- 智能收費機制:高價值免費,低價值按需收費
- 預估API成本降低80-95%

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-18 02:09:56 +08:00
鄭沛軒 448883ff97 feat: 實現 AI 服務整合和前後端連接
- 整合 Google Gemini API 服務
- 添加測試端點支援無認證調用
- 實現前端 API 調用和資料格式轉換
- 完善錯誤處理和模擬資料回退
- 添加詞卡保存到資料庫功能
- 配置 User Secrets 安全管理 API 金鑰
- 優化 AI 服務條件判斷邏輯

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-17 16:08:37 +08:00
鄭沛軒 715b735c4d feat: 實現自動「未分類」預設卡組功能
- 新增 CardSet.IsDefault 欄位標識預設卡組
- 實現用戶註冊時自動創建「未分類」卡組
- 添加 ensure-default API 端點確保預設卡組存在
- 優化詞卡創建邏輯,支援自動歸類到預設卡組
- 改善前端表單處理,智能選擇預設卡組
- 修復預設卡組顯示對比度問題

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-17 13:41:30 +08:00
鄭沛軒 331e747ef3 feat: 啟動詞卡管理功能開發,完成後端 API 驗證
🚀 第一階段開發成果:
- 成功驗證 CardSets 和 Flashcards API 端點
- 修復 JSON 循環引用問題(ReferenceHandler.IgnoreCycles)
- 建立基礎測試資料:商務英語詞卡集合
- 創建範例詞卡:negotiate, meeting, presentation
- 驗證真實資料庫 CRUD 操作

🔧 技術改進:
- 配置 JSON 序列化選項防止循環引用
- 完整的錯誤日誌系統發揮作用
- 資料庫關聯正常運作

📋 下一步:前端整合,讓用戶看到真實資料

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-17 02:48:02 +08:00
鄭沛軒 b9f6eb1237 fix: 修復 JWT token 驗證問題
- 統一 JWT 密鑰配置,解決簽名驗證失敗
- 修復 DRAMALING_JWT_SECRET 與 DRAMALING_SUPABASE_JWT_SECRET 不一致問題
- 現在 /api/auth/status 端點正常工作
- JWT token 生成和驗證使用相同密鑰

問題:IDX10503: Signature validation failed. Token does not have a kid.
解決:統一 GenerateJwtToken 和 Program.cs 中的密鑰變數

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-17 01:21:20 +08:00
鄭沛軒 e5cb336667 feat: 實作完整錯誤日誌系統
- 新增 ErrorHandlingMiddleware 全域錯誤處理
- 升級日誌配置到 Debug 層級
- 添加詳細的認證流程日誌
- 改進 AuthController 錯誤處理
- 包含請求詳情和錯誤堆疊追蹤
- 支援結構化日誌記錄

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-17 00:44:29 +08:00
鄭沛軒 c94cf75838 feat: DramaLing 完整版本 - 韓劇單字學習應用
🚀 主要功能:
- 前後端分離架構(Next.js + .NET Core)
- 完整用戶認證系統(註冊、登入、JWT)
- 單字卡學習功能
- AI 輔助生成單字卡
- 多種學習模式(翻卡、選擇題、拼寫)
- 學習進度追蹤
- 響應式設計

🏗️ 技術棧:
- Frontend: Next.js 15, TypeScript, Tailwind CSS
- Backend: .NET Core 8, Entity Framework, SQLite
- 認證: JWT Bearer Token
- AI: Google Gemini API
- 資料庫: SQLite(測試)

🌟 特色:
- 完整的 CRUD 操作
- 安全的環境變數配置
- 乾淨的代碼結構
- 完善的錯誤處理
- RESTful API 設計

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-16 23:06:47 +08:00