Backend & APIs / MeetingMind
MeetingMind
Turn meetings, email, and chat into clear decisions and next actions.
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
- 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)
Docker (recommended)
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:
- Frontend: http://localhost:3000
- API: http://localhost:8000
- API docs: http://localhost:8000/docs
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 |
/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
- Quick start
- Setup guide
- Audio capture
- Microsoft authentication
- Microsoft Teams troubleshooting
- AWS Bedrock
- Architecture
- Roadmap
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.