All notes

Backend & APIs / MeetingMind

MeetingMind

Turn meetings, email, and chat into clear decisions and next actions.

October 21, 20267 min readPython
Open the full technical write-up

Turn meetings, email, and chat into clear decisions and next actions.

Features · Quick start · Configuration · Documentation · Contributing


What this project does

MeetingMind is an open-source meeting and workday assistant. It transcribes meetings in real time, generates structured minutes, and surfaces what needs your attention across email and Microsoft Teams.

It is designed to run locally, keep your credentials on your machine, and stay out of your way. Bring your own API keys, choose a cloud or local transcription provider, and optionally connect Microsoft 365.

Privacy first: MeetingMind stores transcripts and cached messages in a local SQLite database. No analytics or telemetry are collected. When you use a cloud AI or transcription provider, the relevant text or audio is sent to that provider under your account.

What the project includes

Meetings

  • Real-time transcription from any audio source (Zoom, Google Meet, Teams, or a microphone)
  • Local transcription with faster-whisper, with optional AssemblyAI and Deepgram clients included for future provider routing
  • Automatic minutes of meeting (MOM): summary, decisions, action items, and key points
  • FAQ generation, follow-up drafting, and risk detection
  • Meeting history, full-text search, and export to PDF, DOCX, TXT, or JSON
  • Sentiment, topic, and engagement insights

Email

  • Inbox summaries with urgency detection
  • Email categorisation, priority scoring, and action-item extraction
  • Sentiment analysis and context-aware reply suggestions
  • Optional Microsoft Graph integration for Outlook

Microsoft Teams

  • Chat and channel summaries
  • @mention tracking and response suggestions
  • Channel activity and blocker analysis
  • Cross-platform correlation with related email threads
  • Optional Microsoft Graph integration

Workday

  • Todo management with priorities, drag-and-drop ordering, and source tracking
  • AI assistant with context across meetings, email, Teams, and todos
  • Daily digest, smart notifications, and deadline-risk prediction
  • Global and semantic search

Integrations

  • OpenAI and AWS Bedrock (with an optional ensemble mode)
  • Microsoft Graph (Outlook and Teams)
  • Jira and Confluence text conversion
  • Local audio capture on macOS, Windows, and Linux

Tech stack

Layer Technology
Backend Python, FastAPI, SQLAlchemy (async), SQLite
Frontend React 18, Vite, Material UI, Recharts
Transcription faster-whisper (local); AssemblyAI and Deepgram clients included but not yet wired into the streaming pipeline
AI OpenAI, AWS Bedrock
Integrations Microsoft Graph, Jira, Confluence
Real-time WebSockets

Quick start

Prerequisites

  • Python 3.9+
  • Node.js 16+
  • FFmpeg
  • Docker and Docker Compose (optional)
git clone https://github.com/Tuhin-SnapD/MeetingMind.git
cd MeetingMind

cp backend/.env.example backend/.env
# Edit backend/.env and add at least one AI provider key.

docker compose up --build

Open:

Local development

# Backend
cd backend
python -m venv venv
source venv/bin/activate        # Windows: venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env            # add your keys
uvicorn app.main:app --reload

# Frontend (in a second terminal)
cd frontend
npm install
npm run dev

Vite serves the frontend at http://localhost:3000 and proxies /api to the backend at http://localhost:8000.

For a shorter walkthrough, see docs/QUICKSTART.md. For full setup instructions, see docs/setup/README.md.

Configuration

All backend settings live in backend/.env. Start from backend/.env.example.

Required

Variable Description
OPENAI_API_KEY OpenAI key for AI features (unless you use Bedrock only)

AI providers

Variable Default Description
USE_BEDROCK false Use AWS Bedrock as the primary provider
ENABLE_OPENAI true Enable or disable OpenAI
ENABLE_BEDROCK true Enable or disable Bedrock
USE_ENSEMBLE_MODE false Query both providers and merge results
OPENAI_MODEL gpt-4o OpenAI model
OPENAI_FALLBACK_MODEL gpt-3.5-turbo Fallback model
AWS_REGION us-east-1 Bedrock region
BEDROCK_MODEL_ID Claude Haiku Bedrock model ID

See docs/setup/aws-bedrock.md for the Bedrock walkthrough.

Transcription

