dramaling-vocab-learning/backend/DramaLing.Api
鄭沛軒 da78d04b8b refactor: 清理未使用的後端服務並建立審計報告
- 移除4個未使用的服務檔案:
  • IGeminiAnalyzer.cs - 未實作的介面
  • AudioCacheService.cs - 未使用的音頻快取服務
  • AzureSpeechService.cs - 未使用的語音服務
  • UsageTrackingService.cs - 未使用的使用量追蹤服務

- 移除相關的 DI 容器註冊
- 移除空的 Services/Media/Audio/ 目錄
- 新增完整的後端服務審計報告文件
- 保留核心功能服務的所有依賴關係

編譯測試通過,功能完整保留,程式碼減少約500+行

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-07 20:38:26 +08:00
..
Configuration feat: 完成後端架構全面優化 - 階段一二 2025-09-30 03:32:51 +08:00
Controllers feat: 修復 AI 生成同義詞完整保存功能 2025-10-07 18:09:06 +08:00
Data feat: 修復 AI 生成同義詞完整保存功能 2025-10-07 18:09:06 +08:00
DramaLing.Api.Tests feat: 階段四測試架構建立完成 - 完整xUnit測試基礎設施 2025-09-30 04:08:22 +08:00
Extensions refactor: 清理未使用的後端服務並建立審計報告 2025-10-07 20:38:26 +08:00
Middleware feat: 啟用智能快取系統,實現 57,200 倍性能提升 2025-09-23 19:50:53 +08:00
Migrations feat: 修復 AI 生成同義詞完整保存功能 2025-10-07 18:09:06 +08:00
Models feat: 修復 AI 生成同義詞完整保存功能 2025-10-07 18:09:06 +08:00
Properties feat: DramaLing 完整版本 - 韓劇單字學習應用 2025-09-16 23:06:47 +08:00
Repositories feat: 實現詞彙完全掌握時自動更新複習時間功能 2025-10-07 00:29:53 +08:00
Services refactor: 清理未使用的後端服務並建立審計報告 2025-10-07 20:38:26 +08:00
Tests feat: 完成後端架構全面優化 - 階段一二 2025-09-30 03:32:51 +08:00
Utils feat: 完成AI詞彙保存功能修復與前端架構優化 2025-10-01 02:29:09 +08:00
API_DOCUMENTATION.md feat: 階段五文檔完善完成 - DramaLing後端架構全面優化計劃100%完成 2025-09-30 04:25:12 +08:00
ARCHITECTURE.md feat: 階段五文檔完善完成 - DramaLing後端架構全面優化計劃100%完成 2025-09-30 04:25:12 +08:00
DEVELOPMENT_GUIDE.md feat: 階段五文檔完善完成 - DramaLing後端架構全面優化計劃100%完成 2025-09-30 04:25:12 +08:00
DramaLing.Api.csproj feat: 完成Controllers架構統一優化與後端重啟修復 2025-09-30 05:46:20 +08:00
DramaLing.Api.http feat: DramaLing 完整版本 - 韓劇單字學習應用 2025-09-16 23:06:47 +08:00
Program.cs feat: 完成資料庫命名規範統一 - 全面實施snake_case標準 2025-09-30 16:57:44 +08:00
README.md feat: 階段三 Services 文檔化完成 - 統一命名與完整索引 2025-09-30 03:53:53 +08:00
appsettings.OptionsVocabulary.json feat: 完成選項詞彙庫功能開發 2025-09-29 17:24:03 +08:00
appsettings.json feat: 完成資料庫命名規範統一 - 全面實施snake_case標準 2025-09-30 16:57:44 +08:00

README.md

DramaLing API

版本: 1.0 框架: ASP.NET Core 8.0 架構: Clean Architecture + Domain-Driven Design

🚀 專案概述

DramaLing API 是一個英語學習平台的後端服務,提供 AI 驅動的句子分析、圖片生成、語音合成等功能。採用現代化的 .NET 8 架構,遵循 Clean Architecture 和 Domain-Driven Design 原則。

核心功能

  • 🤖 AI 語言分析: 基於 Gemini AI 的句子語意分析
  • 🎨 智能圖片生成: 結合 Replicate AI 的插畫生成
  • 🎵 語音合成: Azure Speech Services 整合
  • 📚 詞彙管理: 智能單字卡系統
  • 🔐 用戶認證: Supabase JWT 認證
  • 💾 混合快取: 記憶體 + 分散式快取策略

📁 專案架構

DramaLing.Api/
├── Controllers/           # API 控制器
├── Services/             # 業務服務層
│   ├── AI/              # AI 相關服務
│   ├── Core/            # 核心業務服務
│   ├── Infrastructure/  # 基礎設施服務
│   ├── Media/           # 多媒體服務
│   ├── Storage/         # 儲存服務
│   └── Vocabulary/      # 詞彙服務
├── Repositories/         # 數據訪問層
├── Data/                # Entity Framework 配置
├── Models/              # 數據模型
│   ├── Entities/        # 實體模型
│   ├── DTOs/            # 數據傳輸物件
│   └── Configuration/   # 配置類別
├── Extensions/          # 擴展方法
├── Middleware/          # 中間件
├── Configuration/       # 配置說明
└── Tests/              # 測試專案

🔧 技術棧

