# utkarshsharma06/italostudy-app architecture

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

- Interactive diagram: https://gitdiagram.com/utkarshsharma06/italostudy-app
- Repository: https://github.com/utkarshsharma06/italostudy-app

## Overview

Italostudy is a student learning and admissions platform, with web and mobile experiences for exam preparation, progress review, courses, and application guidance. The visible application router establishes authenticated entry points, including mobile IELTS and speaking routes; sampled modules also show authentication, exam selection, plan limits, and proctoring. The README is empty, and several major page implementations were not sampled, so their internal flows are represented as capabilities rather than connected pipelines. Edges below are limited to relationships visible in excerpts or the source index.

Main entry points: [`src/integrations/supabase/client.ts`](https://github.com/utkarshsharma06/italostudy-app/blob/main/src/integrations/supabase/client.ts) (Supabase client), [`src/components/Layout.tsx`](https://github.com/utkarshsharma06/italostudy-app/blob/main/src/components/Layout.tsx) (App layout), [`src/lib/auth.tsx`](https://github.com/utkarshsharma06/italostudy-app/blob/main/src/lib/auth.tsx) (Authentication state), [`src/App.tsx`](https://github.com/utkarshsharma06/italostudy-app/blob/main/src/App.tsx) (App routing)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Application shell"]
  node_router["App routing<br/>[App.tsx]"]
  node_layout["App layout<br/>[Layout.tsx]"]
end

subgraph group_learning["Learning and exams"]
  node_dashboard["Student dashboard<br/>[Dashboard.tsx]"]
  node_practice["Practice and exams<br/>[Practice.tsx]"]
  node_examresults["Exam results<br/>[Results.tsx]"]
  node_examcontext["Exam selection<br/>[ExamContext.tsx]"]
  node_examconfig["Exam definitions<br/>[exams.ts]"]
  node_proctor["Exam proctoring"]
  node_proctorhook["Proctoring hook<br/>[useProctoring.tsx]"]
end

subgraph group_account["Account and access"]
  node_authui["Sign-in interface<br/>[AuthModal.tsx]"]
  node_auth["Authentication state<br/>[auth.tsx]"]
  node_planaccess["Plan and usage limits<br/>[usePlanAccess.ts]"]
  node_pricing["Pricing interface<br/>[PricingModal.tsx]"]
end

subgraph group_admissions["Admissions support"]
  node_consultant["Application review"]
end

subgraph group_platform["Shared platform"]
  node_supabase["Supabase client<br/>[client.ts]"]
  node_storage["Shared session storage<br/>[sharedStorage.ts]"]
  node_settings["System settings"]
  node_liveedit["Live content editing"]
  node_button["Button component<br/>[button.tsx]"]
  node_dialog["Dialog component<br/>[dialog.tsx]"]
  node_otp["OTP input<br/>[input-otp.tsx]"]
  node_toast["Toast state<br/>[use-toast.ts]"]
end

node_student(("Student"))

node_student -->|"opens app"| node_router
node_router -->|"routes to"| node_authui
node_router -->|"uses layout"| node_layout
node_router -.->|"routes to"| node_proctorhook
node_authui -->|"uses auth"| node_auth
node_authui -->|"renders"| node_dialog
node_authui -->|"uses"| node_otp
node_auth -->|"uses"| node_supabase
node_supabase -->|"configures auth storage"| node_storage
node_examcontext -->|"loads definitions"| node_examconfig
node_examcontext -->|"reads user profile"| node_auth
node_examcontext -->|"reads and updates"| node_supabase
node_planaccess -->|"reads user"| node_auth
node_planaccess -->|"checks usage"| node_supabase
node_planaccess -->|"opens pricing"| node_pricing
node_proctorhook -->|"manages violations"| node_proctor
node_proctor -.->|"uses"| node_supabase
node_settings -->|"reads settings"| node_supabase
node_liveedit -->|"saves content"| node_supabase
node_consultant -.->|"uses"| node_supabase
node_layout -->|"uses auth"| node_auth
node_layout -->|"checks access"| node_planaccess
node_layout -->|"uses"| node_button
node_layout -->|"uses"| node_toast

click node_router "https://github.com/utkarshsharma06/italostudy-app/blob/main/src/App.tsx"
click node_layout "https://github.com/utkarshsharma06/italostudy-app/blob/main/src/components/Layout.tsx"
click node_dashboard "https://github.com/utkarshsharma06/italostudy-app/blob/main/src/pages/Dashboard.tsx"
click node_practice "https://github.com/utkarshsharma06/italostudy-app/blob/main/src/pages/Practice.tsx"
click node_examresults "https://github.com/utkarshsharma06/italostudy-app/blob/main/src/pages/Results.tsx"
click node_examcontext "https://github.com/utkarshsharma06/italostudy-app/blob/main/src/context/ExamContext.tsx"
click node_examconfig "https://github.com/utkarshsharma06/italostudy-app/blob/main/src/config/exams.ts"
click node_proctor "https://github.com/utkarshsharma06/italostudy-app/blob/main/src/proctoring/violationManager.ts"
click node_proctorhook "https://github.com/utkarshsharma06/italostudy-app/blob/main/src/hooks/useProctoring.tsx"
click node_authui "https://github.com/utkarshsharma06/italostudy-app/blob/main/src/components/auth/AuthModal.tsx"
click node_auth "https://github.com/utkarshsharma06/italostudy-app/blob/main/src/lib/auth.tsx"
click node_planaccess "https://github.com/utkarshsharma06/italostudy-app/blob/main/src/hooks/usePlanAccess.ts"
click node_pricing "https://github.com/utkarshsharma06/italostudy-app/blob/main/src/components/PricingModal.tsx"
click node_consultant "https://github.com/utkarshsharma06/italostudy-app/blob/main/src/components/consultant/ConsultantApplicationDetail.tsx"
click node_supabase "https://github.com/utkarshsharma06/italostudy-app/blob/main/src/integrations/supabase/client.ts"
click node_storage "https://github.com/utkarshsharma06/italostudy-app/blob/main/src/lib/sharedStorage.ts"
click node_settings "https://github.com/utkarshsharma06/italostudy-app/blob/main/src/context/SystemSettingsContext.tsx"
click node_liveedit "https://github.com/utkarshsharma06/italostudy-app/blob/main/src/contexts/LiveEditContext.tsx"
click node_button "https://github.com/utkarshsharma06/italostudy-app/blob/main/src/components/ui/button.tsx"
click node_dialog "https://github.com/utkarshsharma06/italostudy-app/blob/main/src/components/ui/dialog.tsx"
click node_otp "https://github.com/utkarshsharma06/italostudy-app/blob/main/src/components/ui/input-otp.tsx"
click node_toast "https://github.com/utkarshsharma06/italostudy-app/blob/main/src/hooks/use-toast.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_router,node_layout toneBlue
class node_dashboard,node_practice,node_examresults,node_examcontext,node_examconfig,node_proctor,node_proctorhook toneAmber
class node_authui,node_auth,node_planaccess,node_pricing toneMint
class node_consultant toneRose
class node_supabase,node_storage,node_settings,node_liveedit,node_button,node_dialog,node_otp,node_toast,node_student toneIndigo
```

## Components

### Application shell

- [App routing](https://github.com/utkarshsharma06/italostudy-app/blob/main/src/App.tsx): `src/App.tsx`
- [App layout](https://github.com/utkarshsharma06/italostudy-app/blob/main/src/components/Layout.tsx): `src/components/Layout.tsx`

### Learning and exams

- [Student dashboard](https://github.com/utkarshsharma06/italostudy-app/blob/main/src/pages/Dashboard.tsx): `src/pages/Dashboard.tsx`
- [Practice and exams](https://github.com/utkarshsharma06/italostudy-app/blob/main/src/pages/Practice.tsx): `src/pages/Practice.tsx`
- [Exam results](https://github.com/utkarshsharma06/italostudy-app/blob/main/src/pages/Results.tsx): `src/pages/Results.tsx`
- [Exam selection](https://github.com/utkarshsharma06/italostudy-app/blob/main/src/context/ExamContext.tsx): `src/context/ExamContext.tsx`
- [Exam definitions](https://github.com/utkarshsharma06/italostudy-app/blob/main/src/config/exams.ts): `src/config/exams.ts`
- [Exam proctoring](https://github.com/utkarshsharma06/italostudy-app/blob/main/src/proctoring/violationManager.ts): `src/proctoring/violationManager.ts`
- [Proctoring hook](https://github.com/utkarshsharma06/italostudy-app/blob/main/src/hooks/useProctoring.tsx): `src/hooks/useProctoring.tsx`

### Account and access

- [Sign-in interface](https://github.com/utkarshsharma06/italostudy-app/blob/main/src/components/auth/AuthModal.tsx): `src/components/auth/AuthModal.tsx`
- [Authentication state](https://github.com/utkarshsharma06/italostudy-app/blob/main/src/lib/auth.tsx): `src/lib/auth.tsx`
- [Plan and usage limits](https://github.com/utkarshsharma06/italostudy-app/blob/main/src/hooks/usePlanAccess.ts): `src/hooks/usePlanAccess.ts`
- [Pricing interface](https://github.com/utkarshsharma06/italostudy-app/blob/main/src/components/PricingModal.tsx): `src/components/PricingModal.tsx`

### Admissions support

- [Application review](https://github.com/utkarshsharma06/italostudy-app/blob/main/src/components/consultant/ConsultantApplicationDetail.tsx): `src/components/consultant/ConsultantApplicationDetail.tsx`

### Shared platform

- [Supabase client](https://github.com/utkarshsharma06/italostudy-app/blob/main/src/integrations/supabase/client.ts): `src/integrations/supabase/client.ts`
- [Shared session storage](https://github.com/utkarshsharma06/italostudy-app/blob/main/src/lib/sharedStorage.ts): `src/lib/sharedStorage.ts`
- [System settings](https://github.com/utkarshsharma06/italostudy-app/blob/main/src/context/SystemSettingsContext.tsx): `src/context/SystemSettingsContext.tsx`
- [Live content editing](https://github.com/utkarshsharma06/italostudy-app/blob/main/src/contexts/LiveEditContext.tsx): `src/contexts/LiveEditContext.tsx`
- [Button component](https://github.com/utkarshsharma06/italostudy-app/blob/main/src/components/ui/button.tsx): `src/components/ui/button.tsx`
- [Dialog component](https://github.com/utkarshsharma06/italostudy-app/blob/main/src/components/ui/dialog.tsx): `src/components/ui/dialog.tsx`
- [OTP input](https://github.com/utkarshsharma06/italostudy-app/blob/main/src/components/ui/input-otp.tsx): `src/components/ui/input-otp.tsx`
- [Toast state](https://github.com/utkarshsharma06/italostudy-app/blob/main/src/hooks/use-toast.ts): `src/hooks/use-toast.ts`

### Other components

- **Student**

## Connections

- Student → App routing: opens app (evidence: `src/App.tsx`)
- App routing → Sign-in interface: routes to (evidence: `src/App.tsx`)
- App routing → App layout: uses layout (evidence: `src/components/Layout.tsx`)
- App routing → Proctoring hook: routes to
- Sign-in interface → Authentication state: uses auth (evidence: `src/components/auth/AuthModal.tsx`)
- Sign-in interface → Dialog component: renders (evidence: `src/components/auth/AuthModal.tsx`)
- Sign-in interface → OTP input: uses (evidence: `src/components/auth/AuthModal.tsx`)
- Authentication state → Supabase client: uses (evidence: `src/lib/auth.tsx`)
- Supabase client → Shared session storage: configures auth storage (evidence: `src/integrations/supabase/client.ts`)
- Exam selection → Exam definitions: loads definitions (evidence: `src/context/ExamContext.tsx`)
- Exam selection → Authentication state: reads user profile (evidence: `src/context/ExamContext.tsx`)
- Exam selection → Supabase client: reads and updates (evidence: `src/context/ExamContext.tsx`)
- Plan and usage limits → Authentication state: reads user (evidence: `src/hooks/usePlanAccess.ts`)
- Plan and usage limits → Supabase client: checks usage (evidence: `src/hooks/usePlanAccess.ts`)
- Plan and usage limits → Pricing interface: opens pricing (evidence: `src/hooks/usePlanAccess.ts`)
- Proctoring hook → Exam proctoring: manages violations (evidence: `src/hooks/useProctoring.tsx`)
- Exam proctoring → Supabase client: uses
- System settings → Supabase client: reads settings (evidence: `src/context/SystemSettingsContext.tsx`)
- Live content editing → Supabase client: saves content (evidence: `src/contexts/LiveEditContext.tsx`)
- Application review → Supabase client: uses
- App layout → Authentication state: uses auth (evidence: `src/components/Layout.tsx`)
- App layout → Plan and usage limits: checks access (evidence: `src/components/Layout.tsx`)
- App layout → Button component: uses (evidence: `src/components/Layout.tsx`)
- App layout → Toast state: uses (evidence: `src/components/Layout.tsx`)
