Files
Meeting_Assistant/openspec/project.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

2.8 KiB

Project Context

Purpose

Enterprise meeting knowledge management solution that automates meeting transcription and generates structured summaries. Solves the time-consuming problem of manual meeting notes by using edge AI for speech-to-text and LLM for intelligent summarization with action item tracking.

Tech Stack

  • Frontend: Electron (edge computing for offline transcription)
  • Backend: Python FastAPI (middleware server)
  • Database: MySQL (shared instance at mysql.theaken.com:33306)
  • AI/ML:
    • faster-whisper (int8) for local speech-to-text
    • OpenCC for Traditional Chinese conversion
    • Dify LLM for summarization
  • Key Libraries: mysql-connector-python, fastapi, requests, openpyxl, PyInstaller

Project Conventions

Code Style

  • Database tables must use meeting_ prefix
  • System IDs follow format: C-YYYYMMDD-XX (conclusions), A-YYYYMMDD-XX (action items)
  • API endpoints use /api/ prefix
  • Environment variables for sensitive config (DB credentials, API keys)

Architecture Patterns

  • Three-tier architecture: Electron Client → FastAPI Middleware → MySQL/Dify
  • Security: DB connections and API keys must NOT be in Electron client; all secrets stay in middleware
  • Edge Computing: Speech-to-text runs locally in Electron for offline capability
  • Proxy Pattern: Middleware proxies auth requests to external Auth API

Testing Strategy

  • Unit Tests: DB connectivity, Dify proxy, admin role detection
  • Integration Tests: Auth flow with token refresh, full meeting cycle (create → record → summarize → save → export)
  • Deployment Checklist: Environment validation, table creation, package verification

Git Workflow

  • Feature branches for new capabilities
  • OpenSpec change proposals for significant features

Domain Context

  • 會議記錄 (Meeting Records): Core entity with metadata (subject, time, chairperson, location, recorder, attendees)
  • 逐字稿 (Transcript): Raw AI-generated speech-to-text output
  • 會議結論 (Conclusions): Summarized key decisions from meetings
  • 待辦事項 (Action Items): Tracked tasks with owner, due date, and status (Open/In Progress/Done/Delayed)
  • Admin User: ymirliu@panjit.com.tw has full access to all meetings and Excel template management

Important Constraints

  • Target hardware: i5/8GB laptop must run faster-whisper int8 locally
  • Security: No DB credentials or API keys in client-side code
  • Language: Must support Traditional Chinese (繁體中文) output
  • Data Isolation: All tables prefixed with meeting_
  • Token Management: Client must implement auto-refresh for long meetings

External Dependencies