Skip to content

Repository files navigation

📋 AI Meeting Summarizer + Action Tracker + Decision Log

License: GPLv3 Python React Nextcloud

Why use this tool?

Automate your meeting notes and actions—privately!
No more scrambling to remember who promised what. This full-stack, AI-powered solution securely transcribes meeting audio, generates smart summaries, extracts action items and decisions, and allows you to schedule follow-ups in your own Nextcloud calendar.
Your data stays on your infrastructure—never sent to Google or Microsoft.


🌟 Features

  • 🎙️ Audio Transcription: Uses Whisper for accurate, fast meeting transcription.
  • 🧠 Automatic Summarization: Get concise meeting summaries with NLTK & Sumy.
  • Action Item & Decision Extraction: AI highlights “who will do what, by when.”
  • 📅 Nextcloud Calendar Integration: Seamlessly turns action items into private calendar events.
  • 🌐 Modern React Dashboard: Fast, responsive UI with Vite & Tailwind CSS.
  • 📤 RESTful API: For audio and JSON transcript processing.
  • 🧪 Full Testing Coverage: Vitest + Playwright.
  • 🔒 Zero Vendor Lock-in: No Google, no Microsoft, no cloud lock.

🚀 Quick Start

Full details: See setup_instructions.md.

1. Clone the repository

git clone https://github.com/emorse224/meeting-summary-dashboard.git

2. Backend setup (Python 3.9+)

cd backend
python -m venv venv
venv\Scripts�ctivate         # On Windows
source venv/bin/activate     # On Mac/Linux
pip install -r requirements.txt
python run.py

3. Frontend setup (React 19)

cd frontend
npm install
npm start

4. Docker (optional, all-in-one)

docker-compose up --build

🔑 Environment & Secrets

  • Backend: Place your Nextcloud credentials in ~/.app_secrets/env.json:

    {
      "NEXTCLOUD_URL": "https://yourdomain/remote.php/dav",
      "NEXTCLOUD_USERNAME": "your_username",
      "NEXTCLOUD_PASSWORD": "your_password_or_app_password"
    }
  • Use app passwords if you have Nextcloud 2FA.

  • .env file for Whisper, Nexcloud, etc.


📅 Nextcloud Calendar Integration

Your actions, your calendar, your privacy.

  • Action items auto-create private calendar events.
  • Works with any CalDAV-compatible client (iOS, Android, Outlook, Thunderbird).
  • Setup: Find your CalDAV link (Nextcloud Calendar > Settings > Info), add to env.json, restart backend.

📤 API Usage Examples

Transcribe Audio

POST /process-audio
Content-Type: multipart/form-data
(audio file as 'audio' field)

Response:

{ "transcript": "...", "entities": [] }

Summarize Transcript

POST /process-json
Content-Type: application/json
{ "transcript": "...", "entities": [] }

Response:

{ "summary": [...], "actions": [...], "decisions": [...] }

Schedule Actions

POST /api/schedule-actions
Content-Type: application/json
{
  "actions": [
    {
      "include": true,
      "datetime": "YYYY-MM-DDTHH:MM",
      "text": "Owner will do something",
      "owner": "Owner Name"
    }
  ]
}

🗂️ Project Structure

Click to expand

Frontend

frontend/
  public/
  src/
    App.jsx
    components/
      AudioUploadForm.jsx
      CalendarEventForm.jsx
      DecisionsPanel.jsx
      ErrorBoundary.jsx
      NextcloudConnect.jsx
      ReviewPanel.jsx
      SummaryPanel.jsx
      TranscriptPanel.jsx
    hooks/
      UseMeetingState.jsx
    utils/
      dateUtils.js
    tests/
      unit/
      integration/
      e2e/
    index.js
    index.css
    setupTests.js
  tailwind.config.js
  postcss.config.js
  vite.config.js
  package.json

Backend

backend/
  run.py
  app/
    __init__.py
    routes/
      audio_routes.py
      json_routes.py
    services/
      audio_processor.py
      calendar_integration.py
      llm_utils.py
      nlp_analysis.py
    utils/
      entity_utils.py
      logger.py
      logging_utils.py
      nextcloud_utils.py
  transcripts/
  logs/
  uploads/
  tests/

🧪 Testing & Coverage

  • Vitest for frontend/unit/integration
  • Playwright for end-to-end
  • Coverage >95%
  • Run all tests:
    npm test

📌 Roadmap

  • Speaker diarization (who spoke when)
  • User authentication
  • Google/Microsoft Calendar support (optional)

📝 License

This project is licensed under GNU GPLv3.


🙋‍♂️ Support & Questions


Enjoy secure, private, AI-powered meeting management!

About

AI Meeting Summarizer + Action Tracker + Decision Log

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages