# Meeting Assistant API FastAPI orchestration backend for Meeting Assistant - middleware between Mobile App, Whisper, and Ollama. ## Architecture ``` Mobile App → FastAPI API → Whisper (transcription) + Ollama (AI analysis) → PostgreSQL (data) + Redis (queues/cache) → Celery Worker (async processing) ``` ## Quick Start ```bash cp .env.example .env docker-compose up -d docker-compose exec api alembic upgrade head ``` ## API Documentation - **Swagger UI:** http://localhost:8080/docs - **ReDoc:** http://localhost:8080/redoc ## Endpoints ### Auth - `POST /api/auth/register` - Register new user - `POST /api/auth/login` - Login (returns JWT) - `POST /api/auth/refresh` - Refresh access token - `GET /api/auth/me` - Get current user ### Meetings - `POST /api/meetings/upload` - Upload audio + trigger processing - `GET /api/meetings` - List meetings - `GET /api/meetings/{id}` - Get meeting details - `GET /api/meetings/{id}/status` - Get processing status - `GET /api/meetings/{id}/analyses` - Get all analyses - `GET /api/meetings/{id}/analyses/{type}` - Get specific analysis - `PUT /api/meetings/{id}/participants/{label}` - Update speaker name - `DELETE /api/meetings/{id}` - Delete meeting ### WebSocket - `WS /ws/meetings/{meeting_id}` - Real-time status updates ### Health - `GET /health` - Health check ## Processing Pipeline 1. Audio uploaded → saved to storage/ 2. Celery task queued 3. Audio sent to Whisper for diarized transcription 4. Transcription sent to Ollama for parallel analyses: - `minutes` - Structured meeting minutes - `sentiment` - Emotional tone analysis - `psychological` - Behavioral patterns - `communication` - Communication quality feedback - `summary` - Executive summary 5. Status updated to `completed` 6. WebSocket notification sent ## Environment Variables See `.env.example` for all configuration options. ## Development ```bash # View logs docker-compose logs -f api # Run migrations docker-compose exec api alembic upgrade head # Create new migration docker-compose exec api alembic revision --autogenerate -m "description" # Check celery worker docker-compose logs -f worker ```