Files
TODO_list_system/CONVERSATION_MEMORY.md
beabigegg b0c86302ff 1ST
2025-08-29 16:25:46 +08:00

3.3 KiB

對話記憶 - PANJIT To-Do List System V1

最新狀態 (2025-08-29)

已完成的主要功能

  1. Fire Email 功能修復 - 修正 AD 帳號轉換郵件地址的問題
  2. 重複錯誤提示修復 - 解決 axios 攔截器重複顯示錯誤的問題
  3. 增強型郵件通知設定 - 支援彈性提醒天數、週/月摘要
  4. CORS 網路錯誤修復 - 新增 port 3002 支援
  5. 通知系統實作 - 完整的通知顯示與互動功能
  6. 通知面板互動功能 - 查看、標記已讀等按鈕功能完成

核心技術架構

  • 前端: Next.js 14 + TypeScript + Material-UI + React Hook Form
  • 後端: Flask + SQLAlchemy + JWT + MySQL
  • 認證: LDAP 整合 + JWT Token 刷新機制
  • 郵件: SMTP 服務整合 (mail.panjit.com.tw:25)
  • 資料庫: MySQL with enhanced notification models

重要修復記錄

1. Fire Email 核心問題修復

檔案: backend/utils/email_service.py:_get_user_email

# 修正前
user_info.get('mail')  # 錯誤的欄位名稱

# 修正後  
user_info.get('email')  # 正確的欄位名稱

2. 通知系統 API 實作

檔案: backend/routes/notifications.py

  • 新增 /api/notifications/ - 獲取用戶通知
  • 新增 /api/notifications/mark-read - 標記單個通知已讀
  • 新增 /api/notifications/mark-all-read - 標記全部通知已讀

3. 前端通知面板功能

檔案: frontend/src/components/layout/NotificationPanel.tsx

  • 實作查看按鈕 - 導航到對應 todo
  • 實作標記已讀按鈕 - 更新通知狀態
  • 實作全部標記已讀 - 批量更新
  • 實作查看全部 - 導航到主頁

資料庫模型增強

檔案: backend/models.py

class TodoUserPref(db.Model):
    monthly_summary_enabled = db.Column(db.Boolean, default=False)
    reminder_days_before = db.Column(JSON, default=lambda: [1, 3])
    weekly_summary_time = db.Column(db.String(5), default='09:00')
    monthly_summary_time = db.Column(db.String(5), default='09:00')
    # ... 其他增強欄位

已知問題與待實作功能

  1. 公開 Todo 功能 - 目前追蹤人角色缺乏意義,需要實作公開 todo 功能
  2. 通知已讀狀態持久化 - 目前僅在記憶體中,需要資料庫儲存
  3. Todo 可見性設定 - 需要新增公開/私人設定

環境配置

# 前端 (Port 3002)
cd frontend && npm run dev

# 後端 (Port 5000)  
cd backend && ./venv/Scripts/activate && python app.py

測試用戶帳號

API 端點清單

  • GET /api/notifications/ - 獲取通知清單
  • POST /api/notifications/mark-read - 標記單個通知已讀
  • POST /api/notifications/mark-all-read - 標記全部通知已讀
  • POST /api/notifications/fire-email - 發送緊急郵件
  • GET/PATCH /api/notifications/settings - 通知設定管理

重要設定檔案

  • 後端 .env: 包含 CORS_ORIGINS 設定 (支援 3000,3001,3002)
  • 前端 api.ts: 包含完整的 notificationsApi 客戶端
  • 資料庫連線: mysql.theaken.com:33306/db_A060

開發原則提醒

  1. 必須提供完整可執行的程式碼
  2. 所有功能都需要單元測試
  3. 確保 Windows 環境相容性
  4. 遵循 MUI 設計規範
  5. 實作適當的錯誤處理

最後更新: 2025-08-29 16:19