Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

57 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🧠 IntellMeet

AI-Powered Enterprise Meeting Intelligence Platform

Transcribe. Summarize. Act. β€” Automatically.

Frontend Backend

Live App Β· API Β· Report a Bug


πŸ“Œ Overview

IntellMeet is a full-stack, AI-powered video conferencing and meeting intelligence platform built for enterprise, startup, and company-level teams. It brings together live video calls, real-time transcription, and Google Gemini-driven summarization into a single workspace β€” so meetings turn into searchable notes and trackable tasks automatically, instead of disappearing the moment the call ends.


✨ Features

πŸŽ₯ Meetings & Video

  • Live video meetings powered by the Stream Video SDK β€” instant meetings, scheduled meetings, and join-by-code
  • Adaptive meeting layout with Google Meet–style responsive tiling for 1 to many participants, plus dedicated screen-share layouts
  • Waiting room & access control β€” hosts can admit, deny, or admit-all, or open a meeting for anyone with the link
  • In-meeting chat via Stream Chat, running alongside video
  • Live closed captions with per-speaker attribution
  • Collapsible sidebar for chat, transcript, and participant management
  • Post-call rating & insights gate to capture quick feedback after every meeting

πŸ€– AI Meeting Intelligence

  • Real-time transcription, automatically started and stopped with the call
  • Gemini-powered summaries β€” structured executive summaries generated from the full transcript
  • Auto-extracted action items with assignee and due-date detection, ready to promote into real tasks
  • Fallback processing pipeline that recovers gracefully if a transcript arrives late or a webhook is missed

πŸ“‹ Tasks & Teams

  • Kanban-style task board with priority, due dates, assignees, and comments
  • One-click promotion of AI-detected action items into tracked tasks
  • Multi-team workspaces with admin/member roles, invites, and team switching
  • Analytics dashboard β€” meeting cadence, ratings, engagement, and team productivity metrics

πŸ—‚οΈ Recordings, Transcripts & Sharing

  • Recordings library with playback, per-session transcripts, and duration tracking
  • PDF export of meeting notes and executive summaries (generated server-side)
  • Slack & Notion sync β€” push summaries and action items straight into your team's existing tools

πŸ” Platform

  • Secure authentication end-to-end via Clerk (sign-up, sign-in, profile, sessions, password management)
  • Live dashboard β€” upcoming meetings, recent AI summaries, and open action items at a glance

πŸ—οΈ Tech Stack

Frontend

Technology Purpose
React 19 + TypeScript Core UI framework
Vite Build tooling & dev server
Tailwind CSS v3 + shadcn/ui Styling & component primitives
TanStack Query Server state & data fetching
Zustand Client state management (teams, meetings, tasks)
Clerk (React) Authentication & user/session management
Stream Video & Chat React SDK Video calls, chat, captions, recordings

Backend

Technology Purpose
Node.js + Express REST API server
MongoDB + Mongoose Primary database
Clerk (Express) Auth middleware & session verification
Stream (Node SDK) Video call orchestration, chat, recordings, transcription
Google Gemini (gemini-2.5-flash) AI summarization & action item extraction
pdfkit Server-side PDF generation, streamed to the client
Inngest Background event handling (user sync, lifecycle webhooks)

Infrastructure

Service Purpose
Vercel Frontend hosting
Render Backend hosting
MongoDB Atlas Managed database

🧩 Architecture

flowchart LR
    A[React Frontend] -->|REST plus JWT| B[Express API]
    B --> C[MongoDB]
    B --> D[Stream Video and Chat]
    B --> E[Gemini AI]
    D -->|Webhook transcription ready| B
    B -->|AI Summary and Action Items| C
    B -->|PDF export| G[pdfkit]
    B -->|Sync| H[Slack and Notion]
    F[Clerk] -->|Auth| A
    F -->|Session Verification| B
Loading

Flow: A user starts, schedules, or joins a meeting β†’ Stream handles video, chat, live captions, and transcription β†’ once the call ends, a webhook (with a fallback polling path) delivers the transcript to the backend β†’ Gemini processes it into a structured summary and action items β†’ results are persisted in MongoDB and surfaced on the dashboard, where action items can be promoted to the team's task board, exported as a PDF, or synced to Slack/Notion.


πŸ“‚ Repository Structure

