# bhushanchavan04/quickstudyai architecture

> Architecture diagram of the GitHub repository bhushanchavan04/quickstudyai, 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/bhushanchavan04/quickstudyai
- Repository: https://github.com/bhushanchavan04/quickstudyai

## Overview

QuickStudy AI is a browser-based study tool for analyzing exam-paper images. A student uploads a paper in the React app; the app requests streamed analysis from Gemini and presents summaries, key concepts, question answers, marks, difficulty, and similar practice questions. The app also supports follow-up tutoring chat using the analysis as context, plus sign-in controls. The sampled Firebase service is a mock rather than a live integration. App excerpts are partial, so the graph preserves documented UI capabilities without inferring unsampled internal steps.

Main entry points: [`components/App.tsx`](https://github.com/bhushanchavan04/quickstudyai/blob/main/components/App.tsx) (Study workspace), [`services/geminiService.ts`](https://github.com/bhushanchavan04/quickstudyai/blob/main/services/geminiService.ts) (Paper analysis), [`types.ts`](https://github.com/bhushanchavan04/quickstudyai/blob/main/types.ts) (Analysis data types), [`components/icons.tsx`](https://github.com/bhushanchavan04/quickstudyai/blob/main/components/icons.tsx) (Interface icons)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interface["Study interface"]
  node_app["Study workspace<br/>[App.tsx]"]
  node_icons["Interface icons<br/>[icons.tsx]"]
end

subgraph group_ai["AI services"]
  node_analysis["Paper analysis<br/>[geminiService.ts]"]
  node_tutor["Tutor chat<br/>[geminiService.ts]"]
end

subgraph group_domain["App support"]
  node_auth["Demo authentication<br/>[firebase.ts]"]
  node_contracts["Analysis data types<br/>[types.ts]"]
end

node_student(("Student"))
node_gemini{{"Google Gemini"}}

node_student -->|"uploads papers"| node_app
node_app -->|"requests analysis"| node_analysis
node_analysis -->|"streams generation"| node_gemini
node_app -->|"starts chat"| node_tutor
node_tutor -->|"creates chat"| node_gemini
node_app -->|"uses auth controls"| node_auth
node_app -->|"renders icons"| node_icons
node_app -->|"uses result types"| node_contracts
node_analysis -->|"returns typed result"| node_contracts

click node_app "https://github.com/bhushanchavan04/quickstudyai/blob/main/components/App.tsx"
click node_icons "https://github.com/bhushanchavan04/quickstudyai/blob/main/components/icons.tsx"
click node_analysis "https://github.com/bhushanchavan04/quickstudyai/blob/main/services/geminiService.ts"
click node_tutor "https://github.com/bhushanchavan04/quickstudyai/blob/main/services/geminiService.ts"
click node_auth "https://github.com/bhushanchavan04/quickstudyai/blob/main/services/firebase.ts"
click node_contracts "https://github.com/bhushanchavan04/quickstudyai/blob/main/types.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_app,node_icons toneBlue
class node_analysis,node_tutor toneAmber
class node_auth,node_contracts toneMint
class node_student,node_gemini toneIndigo
```

## Components

### Study interface

- [Study workspace](https://github.com/bhushanchavan04/quickstudyai/blob/main/components/App.tsx): `components/App.tsx`
- [Interface icons](https://github.com/bhushanchavan04/quickstudyai/blob/main/components/icons.tsx): `components/icons.tsx`

### AI services

- [Paper analysis](https://github.com/bhushanchavan04/quickstudyai/blob/main/services/geminiService.ts): `services/geminiService.ts`
- [Tutor chat](https://github.com/bhushanchavan04/quickstudyai/blob/main/services/geminiService.ts): `services/geminiService.ts`

### App support

- [Demo authentication](https://github.com/bhushanchavan04/quickstudyai/blob/main/services/firebase.ts): `services/firebase.ts`
- [Analysis data types](https://github.com/bhushanchavan04/quickstudyai/blob/main/types.ts): `types.ts`

### Other components

- **Student**
- **Google Gemini**

## Connections

- Student → Study workspace: uploads papers (evidence: `components/App.tsx`)
- Study workspace → Paper analysis: requests analysis (evidence: `components/App.tsx`)
- Paper analysis → Google Gemini: streams generation (evidence: `services/geminiService.ts`)
- Study workspace → Tutor chat: starts chat (evidence: `components/App.tsx`)
- Tutor chat → Google Gemini: creates chat (evidence: `services/geminiService.ts`)
- Study workspace → Demo authentication: uses auth controls (evidence: `components/App.tsx`)
- Study workspace → Interface icons: renders icons (evidence: `components/App.tsx`)
- Study workspace → Analysis data types: uses result types (evidence: `components/App.tsx`)
- Paper analysis → Analysis data types: returns typed result (evidence: `services/geminiService.ts`)
