# 對話記憶 - 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` ```python # 修正前 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` ```python 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 可見性設定** - 需要新增公開/私人設定 ### 環境配置 ```bash # 前端 (Port 3002) cd frontend && npm run dev # 後端 (Port 5000) cd backend && ./venv/Scripts/activate && python app.py ``` ### 測試用戶帳號 - **uthuang** (92509) - uthuang@panjit.com.tw - **ymirliu** - ymirliu@panjit.com.tw - **minjiesyu** (92453) - minjiesyu@panjit.com.tw ### 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*