Files
Meeting_Assistant/openspec/changes/archive/2025-12-10-add-meeting-assistant-mvp/tasks.md
egg 8b6184ecc5 feat: Meeting Assistant MVP - Complete implementation
Enterprise Meeting Knowledge Management System with:

Backend (FastAPI):
- Authentication proxy with JWT (pj-auth-api integration)
- MySQL database with 4 tables (users, meetings, conclusions, actions)
- Meeting CRUD with system code generation (C-YYYYMMDD-XX, A-YYYYMMDD-XX)
- Dify LLM integration for AI summarization
- Excel export with openpyxl
- 20 unit tests (all passing)

Client (Electron):
- Login page with company auth
- Meeting list with create/delete
- Meeting detail with real-time transcription
- Editable transcript textarea (single block, easy editing)
- AI summarization with conclusions/action items
- 5-second segment recording (efficient for long meetings)

Sidecar (Python):
- faster-whisper medium model with int8 quantization
- ONNX Runtime VAD (lightweight, ~20MB vs PyTorch ~2GB)
- Chinese punctuation processing
- OpenCC for Traditional Chinese conversion
- Anti-hallucination parameters
- Auto-cleanup of temp audio files

OpenSpec:
- add-meeting-assistant-mvp (47 tasks, archived)
- add-realtime-transcription (29 tasks, archived)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-10 20:17:44 +08:00

68 lines
3.2 KiB
Markdown

## 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