Variable Default Description
LOCAL_WHISPER_MODEL medium.en faster-whisper model
WHISPER_DEVICE cpu cpu, cuda, or auto
WHISPER_COMPUTE_TYPE int8 Faster Whisper compute type
WHISPER_INITIAL_PROMPT built-in Prompt that biases local Whisper toward your vocabulary
AUDIO_DEVICE auto Audio device index or partial name
AUDIO_ALLOW_FALLBACK true Fall back to the default microphone

The current streaming pipeline uses local faster-whisper. AssemblyAI and Deepgram client modules are included in the repository but are not yet wired into the WebSocket flow; see the roadmap.

Audio capture setup for macOS, Windows, and Linux is documented in docs/setup/audio.md.

Microsoft 365

Variable Description
MICROSOFT_CLIENT_ID Azure app client ID
MICROSOFT_CLIENT_SECRET Azure app client secret
MICROSOFT_TENANT_ID Tenant ID, or common
MICROSOFT_REDIRECT_URI OAuth callback URL
FRONTEND_URL Frontend URL used after login

You can also use a short-lived Graph Explorer token for local testing. See docs/setup/microsoft-auth.md and docs/troubleshooting/microsoft-teams.md.

User identity

MeetingMind highlights messages and email that mention you. The signed-in Microsoft profile is used when available; otherwise set:

USER_NAME=Alex Morgan
USER_EMAIL=alex@example.com

For the bundled demo data, USER_NAME=Alex Morgan matches the sample persona.

Jira (optional)

JIRA_URL=https://your-domain.atlassian.net
JIRA_USERNAME=you@example.com
JIRA_API_TOKEN=your-token
# JIRA_PROJECT_KEY=PROJ
# JIRA_BOARD_URL=https://your-domain.atlassian.net/jira/software/c/projects/PROJ/boards/1

API reference

The interactive docs at /docs are always authoritative. The main groups are:

Group Prefix
Transcription /api/transcribe
AI processing /api/ai
Email /api/email
Teams /api/teams
Todos /api/todos
Search /api/search
Export /api/export
Authentication /api/auth

A few useful endpoints:

curl http://localhost:8000/health

curl -X POST http://localhost:8000/api/transcribe/start \
  -H "Content-Type: application/json" \
  -d '{"title": "Weekly planning"}'

curl -X POST http://localhost:8000/api/ai/summarize \
  -H "Content-Type: application/json" \
  -d '{"session_id": "your-session-id"}'

How files are organized

MeetingMind/
├── backend/                 FastAPI application
│   ├── app/
│   │   ├── api/             Route handlers
│   │   ├── services/        Transcription and AI services
│   │   ├── integrations/    Microsoft Graph and Jira clients
│   │   ├── models/          Pydantic schemas
│   │   └── utils/           Logging and identity helpers
│   ├── Dockerfile
│   ├── requirements.txt
│   └── .env.example
├── frontend/                React application
│   ├── src/
│   │   ├── components/
│   │   ├── services/
│   │   └── theme.js
│   ├── Dockerfile
│   └── package.json
├── docs/                    Setup, architecture, and troubleshooting
├── docker-compose.yml
└── LICENSE

See docs/ARCHITECTURE.md for a deeper look at the data flow and components.

Development

# Backend syntax check
python -m compileall backend/app

# Frontend production build
cd frontend && npm run build

There is no test suite yet. Contributions that add tests are very welcome.

Documentation

Contributing

Contributions of all sizes are welcome. Please read CONTRIBUTING.md and our Code of Conduct first.

Good first issues include:

  • Adding tests for the API and AI services
  • Improving Windows and Linux audio capture
  • Adding providers (for example, Ollama or local LLMs)
  • Improving accessibility and keyboard navigation
  • Adding calendar integrations

Security

Please do not open public issues for security problems. See SECURITY.md for responsible disclosure.

License

Released under the MIT License.

Acknowledgements

MeetingMind builds on the work of the open-source community, including FastAPI, React, Material UI, faster-whisper, OpenAI, AssemblyAI, Deepgram, and the Microsoft Graph team. Thank you to every contributor who helps make it better.

Related notes

Backend & APIs

Real-Time Stock Trading Simulator

A sophisticated Python-based real-time stock trading simulator that demonstrates automated trading system development with live market data integration, advanced strategy implementation, and comprehensive performance…