# khushimalik04/docuemntai architecture

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

- Interactive diagram: https://gitdiagram.com/khushimalik04/docuemntai
- Repository: https://github.com/khushimalik04/docuemntai

## Overview

MeetMind is a meeting-transcript intelligence workspace. Users create meetings from pasted or uploaded transcripts, then review generated summaries, chapters, action items, and time-synced transcripts; they can manage meetings and action items or search transcripts. The backend parses input, builds meeting records, and generates summaries, while the frontend communicates with its HTTP API and the backend persists data in SQLite. The README documents the high-level frontend/API/database flow; some frontend component-level calls were not shown, so those links are omitted.

Main entry points: [`backend/app/main.py`](https://github.com/khushimalik04/docuemntai/blob/main/backend/app/main.py) (FastAPI Runtime), [`backend/app/routers/meetings.py`](https://github.com/khushimalik04/docuemntai/blob/main/backend/app/routers/meetings.py) (Meeting Routes), [`backend/app/services/meeting_service.py`](https://github.com/khushimalik04/docuemntai/blob/main/backend/app/services/meeting_service.py) (Meeting Builder), [`backend/app/db.py`](https://github.com/khushimalik04/docuemntai/blob/main/backend/app/db.py) (SQLite Database)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["Meeting Workspace"]
  node_web["Next.js Workspace<br/>[layout.tsx]"]
  node_meeting_list["Meeting Dashboard<br/>[page.tsx]"]
  node_meeting_detail["Meeting Detail"]
  node_transcript_view["Transcript Viewer<br/>[Transcript.tsx]"]
  node_transcript_line["Transcript Line<br/>[TranscriptLine.tsx]"]
  node_player["Playback Controls<br/>[usePlayer.ts]"]
  node_action_ui["Action Item UI<br/>[ActionItemsTab.tsx]"]
  node_search_ui["Transcript Search"]
  node_placeholder_pages["Workspace Placeholders<br/>[page.tsx]"]
  node_frontend_api["API Client<br/>[api.ts]"]
end

subgraph group_api["API Routes"]
  node_meeting_routes["Meeting Routes<br/>[meetings.py]"]
  node_action_routes["Action Item Routes<br/>[action_items.py]"]
  node_search_routes["Search Route<br/>[search.py]"]
end

subgraph group_processing["Transcript Processing"]
  node_parsers["Transcript Parsers<br/>[parsers.py]"]
  node_meeting_service["Meeting Builder<br/>[meeting_service.py]"]
  node_summarizer["Summary Generator<br/>[summarizer.py]"]
end

subgraph group_persistence["Persistence"]
  node_db_models["Meeting Records<br/>[models.py]"]
  node_sqlite[("SQLite Database<br/>[db.py]")]
  node_seed["Seed Loader<br/>[seed.py]"]
end

subgraph group_operations["Runtime Setup"]
  node_app_runtime["FastAPI Runtime<br/>[main.py]"]
  node_settings["Environment Settings<br/>[config.py]"]
end

node_browser(("Meeting User"))

node_browser -->|"uses"| node_web
node_web -->|"HTTP requests"| node_frontend_api
node_frontend_api -->|"calls API"| node_meeting_routes
node_meeting_detail -->|"regenerates summary"| node_frontend_api
node_meeting_routes -->|"parses uploads"| node_parsers
node_meeting_routes -->|"builds meetings"| node_meeting_service
node_meeting_routes -->|"serializes details"| node_meeting_service
node_meeting_service -->|"generates summaries"| node_summarizer
node_action_routes -->|"resolves participants"| node_meeting_service
node_meeting_routes -->|"queries records"| node_sqlite
node_action_routes -->|"updates records"| node_sqlite
node_search_routes -->|"searches segments"| node_sqlite
node_meeting_service -->|"builds records"| node_db_models
node_db_models -->|"maps tables"| node_sqlite
node_app_runtime -->|"registers routes"| node_meeting_routes
node_app_runtime -->|"registers routes"| node_action_routes
node_app_runtime -->|"registers routes"| node_search_routes
node_app_runtime -->|"loads seed data"| node_seed
node_app_runtime -->|"creates tables"| node_sqlite
node_app_runtime -->|"configures CORS"| node_settings
node_seed -->|"deduplicates people"| node_meeting_service
node_seed -->|"creates seed records"| node_db_models
node_seed -->|"stores seed data"| node_sqlite
node_transcript_view -->|"renders lines"| node_transcript_line

click node_web "https://github.com/khushimalik04/docuemntai/blob/main/frontend/src/app/layout.tsx"
click node_meeting_list "https://github.com/khushimalik04/docuemntai/blob/main/frontend/src/app/meetings/page.tsx"
click node_meeting_detail "https://github.com/khushimalik04/docuemntai/blob/main/frontend/src/app/meetings/%5Bid%5D/MeetingDetailClient.tsx"
click node_transcript_view "https://github.com/khushimalik04/docuemntai/blob/main/frontend/src/components/meeting/Transcript.tsx"
click node_transcript_line "https://github.com/khushimalik04/docuemntai/blob/main/frontend/src/components/meeting/TranscriptLine.tsx"
click node_player "https://github.com/khushimalik04/docuemntai/blob/main/frontend/src/hooks/usePlayer.ts"
click node_action_ui "https://github.com/khushimalik04/docuemntai/blob/main/frontend/src/components/meeting/ActionItemsTab.tsx"
click node_search_ui "https://github.com/khushimalik04/docuemntai/blob/main/frontend/src/app/search/SearchPageContent.tsx"
click node_placeholder_pages "https://github.com/khushimalik04/docuemntai/blob/main/frontend/src/app/analytics/page.tsx"
click node_frontend_api "https://github.com/khushimalik04/docuemntai/blob/main/frontend/src/lib/api.ts"
click node_meeting_routes "https://github.com/khushimalik04/docuemntai/blob/main/backend/app/routers/meetings.py"
click node_action_routes "https://github.com/khushimalik04/docuemntai/blob/main/backend/app/routers/action_items.py"
click node_search_routes "https://github.com/khushimalik04/docuemntai/blob/main/backend/app/routers/search.py"
click node_parsers "https://github.com/khushimalik04/docuemntai/blob/main/backend/app/services/parsers.py"
click node_meeting_service "https://github.com/khushimalik04/docuemntai/blob/main/backend/app/services/meeting_service.py"
click node_summarizer "https://github.com/khushimalik04/docuemntai/blob/main/backend/app/services/summarizer.py"
click node_db_models "https://github.com/khushimalik04/docuemntai/blob/main/backend/app/models.py"
click node_sqlite "https://github.com/khushimalik04/docuemntai/blob/main/backend/app/db.py"
click node_seed "https://github.com/khushimalik04/docuemntai/blob/main/backend/app/seed/seed.py"
click node_app_runtime "https://github.com/khushimalik04/docuemntai/blob/main/backend/app/main.py"
click node_settings "https://github.com/khushimalik04/docuemntai/blob/main/backend/app/config.py"

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_web,node_meeting_list,node_meeting_detail,node_transcript_view,node_transcript_line,node_player,node_action_ui,node_search_ui,node_placeholder_pages,node_frontend_api,node_browser toneBlue
class node_meeting_routes,node_action_routes,node_search_routes toneAmber
class node_parsers,node_meeting_service,node_summarizer toneMint
class node_db_models,node_sqlite,node_seed toneRose
class node_app_runtime,node_settings toneIndigo
```

## Components

### Meeting Workspace

- [Next.js Workspace](https://github.com/khushimalik04/docuemntai/blob/main/frontend/src/app/layout.tsx): `frontend/src/app/layout.tsx`
- [Meeting Dashboard](https://github.com/khushimalik04/docuemntai/blob/main/frontend/src/app/meetings/page.tsx): `frontend/src/app/meetings/page.tsx`
- [Meeting Detail](https://github.com/khushimalik04/docuemntai/blob/main/frontend/src/app/meetings/%5Bid%5D/MeetingDetailClient.tsx): `frontend/src/app/meetings/[id]/MeetingDetailClient.tsx`
- [Transcript Viewer](https://github.com/khushimalik04/docuemntai/blob/main/frontend/src/components/meeting/Transcript.tsx): `frontend/src/components/meeting/Transcript.tsx`
- [Transcript Line](https://github.com/khushimalik04/docuemntai/blob/main/frontend/src/components/meeting/TranscriptLine.tsx): `frontend/src/components/meeting/TranscriptLine.tsx`
- [Playback Controls](https://github.com/khushimalik04/docuemntai/blob/main/frontend/src/hooks/usePlayer.ts): `frontend/src/hooks/usePlayer.ts`
- [Action Item UI](https://github.com/khushimalik04/docuemntai/blob/main/frontend/src/components/meeting/ActionItemsTab.tsx): `frontend/src/components/meeting/ActionItemsTab.tsx`
- [Transcript Search](https://github.com/khushimalik04/docuemntai/blob/main/frontend/src/app/search/SearchPageContent.tsx): `frontend/src/app/search/SearchPageContent.tsx`
- [Workspace Placeholders](https://github.com/khushimalik04/docuemntai/blob/main/frontend/src/app/analytics/page.tsx): `frontend/src/app/analytics/page.tsx`
- [API Client](https://github.com/khushimalik04/docuemntai/blob/main/frontend/src/lib/api.ts): `frontend/src/lib/api.ts`

### API Routes

- [Meeting Routes](https://github.com/khushimalik04/docuemntai/blob/main/backend/app/routers/meetings.py): `backend/app/routers/meetings.py`
- [Action Item Routes](https://github.com/khushimalik04/docuemntai/blob/main/backend/app/routers/action_items.py): `backend/app/routers/action_items.py`
- [Search Route](https://github.com/khushimalik04/docuemntai/blob/main/backend/app/routers/search.py): `backend/app/routers/search.py`

### Transcript Processing

- [Transcript Parsers](https://github.com/khushimalik04/docuemntai/blob/main/backend/app/services/parsers.py): `backend/app/services/parsers.py`
- [Meeting Builder](https://github.com/khushimalik04/docuemntai/blob/main/backend/app/services/meeting_service.py): `backend/app/services/meeting_service.py`
- [Summary Generator](https://github.com/khushimalik04/docuemntai/blob/main/backend/app/services/summarizer.py): `backend/app/services/summarizer.py`

### Persistence

- [Meeting Records](https://github.com/khushimalik04/docuemntai/blob/main/backend/app/models.py): `backend/app/models.py`
- [SQLite Database](https://github.com/khushimalik04/docuemntai/blob/main/backend/app/db.py): `backend/app/db.py`
- [Seed Loader](https://github.com/khushimalik04/docuemntai/blob/main/backend/app/seed/seed.py): `backend/app/seed/seed.py`

### Runtime Setup

- [FastAPI Runtime](https://github.com/khushimalik04/docuemntai/blob/main/backend/app/main.py): `backend/app/main.py`
- [Environment Settings](https://github.com/khushimalik04/docuemntai/blob/main/backend/app/config.py): `backend/app/config.py`

### Other components

- **Meeting User**

## Connections

- Meeting User → Next.js Workspace: uses (evidence: `README.md`)
- Next.js Workspace → API Client: HTTP requests (evidence: `README.md`)
- API Client → Meeting Routes: calls API (evidence: `README.md`)
- Meeting Detail → API Client: regenerates summary (evidence: `frontend/src/app/meetings/[id]/MeetingDetailClient.tsx`)
- Meeting Routes → Transcript Parsers: parses uploads (evidence: `backend/app/routers/meetings.py`)
- Meeting Routes → Meeting Builder: builds meetings (evidence: `backend/app/routers/meetings.py`)
- Meeting Routes → Meeting Builder: serializes details (evidence: `backend/app/routers/meetings.py`)
- Meeting Builder → Summary Generator: generates summaries (evidence: `backend/app/services/meeting_service.py`)
- Action Item Routes → Meeting Builder: resolves participants (evidence: `backend/app/routers/action_items.py`)
- Meeting Routes → SQLite Database: queries records (evidence: `backend/app/routers/meetings.py`)
- Action Item Routes → SQLite Database: updates records (evidence: `backend/app/routers/action_items.py`)
- Search Route → SQLite Database: searches segments (evidence: `backend/app/routers/search.py`)
- Meeting Builder → Meeting Records: builds records (evidence: `backend/app/services/meeting_service.py`)
- Meeting Records → SQLite Database: maps tables (evidence: `backend/app/models.py`)
- FastAPI Runtime → Meeting Routes: registers routes (evidence: `backend/app/main.py`)
- FastAPI Runtime → Action Item Routes: registers routes (evidence: `backend/app/main.py`)
- FastAPI Runtime → Search Route: registers routes (evidence: `backend/app/main.py`)
- FastAPI Runtime → Seed Loader: loads seed data (evidence: `backend/app/main.py`)
- FastAPI Runtime → SQLite Database: creates tables (evidence: `backend/app/main.py`)
- FastAPI Runtime → Environment Settings: configures CORS (evidence: `backend/app/main.py`)
- Seed Loader → Meeting Builder: deduplicates people (evidence: `backend/app/seed/seed.py`)
- Seed Loader → Meeting Records: creates seed records (evidence: `backend/app/seed/seed.py`)
- Seed Loader → SQLite Database: stores seed data (evidence: `backend/app/seed/seed.py`)
- Transcript Viewer → Transcript Line: renders lines (evidence: `frontend/src/components/meeting/Transcript.tsx`)