核心框架

  • .NET 8: 最新 LTS 版本
  • ASP.NET Core 8: Web API 框架
  • Entity Framework Core: ORM 數據訪問
  • SQLite: 輕量級資料庫

外部服務整合

  • Gemini AI: 語言理解和分析
  • Replicate AI: 圖片生成服務
  • Azure Speech Services: 語音合成
  • Supabase: 用戶認證和資料庫

架構模式

  • Clean Architecture: 分層架構設計
  • Repository Pattern: 數據訪問抽象
  • Facade Pattern: 服務組合簡化
  • Strategy Pattern: 快取策略管理

🚀 快速開始

系統需求

  • .NET 8 SDK
  • SQLite (或 SQL Server for production)

安裝步驟

  1. Clone 專案

    git clone <repository-url>
    cd dramaling-vocab-learning/backend/DramaLing.Api
    
  2. 安裝依賴

    dotnet restore
    
  3. 配置環境變數

    export DRAMALING_GEMINI_API_KEY="your-gemini-api-key"
    export DRAMALING_SUPABASE_URL="your-supabase-url"
    export DRAMALING_SUPABASE_JWT_SECRET="your-jwt-secret"
    
  4. 執行資料庫遷移

    dotnet ef database update
    
  5. 啟動開發伺服器

    dotnet run
    
  6. 訪問 Swagger UI

    https://localhost:7001/swagger
    

📚 文檔索引

架構文檔

API 文檔

  • Swagger UI: /swagger - 交互式 API 文檔
  • OpenAPI 規範: /swagger/v1/swagger.json - API 規範檔案

🏗️ 服務架構概覽

AI 服務群組

  • GeminiService (Facade) → 統一 AI 功能入口
    • SentenceAnalyzer → 句子語意分析
    • ImageDescriptionGenerator → 圖片描述生成
    • GeminiClient → API 通訊客戶端

圖片生成服務群組

  • ImageGenerationOrchestrator (Facade) → 圖片生成協調器
    • ImageGenerationWorkflow → 主要生成流程
    • GenerationStateManager → 狀態管理
    • ImageSaveManager → 圖片儲存管理

快取服務群組

  • HybridCacheService (Facade) → 混合快取服務
    • MemoryCacheProvider → 記憶體快取
    • DistributedCacheProvider → 分散式快取
    • CacheStrategyManager → 快取策略管理

🔒 認證與授權

JWT 認證流程

  1. 用戶透過 Supabase 登入
  2. 取得 JWT Token
  3. API 請求時在 Header 攜帶 Token
  4. 中間件驗證 Token 有效性

API 使用範例

# 設定認證 Token
export TOKEN="your-jwt-token"

# 呼叫受保護的 API
curl -H "Authorization: Bearer $TOKEN" \
     https://localhost:7001/api/analysis/sentence

📊 效能特色

快取策略

  • 記憶體快取: 熱點資料快速存取
  • 分散式快取: 跨實例資料共享
  • 資料庫快取: 查詢結果暫存

異步處理

  • 所有 I/O 操作都採用異步模式
  • AI API 呼叫採用非阻塞設計
  • 圖片生成支援背景處理

架構優勢

  • 模組化設計: 服務間低耦合
  • 可測試性: 完整的依賴注入支援
  • 可擴展性: 新功能易於集成

🧪 測試

執行測試

# 執行所有測試
dotnet test

# 執行特定類型測試
dotnet test --filter "Category=Unit"

# 產生覆蓋率報告
dotnet test --collect:"XPlat Code Coverage"

測試覆蓋範圍

  • 單元測試: 服務層邏輯測試
  • 整合測試: API 端點測試
  • 效能測試: 關鍵路徑基準測試

🔄 CI/CD

GitHub Actions

自動化構建、測試、部署流程:

  • 程式碼品質檢查
  • 單元測試執行
  • 安全性掃描
  • Docker 映像構建

部署環境

  • 開發環境: 自動部署到測試伺服器
  • 生產環境: 手動審核後部署

📈 監控與日誌

日誌等級

  • Debug: 開發除錯資訊
  • Information: 正常業務流程
  • Warning: 潛在問題警告
  • Error: 錯誤和例外

效能監控

  • API 回應時間監控
  • 資料庫查詢性能追蹤
  • 快取命中率統計

🔧 開發指南

新增功能步驟

  1. 在適當的 Services 子目錄建立服務
  2. 實作介面和具體類別
  3. 在 ServiceCollectionExtensions 註冊服務
  4. 撰寫單元測試
  5. 更新相關文檔

程式碼規範

  • 遵循 C# 編程慣例
  • 使用 async/await 進行異步操作
  • 適當的錯誤處理和日誌記錄
  • 完整的 XML 文檔註解

🤝 貢獻指南

提交流程

  1. Fork 專案並建立功能分支
  2. 遵循程式碼規範撰寫代碼
  3. 確保所有測試通過
  4. 提交 Pull Request

問題回報

請使用 GitHub Issues 回報問題,包含:

  • 問題描述
  • 重現步驟
  • 預期行為
  • 實際結果

📄 授權

本專案採用 MIT 授權協議。


👥 開發團隊

維護者: DramaLing 開發團隊 架構重構: 2025-09-29 ~ 2025-09-30 最後更新: 2025-09-30


🔗 相關連結


🎯 專案狀態: 生產就緒 📊 測試覆蓋率: 目標 80%+ 🚀 架構版本: Clean Architecture 2.0