簡潔高效的顧客問題管理解決方案
ClarityDesk 是一個基於 ASP.NET Core 8 Razor Pages 開發的顧客問題紀錄追蹤系統,提供直觀的介面讓團隊快速記錄、追蹤和管理客戶回報的問題。系統整合 LINE Login 身份驗證,讓使用者可以快速登入並開始使用。
-
回報單管理 (使用者故事 1)
- 建立、編輯、刪除回報單
- 多條件篩選 (狀態、優先級、日期範圍、關鍵字)
- 分頁顯示,支援大量資料
- 即時統計資訊 (待處理、處理中、已完成)
-
LINE Login 整合 (使用者故事 2)
- 透過 LINE 帳號快速註冊與登入
- 自動同步 LINE 個人資料 (頭像、顯示名稱)
- 安全的 OAuth 2.0 流程
-
使用者權限管理 (使用者故事 3)
- 角色管理 (普通使用者 / 管理人員)
- 帳號啟用/停用控制
- 管理員專屬功能保護
-
問題所屬單位維護 (使用者故事 4)
- 自訂問題分類單位
- 為單位指派預設處理人員
- 軟刪除機制,保留歷史資料
- 響應式設計: 支援桌面、平板、手機多種螢幕尺寸 (320px - 1920px)
- 商務白風格: 簡潔專業的 UI 設計,使用淺藍色點綴
- 效能最佳化:
- Response Compression (Gzip/Brotli)
- 靜態檔案快取 (365 天)
- 資料庫索引最佳化
- 記憶體快取 (統計資訊、單位清單)
- 安全性:
- HTTPS 強制跳轉
- XSS/CSRF 防護
- 安全標頭設定
- 框架: ASP.NET Core 8.0 (Razor Pages)
- 語言: C# 12
- 資料庫: Azure SQL Database
- ORM: Entity Framework Core 8.0 (Code First)
- 快取: IMemoryCache (ASP.NET Core 內建)
- UI 框架: Bootstrap 5.3
- JavaScript: jQuery 3.7 + 原生 JavaScript
- 驗證: jQuery Validation + Bootstrap Validation
- OAuth 2.0: LINE Login
- Session: Cookie-based Authentication
- 單元測試: xUnit
- 斷言庫: FluentAssertions
- 模擬庫: Moq
- 平台: Windows Server + IIS 10.0+
- 環境: .NET 8.0 Runtime
- .NET 8.0 SDK
- SQL Server 或 Azure SQL Database
- LINE Developers Account (用於 LINE Login)
- Visual Studio 2022 或 VS Code
git clone https://github.com/Sen-CaPoo/ClarityDesk.git
cd ClarityDesk編輯 appsettings.Development.json:
{
"ConnectionStrings": {
"DefaultConnection": "Server=your-server.database.windows.net;Database=ClarityDesk;User Id=your-username;Password=your-password;Encrypt=True;"
}
}- 前往 LINE Developers Console
- 建立新的 Channel (LINE Login)
- 取得 Channel ID 和 Channel Secret
- 設定 Callback URL:
https://your-domain/signin-line
編輯 appsettings.Development.json:
{
"LineLogin": {
"ChannelId": "your-channel-id",
"ChannelSecret": "your-channel-secret"
}
}dotnet ef database updatedotnet run開啟瀏覽器訪問 https://localhost:5001
系統會自動建立預設管理員帳號與 3 個預設單位:
- 單位: 客服部、技術部、業務部
- 管理員: 首次透過 LINE Login 登入後,需手動升級為管理員角色
-
登入系統
- 點擊「使用 LINE 登入」
- 授權 LINE Login 權限
- 自動建立使用者帳號
-
建立回報單
- 導覽至「回報單管理」
- 點擊「新增回報單」
- 填寫問題標題、內容、客戶資訊
- 選擇緊急程度與所屬單位
- 指派處理人員
-
管理回報單
- 檢視所有回報單列表
- 使用篩選條件快速找到特定回報單
- 編輯回報單資訊
- 更新處理狀態 (待處理 → 處理中 → 已完成)
-
使用者權限管理
- 導覽至「系統管理」→「使用者權限管理」
- 查看所有註冊使用者
- 變更使用者角色 (普通使用者 ↔ 管理人員)
- 啟用/停用使用者帳號
-
問題所屬單位維護
- 導覽至「系統管理」→「問題所屬單位維護」
- 新增/編輯/刪除單位
- 為單位指派預設處理人員
dotnet test Tests/ClarityDesk.UnitTestsdotnet test Tests/ClarityDesk.IntegrationTestsdotnet test /p:CollectCoverage=true /p:CoverletOutputFormat=opencover詳細部署說明請參考 docs/deployment/DEPLOYMENT.md
# 1. 發佈專案
dotnet publish -c Release -o ./publish
# 2. 將 publish 資料夾內容複製到 IIS 網站目錄
# 3. 確保 IIS 已安裝 ASP.NET Core Hosting Bundle
# 4. 設定應用程式集區為「無受管理的程式碼」
# 5. 重新啟動 IIS完整檢查清單請見 docs/deployment/IIS-DEPLOYMENT-CHECKLIST.md
ClarityDesk/
├── Pages/ # Razor Pages (UI 層)
│ ├── Issues/ # 回報單管理頁面
│ ├── Admin/ # 管理功能頁面
│ ├── Account/ # 身份驗證頁面
│ └── Shared/ # 共享版面配置與元件
├── Models/ # 資料模型
│ ├── Entities/ # EF Core 實體
│ ├── DTOs/ # 資料傳輸物件
│ ├── ViewModels/ # 頁面顯示模型
│ └── Enums/ # 列舉型別
├── Services/ # 服務層 (業務邏輯)
│ ├── Interfaces/ # 服務介面
│ └── *.cs # 服務實作
├── Data/ # 資料存取層
│ ├── Configurations/ # EF Core Entity Configurations
│ └── Migrations/ # EF Core Migrations
├── Infrastructure/ # 基礎設施層
│ ├── Authentication/ # LINE Login 相關
│ ├── Middleware/ # 自訂 Middleware
│ └── TagHelpers/ # 自訂 Tag Helpers
├── wwwroot/ # 靜態資源
│ ├── css/ # 樣式表
│ ├── js/ # JavaScript
│ └── lib/ # 前端套件
├── docs/ # 專案文件
│ ├── deployment/ # 部署文件
│ ├── development/ # 開發指南
│ ├── changelogs/ # 變更記錄
│ └── *.md # 使用者手冊等
├── scripts/ # 腳本工具
│ └── *.ps1 # PowerShell 腳本
├── database/ # 資料庫腳本
│ └── *.sql # SQL 腳本
├── specs/ # 規格文件
│ └── 001-customer-issue-tracker/ # 功能規格
└── Tests/ # 測試專案
├── UnitTests/ # 單元測試
└── IntegrationTests/ # 整合測試
詳細貢獻指南請參考 docs/development/CONTRIBUTING.md
- 部署文件: docs/deployment/ - 包含完整的部署指南與檢查清單
- 開發指南: docs/development/ - 包含貢獻指南與 AI Agent 協作指引
- 變更記錄: docs/changelogs/ - 各功能的變更歷史記錄
- 使用者手冊: docs/user-manual.md - 完整的使用者操作指南
- 規格文件: specs/ - 詳細的功能規格與 API 定義
更多文件請參考 docs/README.md
本專案採用 MIT 授權條款 - 詳見 LICENSE 檔案
- Sen-CaPoo - Initial work - GitHub
- 感謝 ASP.NET Core 團隊提供強大的框架
- 感謝 Bootstrap 提供優秀的 UI 組件
- 感謝 LINE Developers 提供 LINE Login 服務
如有任何問題或建議,歡迎透過以下方式聯絡:
- Issue: GitHub Issues
- Email: support@claritydesk.com
ClarityDesk - 讓問題管理變得更簡單 ✨