## 1. Middleware Server Foundation - [x] 1.1 Initialize Python project with FastAPI, uvicorn, python-dotenv - [x] 1.2 Create .env.example with all required environment variables - [x] 1.3 Implement database connection pool with mysql-connector-python - [x] 1.4 Create table initialization script (meeting_users, meeting_records, meeting_conclusions, meeting_action_items) - [x] 1.5 Configure CORS middleware for Electron client - [x] 1.6 Add health check endpoint GET /api/health ## 2. Authentication - [x] 2.1 Implement POST /api/login proxy to PJ-Auth API - [x] 2.2 Add admin role detection for ymirliu@panjit.com.tw - [x] 2.3 Create JWT validation middleware for protected routes - [x] 2.4 Handle token expiration with appropriate error codes ## 3. Meeting CRUD - [x] 3.1 Implement POST /api/meetings (create meeting) - [x] 3.2 Implement GET /api/meetings (list meetings with user filtering) - [x] 3.3 Implement GET /api/meetings/:id (get meeting with conclusions and action items) - [x] 3.4 Implement PUT /api/meetings/:id (update meeting) - [x] 3.5 Implement DELETE /api/meetings/:id (delete meeting cascade) - [x] 3.6 Implement system code generation (C-YYYYMMDD-XX, A-YYYYMMDD-XX) ## 4. AI Summarization - [x] 4.1 Implement POST /api/ai/summarize endpoint - [x] 4.2 Configure Dify API client with timeout and retry - [x] 4.3 Parse Dify response into conclusions and action_items structure - [x] 4.4 Handle partial data (empty owner/due_date) ## 5. Excel Export - [x] 5.1 Create Excel template with placeholders - [x] 5.2 Implement GET /api/meetings/:id/export endpoint - [x] 5.3 Implement placeholder replacement ({{subject}}, {{time}}, etc.) - [x] 5.4 Implement dynamic row insertion for conclusions and action items ## 6. Electron Client - Core - [x] 6.1 Initialize Electron project with electron-builder - [x] 6.2 Create main window and basic navigation - [x] 6.3 Implement login page with auth API integration - [x] 6.4 Implement token storage and auto-refresh interceptor ## 7. Electron Client - Meeting UI - [x] 7.1 Create meeting list page - [x] 7.2 Create meeting creation form (metadata fields) - [x] 7.3 Create dual-panel meeting view (transcript left, notes right) - [x] 7.4 Implement conclusion/action item editing with manual completion UI - [x] 7.5 Add export button with download handling ## 8. Transcription Engine - [x] 8.1 Create Python sidecar project with faster-whisper and OpenCC - [x] 8.2 Implement audio input capture - [x] 8.3 Implement transcription with int8 model - [x] 8.4 Implement OpenCC Traditional Chinese conversion - [x] 8.5 Set up IPC communication between Electron and sidecar - [x] 8.6 Package sidecar with PyInstaller ## 9. Testing - [x] 9.1 Unit tests: DB connection, table creation - [x] 9.2 Unit tests: Dify proxy with mock responses - [x] 9.3 Unit tests: Admin role detection - [x] 9.4 Integration test: Auth flow with token refresh - [x] 9.5 Integration test: Full meeting cycle (create → transcribe → summarize → save → export) ## 10. Deployment Preparation - [x] 10.1 Create requirements.txt with all dependencies - [x] 10.2 Create deployment documentation - [x] 10.3 Configure electron-builder for portable target - [x] 10.4 Verify faster-whisper performance on i5/8GB hardware