IntellMeet/
β”œβ”€β”€ frontend/                 # React + TypeScript client
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ pages/            # Dashboard, MeetingRoom, TaskBoard, AISummary,
β”‚   β”‚   β”‚                     # RecordingDetail, Onboarding, Sign In/Up
β”‚   β”‚   β”œβ”€β”€ components/       # AdaptiveMeetingLayout, ParticipantListPanel, etc.
β”‚   β”‚   β”œβ”€β”€ layouts/          # DashboardLayout (sidebar shell), AuthLayout
β”‚   β”‚   β”œβ”€β”€ store/            # Zustand stores (teams, meetings, tasks)
β”‚   β”‚   └── lib/               # api.ts (backend adapter), utils.ts
β”‚   └── ...
└── backend/                  # Node.js + Express API
    β”œβ”€β”€ src/
    β”‚   β”œβ”€β”€ models/            # User, Team, Session, Task, ActionItem,
    β”‚   β”‚                       # Invite, MeetingInvite
    β”‚   β”œβ”€β”€ controllers/       # session, team, task, ai, webhook, chat
    β”‚   β”œβ”€β”€ routes/
    β”‚   β”œβ”€β”€ middleware/        # Clerk auth
    β”‚   β”œβ”€β”€ services/          # Gemini AI pipeline, Slack/Notion integrations
    β”‚   β”œβ”€β”€ lib/                # db, stream, env, resolveParticipants, inngest
    β”‚   └── scripts/           # backfills & diagnostics (recordings, transcripts,
    β”‚                          # Stream user sync)
    └── ...

πŸ§ͺ Code Quality & Testing

  • Linting & formatting β€” ESLint (flat config, TypeScript + React rules) on the frontend, ESLint + eslint-config-prettier on the backend; Prettier configured on both
  • Automated tests β€” Vitest covering frontend utility functions (getInitials, getAvatarColor, formatDurationSeconds, etc.); Jest + Supertest covering backend API authorization and validation (task creation, team membership checks, team listing)
  • Accessibility β€” aria-labels on all icon-only controls in the meeting room and dashboard, role="dialog" + aria-modal + Escape-to-close on every modal, corrected heading hierarchy, and WCAG AA–compliant text contrast throughout the dashboard

Lighthouse Report

Category Score
Performance 85–98
Accessibility 100
Best Practices 100
SEO 83

Note on these numbers: Performance fluctuates noticeably between runs (85–98 observed across repeated tests) β€” normal run-to-run variance from network conditions and cold starts rather than a code change, so treat it as a range rather than a fixed figure. SEO is intentionally not optimized further, since IntellMeet sits entirely behind authentication and isn't meant to be indexed or discovered via search. Accessibility and Best Practices are the two scores that reflect deliberate work and were verified stable across multiple runs.


πŸš€ Getting Started (Local Setup)

Prerequisites

  • Node.js 18+
  • MongoDB instance (local or Atlas)
  • Clerk account (API keys)
  • Stream account (API key + secret)
  • Google Gemini API key
  • (Optional) ngrok, for testing Stream webhooks locally

1. Clone the repo

git clone https://github.com/TechShashank7/IntellMeet.git
cd IntellMeet

2. Backend setup

cd backend
npm install

Create a .env file:

PORT=5000
DB_URL=your_mongodb_connection_string
CLIENT_URL=http://localhost:5173
CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key
CLERK_SECRET_KEY=your_clerk_secret_key
STREAM_API_KEY=your_stream_api_key
STREAM_API_SECRET=your_stream_api_secret
GEMENI_API_KEY=your_gemini_api_key
INGEST_EVENT_KEY=your_inngest_event_key
INGEST_SIGNING_KEY=your_inngest_signing_key
npm run dev

3. Frontend setup

cd ../frontend
npm install

Create a .env file:

VITE_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key
VITE_STREAM_API_KEY=your_stream_api_key
VITE_API_BASE_URL=http://localhost:5000/api
npm run dev

The app will be available at http://localhost:5173, with the API running on http://localhost:5000.

4. (Optional) Webhooks locally

To receive Stream transcription/recording webhooks during local development, tunnel the backend with ngrok and point the Stream dashboard's webhook URL at the tunnel:

ngrok http 5000

πŸ—ΊοΈ Development Roadmap

  • Phase 0 β€” Backend boot & MongoDB connection
  • Phase 1 β€” Clerk authentication, end-to-end across the frontend
  • Phase 2 β€” Meetings, tasks, team onboarding, and a real API layer
  • Phase 3 β€” Stream webhook receiver + Gemini summarization pipeline
  • Phase 4 β€” Live meeting room: chat, closed captions, adaptive video layout, screen share, waiting room, post-call ratings, Kanban board
  • Phase 5 β€” recordings list/detail, playback, PDF export, timestamped transcript segments
  • Phase 6 β€” PDF download, Slack, and Notion integrations per team
  • Phase 7 β€” ESLint + Prettier on both frontend and backend, a minimal automated test suite (Vitest/Jest + Supertest), and a full accessibility pass (ARIA labels, dialog semantics, heading structure, contrast) β€” see Code Quality & Testing

In progress / polish

  • Long-term storage strategy for recording references (Stream URLs are presigned & expiring)
  • General design pass benchmarked against Zoom/Meet for overall product feel

πŸ‘₯ Team

Name Role
Shashank Raj Frontend & Product Architecture
Tanuj Gupta Backend Development & Infrastructure
Dara Saiteja Frontend Development
Gaurav Kumar Backend Development

IntellMeet β€” Every Meeting. Summarized. Actioned. Done.

About

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages