# ankitkandpal-1/intervueai architecture

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

- Interactive diagram: https://gitdiagram.com/ankitkandpal-1/intervueai
- Repository: https://github.com/ankitkandpal-1/intervueai

## Overview

IntervuAI is presented as an AI interview-preparation product. The tree and sampled code show a landing page, email/password authentication, and a dashboard with prompt-based room creation and interview-question selections; they do not show a working interview, AI evaluation, coding editor, feedback, or progress-storage flow. Those broader capabilities appear in the README, so treat them as product claims rather than verified runtime wiring.

Main entry points: [`saas_ai/src/modules/auth/ui/view/log-in-view.tsx`](https://github.com/ankitkandpal-1/intervueai/blob/main/saas_ai/src/modules/auth/ui/view/log-in-view.tsx) (Login view), [`saas_ai/src/modules/home/ui/view/home_view.tsx`](https://github.com/ankitkandpal-1/intervueai/blob/main/saas_ai/src/modules/home/ui/view/home_view.tsx) (Landing page), [`saas_ai/src/lib/auth.ts`](https://github.com/ankitkandpal-1/intervueai/blob/main/saas_ai/src/lib/auth.ts) (Auth service), [`saas_ai/src/modules/auth/ui/view/sign-in-view.tsx`](https://github.com/ankitkandpal-1/intervueai/blob/main/saas_ai/src/modules/auth/ui/view/sign-in-view.tsx) (Sign-in view)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["User experience"]
  node_landing["Landing page<br/>[home_view.tsx]"]
  node_login["Login view<br/>[log-in-view.tsx]"]
  node_signup["Sign-in view<br/>[sign-in-view.tsx]"]
  node_dashboard["Dashboard<br/>[layout.tsx]"]
  node_sidebar["Interview options"]
end

subgraph group_identity["Authentication"]
  node_authclient["Auth client<br/>[auth-client.ts]"]
  node_authapi["Auth endpoint<br/>[route.ts]"]
  node_authservice["Auth service<br/>[auth.ts]"]
end

subgraph group_persistence["Persistence"]
  node_database[("Database<br/>[index.ts]")]
  node_schema["Auth schema<br/>[schema.ts]"]
end

node_candidate(("Candidate"))
node_ai_interviews["AI interviews"]
node_coding["Coding environment"]
node_feedback["Feedback and tracking"]

node_candidate -->|"visits"| node_landing
node_landing -->|"links to"| node_login
node_landing -->|"links to"| node_signup
node_candidate -->|"submits credentials"| node_login
node_candidate -->|"creates account"| node_signup
node_login -->|"signs in"| node_authclient
node_signup -->|"authenticates"| node_authclient
node_authclient -->|"sends auth requests"| node_authapi
node_authapi -->|"dispatches"| node_authservice
node_authservice -->|"uses adapter"| node_database
node_authservice -->|"configures tables"| node_schema
node_login -->|"redirects on success"| node_dashboard
node_candidate -->|"opens"| node_dashboard
node_dashboard -->|"renders"| node_sidebar
node_sidebar -.->|"offers practice options"| node_ai_interviews
node_ai_interviews -.->|"may include"| node_coding
node_ai_interviews -.->|"README describes"| node_feedback

click node_landing "https://github.com/ankitkandpal-1/intervueai/blob/main/saas_ai/src/modules/home/ui/view/home_view.tsx"
click node_login "https://github.com/ankitkandpal-1/intervueai/blob/main/saas_ai/src/modules/auth/ui/view/log-in-view.tsx"
click node_signup "https://github.com/ankitkandpal-1/intervueai/blob/main/saas_ai/src/modules/auth/ui/view/sign-in-view.tsx"
click node_dashboard "https://github.com/ankitkandpal-1/intervueai/blob/main/saas_ai/src/app/dashboard/layout.tsx"
click node_sidebar "https://github.com/ankitkandpal-1/intervueai/blob/main/saas_ai/src/modules/dashboard/ui/component/dashboard-sidebar.tsx"
click node_authclient "https://github.com/ankitkandpal-1/intervueai/blob/main/saas_ai/src/lib/auth-client.ts"
click node_authapi "https://github.com/ankitkandpal-1/intervueai/blob/main/saas_ai/src/app/api/auth/%5B...all%5D/route.ts"
click node_authservice "https://github.com/ankitkandpal-1/intervueai/blob/main/saas_ai/src/lib/auth.ts"
click node_database "https://github.com/ankitkandpal-1/intervueai/blob/main/saas_ai/src/database/index.ts"
click node_schema "https://github.com/ankitkandpal-1/intervueai/blob/main/saas_ai/src/database/schema.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_landing,node_login,node_signup,node_dashboard,node_sidebar,node_ai_interviews toneBlue
class node_authclient,node_authapi,node_authservice toneAmber
class node_database,node_schema toneMint
class node_candidate,node_coding,node_feedback toneIndigo
```

## Components

### User experience

- [Landing page](https://github.com/ankitkandpal-1/intervueai/blob/main/saas_ai/src/modules/home/ui/view/home_view.tsx): `saas_ai/src/modules/home/ui/view/home_view.tsx`
- [Login view](https://github.com/ankitkandpal-1/intervueai/blob/main/saas_ai/src/modules/auth/ui/view/log-in-view.tsx): `saas_ai/src/modules/auth/ui/view/log-in-view.tsx`
- [Sign-in view](https://github.com/ankitkandpal-1/intervueai/blob/main/saas_ai/src/modules/auth/ui/view/sign-in-view.tsx): `saas_ai/src/modules/auth/ui/view/sign-in-view.tsx`
- [Dashboard](https://github.com/ankitkandpal-1/intervueai/blob/main/saas_ai/src/app/dashboard/layout.tsx): `saas_ai/src/app/dashboard/layout.tsx`
- [Interview options](https://github.com/ankitkandpal-1/intervueai/blob/main/saas_ai/src/modules/dashboard/ui/component/dashboard-sidebar.tsx): `saas_ai/src/modules/dashboard/ui/component/dashboard-sidebar.tsx`

### Authentication

- [Auth client](https://github.com/ankitkandpal-1/intervueai/blob/main/saas_ai/src/lib/auth-client.ts): `saas_ai/src/lib/auth-client.ts`
- [Auth endpoint](https://github.com/ankitkandpal-1/intervueai/blob/main/saas_ai/src/app/api/auth/%5B...all%5D/route.ts): `saas_ai/src/app/api/auth/[...all]/route.ts`
- [Auth service](https://github.com/ankitkandpal-1/intervueai/blob/main/saas_ai/src/lib/auth.ts): `saas_ai/src/lib/auth.ts`

### Persistence

- [Database](https://github.com/ankitkandpal-1/intervueai/blob/main/saas_ai/src/database/index.ts): `saas_ai/src/database/index.ts`
- [Auth schema](https://github.com/ankitkandpal-1/intervueai/blob/main/saas_ai/src/database/schema.ts): `saas_ai/src/database/schema.ts`

### Other components

- **Candidate**
- **AI interviews**
- **Coding environment**
- **Feedback and tracking**

## Connections

- Candidate → Landing page: visits
- Landing page → Login view: links to
- Landing page → Sign-in view: links to
- Candidate → Login view: submits credentials
- Candidate → Sign-in view: creates account
- Login view → Auth client: signs in
- Sign-in view → Auth client: authenticates
- Auth client → Auth endpoint: sends auth requests
- Auth endpoint → Auth service: dispatches
- Auth service → Database: uses adapter
- Auth service → Auth schema: configures tables
- Login view → Dashboard: redirects on success
- Candidate → Dashboard: opens
- Dashboard → Interview options: renders
- Interview options → AI interviews: offers practice options
- AI interviews → Coding environment: may include
- AI interviews → Feedback and tracking: README describes
