# arihantjain6/meetflowai architecture

> Architecture diagram of the GitHub repository arihantjain6/meetflowai, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/arihantjain6/meetflowai
- Repository: https://github.com/arihantjain6/meetflowai

## Overview

MeetFlowAI lets users configure AI agents, schedule and join video meetings, then review processed transcripts and summaries. Its main path runs from dashboard operations through tRPC and persistent meeting state, into Stream-hosted calls; Stream webhooks dispatch lifecycle events to Inngest, which handles post-call work and stores results. The README also documents authentication and Polar billing. Webhook dispatch and persistence are visible in sampled source; some feature and job implementations were not sampled, so those links follow README documentation and are shown at subsystem level.

Main entry points: [`src/modules/meetings/server/procedures.ts`](https://github.com/arihantjain6/meetflowai/blob/main/src/modules/meetings/server/procedures.ts) (Meeting management), [`src/db/index.ts`](https://github.com/arihantjain6/meetflowai/blob/main/src/db/index.ts) (Postgres database), [`src/inngest/functions.ts`](https://github.com/arihantjain6/meetflowai/blob/main/src/inngest/functions.ts) (Meeting jobs), [`src/modules/agents/server/procedures.ts`](https://github.com/arihantjain6/meetflowai/blob/main/src/modules/agents/server/procedures.ts) (Agent management)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["Dashboard and calls"]
  node_dashboard["Dashboard<br/>[home-view.tsx]"]
  node_agents["Agent management<br/>[procedures.ts]"]
  node_meetings["Meeting management<br/>[procedures.ts]"]
  node_call["Live call UI<br/>[call-view.tsx]"]
  node_meeting_review["Meeting review"]
end

subgraph group_api["Application services"]
  node_trpc_route["tRPC endpoint<br/>[route.ts]"]
  node_router["Application router<br/>[_app.ts]"]
  node_webhook["Stream webhook<br/>[route.ts]"]
  node_inngest_route["Job endpoint<br/>[route.ts]"]
  node_auth_route["Auth endpoint<br/>[route.ts]"]
end

subgraph group_persistence["Identity and data"]
  node_auth["Authentication<br/>[auth.ts]"]
  node_db[("Postgres database<br/>[index.ts]")]
  node_schema["Data schema<br/>[schema.ts]"]
end

subgraph group_processing["Meeting intelligence"]
  node_jobs["Meeting jobs<br/>[functions.ts]"]
  node_inngest_client["Job client<br/>[client.ts]"]
end

subgraph group_integrations["External platforms"]
  node_stream_video["Stream Video<br/>[stream-video.ts]"]
  node_stream_chat["Stream Chat<br/>[stream-chats.ts]"]
  node_gemini["Google Gemini"]
  node_polar["Polar billing<br/>[polar.ts]"]
  node_auth_provider["Better Auth"]
end

node_user(("User"))

node_user -->|"uses"| node_dashboard
node_user -->|"manages"| node_agents
node_user -->|"schedules"| node_meetings
node_user -->|"joins"| node_call
node_user -->|"reviews"| node_meeting_review
node_dashboard -->|"views history"| node_meetings
node_agents -->|"requests"| node_trpc_route
node_meetings -->|"requests"| node_trpc_route
node_trpc_route -->|"dispatches"| node_router
node_router -->|"routes agent calls"| node_agents
node_router -->|"routes meeting calls"| node_meetings
node_agents -->|"reads and writes"| node_db
node_meetings -->|"reads and writes"| node_db
node_schema -->|"defines tables"| node_db
node_call -->|"joins call"| node_stream_video
node_call -->|"uses chat"| node_stream_chat
node_stream_video -->|"sends events"| node_webhook
node_stream_chat -->|"sends events"| node_webhook
node_webhook -->|"updates meeting"| node_db
node_webhook -->|"dispatches events"| node_inngest_client
node_inngest_route -->|"serves functions"| node_jobs
node_jobs -->|"requests summary"| node_gemini
node_jobs -->|"stores results"| node_db
node_jobs -->|"fetches transcript"| node_stream_video
node_meeting_review -->|"loads meeting"| node_meetings
node_auth_route -->|"delegates requests"| node_auth
node_auth -->|"authenticates"| node_auth_provider
node_user -->|"signs in"| node_auth_route
node_user -.->|"manages subscription"| node_polar

click node_dashboard "https://github.com/arihantjain6/meetflowai/blob/main/src/modules/home/ui/views/home-view.tsx"
click node_agents "https://github.com/arihantjain6/meetflowai/blob/main/src/modules/agents/server/procedures.ts"
click node_meetings "https://github.com/arihantjain6/meetflowai/blob/main/src/modules/meetings/server/procedures.ts"
click node_call "https://github.com/arihantjain6/meetflowai/blob/main/src/modules/call/ui/views/call-view.tsx"
click node_meeting_review "https://github.com/arihantjain6/meetflowai/blob/main/src/modules/meetings/ui/views/meeting-id-view.tsx"
click node_trpc_route "https://github.com/arihantjain6/meetflowai/blob/main/src/app/api/trpc/%5Btrpc%5D/route.ts"
click node_router "https://github.com/arihantjain6/meetflowai/blob/main/src/trpc/routers/_app.ts"
click node_webhook "https://github.com/arihantjain6/meetflowai/blob/main/src/app/api/webhook/route.ts"
click node_inngest_route "https://github.com/arihantjain6/meetflowai/blob/main/src/app/api/inngest/route.ts"
click node_auth "https://github.com/arihantjain6/meetflowai/blob/main/src/lib/auth.ts"
click node_auth_route "https://github.com/arihantjain6/meetflowai/blob/main/src/app/api/auth/%5B...all%5D/route.ts"
click node_db "https://github.com/arihantjain6/meetflowai/blob/main/src/db/index.ts"
click node_schema "https://github.com/arihantjain6/meetflowai/blob/main/src/db/schema.ts"
click node_jobs "https://github.com/arihantjain6/meetflowai/blob/main/src/inngest/functions.ts"
click node_inngest_client "https://github.com/arihantjain6/meetflowai/blob/main/src/inngest/client.ts"
click node_stream_video "https://github.com/arihantjain6/meetflowai/blob/main/src/lib/stream-video.ts"
click node_stream_chat "https://github.com/arihantjain6/meetflowai/blob/main/src/lib/stream-chats.ts"
click node_polar "https://github.com/arihantjain6/meetflowai/blob/main/src/lib/polar.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_dashboard,node_agents,node_meetings,node_call,node_meeting_review,node_user toneBlue
class node_trpc_route,node_router,node_webhook,node_inngest_route,node_auth_route toneAmber
class node_auth,node_db,node_schema toneMint
class node_jobs,node_inngest_client toneRose
class node_stream_video,node_stream_chat,node_gemini,node_polar,node_auth_provider toneIndigo
```

## Components

### Dashboard and calls

- [Dashboard](https://github.com/arihantjain6/meetflowai/blob/main/src/modules/home/ui/views/home-view.tsx): `src/modules/home/ui/views/home-view.tsx`
- [Agent management](https://github.com/arihantjain6/meetflowai/blob/main/src/modules/agents/server/procedures.ts): `src/modules/agents/server/procedures.ts`
- [Meeting management](https://github.com/arihantjain6/meetflowai/blob/main/src/modules/meetings/server/procedures.ts): `src/modules/meetings/server/procedures.ts`
- [Live call UI](https://github.com/arihantjain6/meetflowai/blob/main/src/modules/call/ui/views/call-view.tsx): `src/modules/call/ui/views/call-view.tsx`
- [Meeting review](https://github.com/arihantjain6/meetflowai/blob/main/src/modules/meetings/ui/views/meeting-id-view.tsx): `src/modules/meetings/ui/views/meeting-id-view.tsx`

### Application services

- [tRPC endpoint](https://github.com/arihantjain6/meetflowai/blob/main/src/app/api/trpc/%5Btrpc%5D/route.ts): `src/app/api/trpc/[trpc]/route.ts`
- [Application router](https://github.com/arihantjain6/meetflowai/blob/main/src/trpc/routers/_app.ts): `src/trpc/routers/_app.ts`
- [Stream webhook](https://github.com/arihantjain6/meetflowai/blob/main/src/app/api/webhook/route.ts): `src/app/api/webhook/route.ts`
- [Job endpoint](https://github.com/arihantjain6/meetflowai/blob/main/src/app/api/inngest/route.ts): `src/app/api/inngest/route.ts`
- [Auth endpoint](https://github.com/arihantjain6/meetflowai/blob/main/src/app/api/auth/%5B...all%5D/route.ts): `src/app/api/auth/[...all]/route.ts`

### Identity and data

- [Authentication](https://github.com/arihantjain6/meetflowai/blob/main/src/lib/auth.ts): `src/lib/auth.ts`
- [Postgres database](https://github.com/arihantjain6/meetflowai/blob/main/src/db/index.ts): `src/db/index.ts`
- [Data schema](https://github.com/arihantjain6/meetflowai/blob/main/src/db/schema.ts): `src/db/schema.ts`

### Meeting intelligence

- [Meeting jobs](https://github.com/arihantjain6/meetflowai/blob/main/src/inngest/functions.ts): `src/inngest/functions.ts`
- [Job client](https://github.com/arihantjain6/meetflowai/blob/main/src/inngest/client.ts): `src/inngest/client.ts`

### External platforms

- [Stream Video](https://github.com/arihantjain6/meetflowai/blob/main/src/lib/stream-video.ts): `src/lib/stream-video.ts`
- [Stream Chat](https://github.com/arihantjain6/meetflowai/blob/main/src/lib/stream-chats.ts): `src/lib/stream-chats.ts`
- **Google Gemini**
- [Polar billing](https://github.com/arihantjain6/meetflowai/blob/main/src/lib/polar.ts): `src/lib/polar.ts`
- **Better Auth**

### Other components

- **User**

## Connections

- User → Dashboard: uses
- User → Agent management: manages
- User → Meeting management: schedules
- User → Live call UI: joins
- User → Meeting review: reviews
- Dashboard → Meeting management: views history
- Agent management → tRPC endpoint: requests
- Meeting management → tRPC endpoint: requests
- tRPC endpoint → Application router: dispatches
- Application router → Agent management: routes agent calls
- Application router → Meeting management: routes meeting calls
- Agent management → Postgres database: reads and writes
- Meeting management → Postgres database: reads and writes
- Data schema → Postgres database: defines tables
- Live call UI → Stream Video: joins call
- Live call UI → Stream Chat: uses chat
- Stream Video → Stream webhook: sends events
- Stream Chat → Stream webhook: sends events
- Stream webhook → Postgres database: updates meeting
- Stream webhook → Job client: dispatches events
- Job endpoint → Meeting jobs: serves functions
- Meeting jobs → Google Gemini: requests summary
- Meeting jobs → Postgres database: stores results
- Meeting jobs → Stream Video: fetches transcript
- Meeting review → Meeting management: loads meeting
- Auth endpoint → Authentication: delegates requests
- Authentication → Better Auth: authenticates
- User → Auth endpoint: signs in
- User → Polar billing: manages subscription
