45 lines
1.4 KiB
Markdown
45 lines
1.4 KiB
Markdown
# MeetVault
|
|
|
|
Self-hosted meeting recording and intelligence platform. The user machine handles local transcription; the backend API manages auth, metadata, uploads, summarization jobs, tasks, and reminders. Large media files are stored in SeaweedFS via its S3-compatible API.
|
|
|
|
## Architecture
|
|
|
|
```text
|
|
User machine:
|
|
- Record audio/video
|
|
- Local Whisper STT → transcript
|
|
- Upload to SeaweedFS (presigned URLs)
|
|
- Send transcript to backend
|
|
|
|
Backend API:
|
|
- Auth, users, subscriptions
|
|
- Meeting metadata
|
|
- Transcript ingestion
|
|
- Summarization jobs
|
|
- Task extraction
|
|
- Reminder scheduling
|
|
- PostgreSQL for structured data
|
|
```
|
|
|
|
## Quick start
|
|
|
|
### Backend
|
|
|
|
1. Start PostgreSQL and run the schema SQL from `Overview/README.md` (includes `pgcrypto` extension, all tables, indexes, triggers).
|
|
2. Run the backend API server.
|
|
3. Spin up SeaweedFS and configure presigned URL endpoints on the backend.
|
|
|
|
### Desktop client
|
|
|
|
Run the Tauri + React demo in `Wireframes/Desktop/MeetVault-Desktop-Demo/`. It supports local Whisper transcription, speaker diarization via diart, live overlay window, recording capture, and mock speech-engine mode for UI testing without ML models.
|
|
|
|
## Stack (MVP)
|
|
|
|
Frontend: React / Next.js
|
|
Backend: FastAPI or Node.js
|
|
Database: PostgreSQL + `processing_jobs` table as job queue
|
|
Media storage: SeaweedFS
|
|
Local STT: Whisper / whisper.cpp
|
|
|
|
No Kafka, Elasticsearch, Kubernetes, vector DBs, or Redis are needed for the MVP.
|