Files
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

3.2 KiB

1. Middleware Server Foundation

  • 1.1 Initialize Python project with FastAPI, uvicorn, python-dotenv
  • 1.2 Create .env.example with all required environment variables
  • 1.3 Implement database connection pool with mysql-connector-python
  • 1.4 Create table initialization script (meeting_users, meeting_records, meeting_conclusions, meeting_action_items)
  • 1.5 Configure CORS middleware for Electron client
  • 1.6 Add health check endpoint GET /api/health

2. Authentication

  • 2.1 Implement POST /api/login proxy to PJ-Auth API
  • 2.2 Add admin role detection for ymirliu@panjit.com.tw
  • 2.3 Create JWT validation middleware for protected routes
  • 2.4 Handle token expiration with appropriate error codes

3. Meeting CRUD

  • 3.1 Implement POST /api/meetings (create meeting)
  • 3.2 Implement GET /api/meetings (list meetings with user filtering)
  • 3.3 Implement GET /api/meetings/:id (get meeting with conclusions and action items)
  • 3.4 Implement PUT /api/meetings/:id (update meeting)
  • 3.5 Implement DELETE /api/meetings/:id (delete meeting cascade)
  • 3.6 Implement system code generation (C-YYYYMMDD-XX, A-YYYYMMDD-XX)

4. AI Summarization

  • 4.1 Implement POST /api/ai/summarize endpoint
  • 4.2 Configure Dify API client with timeout and retry
  • 4.3 Parse Dify response into conclusions and action_items structure
  • 4.4 Handle partial data (empty owner/due_date)

5. Excel Export

  • 5.1 Create Excel template with placeholders
  • 5.2 Implement GET /api/meetings/:id/export endpoint
  • 5.3 Implement placeholder replacement ({{subject}}, {{time}}, etc.)
  • 5.4 Implement dynamic row insertion for conclusions and action items

6. Electron Client - Core

  • 6.1 Initialize Electron project with electron-builder
  • 6.2 Create main window and basic navigation
  • 6.3 Implement login page with auth API integration
  • 6.4 Implement token storage and auto-refresh interceptor

7. Electron Client - Meeting UI

  • 7.1 Create meeting list page
  • 7.2 Create meeting creation form (metadata fields)
  • 7.3 Create dual-panel meeting view (transcript left, notes right)
  • 7.4 Implement conclusion/action item editing with manual completion UI
  • 7.5 Add export button with download handling

8. Transcription Engine

  • 8.1 Create Python sidecar project with faster-whisper and OpenCC
  • 8.2 Implement audio input capture
  • 8.3 Implement transcription with int8 model
  • 8.4 Implement OpenCC Traditional Chinese conversion
  • 8.5 Set up IPC communication between Electron and sidecar
  • 8.6 Package sidecar with PyInstaller

9. Testing

  • 9.1 Unit tests: DB connection, table creation
  • 9.2 Unit tests: Dify proxy with mock responses
  • 9.3 Unit tests: Admin role detection
  • 9.4 Integration test: Auth flow with token refresh
  • 9.5 Integration test: Full meeting cycle (create → transcribe → summarize → save → export)

10. Deployment Preparation

  • 10.1 Create requirements.txt with all dependencies
  • 10.2 Create deployment documentation
  • 10.3 Configure electron-builder for portable target
  • 10.4 Verify faster-whisper performance on i5/8GB hardware