# himanshudangwal16-gemini/himanshudangwal16-gemini--school-virtual-classroom-platform architecture

> Architecture diagram of the GitHub repository himanshudangwal16-gemini/himanshudangwal16-gemini--school-virtual-classroom-platform, 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/himanshudangwal16-gemini/himanshudangwal16-gemini--school-virtual-classroom-platform
- Repository: https://github.com/himanshudangwal16-gemini/himanshudangwal16-gemini--school-virtual-classroom-platform

## Overview

Vidyalaya is a role-based school portal for managing class sessions, running live classroom activities, recording attendance and transcripts, and exporting reports. The main workflow is sign-in and profile setup, session discovery or creation, entry to a live class, and persistence of classroom records; administrators also manage users and export attendance. Firebase wrappers provide cloud storage with a local-storage fallback, while Google Sheets is an optional reporting integration. The README is a generic AI Studio run guide; component excerpts are partial, so uncertain internal wiring is omitted.

Main entry points: [`src/firebase.ts`](https://github.com/himanshudangwal16-gemini/himanshudangwal16-gemini--school-virtual-classroom-platform/blob/main/src/firebase.ts) (Firebase wrappers), [`src/App.tsx`](https://github.com/himanshudangwal16-gemini/himanshudangwal16-gemini--school-virtual-classroom-platform/blob/main/src/App.tsx) (Portal coordinator), [`src/components/Dashboard.tsx`](https://github.com/himanshudangwal16-gemini/himanshudangwal16-gemini--school-virtual-classroom-platform/blob/main/src/components/Dashboard.tsx) (Session dashboard), [`src/components/LiveClassroom.tsx`](https://github.com/himanshudangwal16-gemini/himanshudangwal16-gemini--school-virtual-classroom-platform/blob/main/src/components/LiveClassroom.tsx) (Live classroom)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Portal flow"]
  node_app["Portal coordinator<br/>[App.tsx]"]
  node_login["Sign-in and profile<br/>[Login.tsx]"]
  node_dashboard["Session dashboard<br/>[Dashboard.tsx]"]
end

subgraph group_classroom["Classroom operations"]
  node_classroom["Live classroom<br/>[LiveClassroom.tsx]"]
end

subgraph group_data["Identity and records"]
  node_firebase["Firebase wrappers<br/>[firebase.ts]"]
  node_models["Portal data models<br/>[types.ts]"]
  node_cloud[("Firebase Auth and Firestore")]
  node_local[("Local storage fallback")]
end

subgraph group_reporting["Administration and reports"]
  node_admin["Admin console<br/>[AdminPanel.tsx]"]
  node_sheets["Sheets report helpers<br/>[googleSheets.ts]"]
end

node_user(("School user"))
node_sheetsapi["Google Sheets API"]
node_meet["Google Meet"]

node_user -->|"uses portal"| node_app
node_app -->|"shows login"| node_login
node_app -->|"shows dashboard"| node_dashboard
node_app -->|"opens class"| node_classroom
node_app -->|"opens console"| node_admin
node_app -->|"checks profile"| node_firebase
node_login -->|"authenticates and saves profile"| node_firebase
node_dashboard -->|"manages sessions"| node_firebase
node_dashboard -.->|"exports session report"| node_sheets
node_classroom -->|"records attendance and transcript"| node_firebase
node_admin -->|"reads and updates records"| node_firebase
node_admin -.->|"exports attendance"| node_sheets
node_firebase -->|"reads and writes"| node_cloud
node_firebase -->|"falls back to"| node_local
node_sheets -.->|"creates and populates sheets"| node_sheetsapi
node_classroom -.->|"uses for video classes"| node_meet

click node_app "https://github.com/himanshudangwal16-gemini/himanshudangwal16-gemini--school-virtual-classroom-platform/blob/main/src/App.tsx"
click node_login "https://github.com/himanshudangwal16-gemini/himanshudangwal16-gemini--school-virtual-classroom-platform/blob/main/src/components/Login.tsx"
click node_dashboard "https://github.com/himanshudangwal16-gemini/himanshudangwal16-gemini--school-virtual-classroom-platform/blob/main/src/components/Dashboard.tsx"
click node_classroom "https://github.com/himanshudangwal16-gemini/himanshudangwal16-gemini--school-virtual-classroom-platform/blob/main/src/components/LiveClassroom.tsx"
click node_admin "https://github.com/himanshudangwal16-gemini/himanshudangwal16-gemini--school-virtual-classroom-platform/blob/main/src/components/AdminPanel.tsx"
click node_firebase "https://github.com/himanshudangwal16-gemini/himanshudangwal16-gemini--school-virtual-classroom-platform/blob/main/src/firebase.ts"
click node_models "https://github.com/himanshudangwal16-gemini/himanshudangwal16-gemini--school-virtual-classroom-platform/blob/main/src/types.ts"
click node_sheets "https://github.com/himanshudangwal16-gemini/himanshudangwal16-gemini--school-virtual-classroom-platform/blob/main/src/utils/googleSheets.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_login,node_dashboard,node_user toneBlue
class node_classroom toneAmber
class node_firebase,node_models,node_cloud,node_local,node_sheetsapi toneMint
class node_admin,node_sheets toneRose
class node_meet toneIndigo
```

## Components

### Portal flow

- [Portal coordinator](https://github.com/himanshudangwal16-gemini/himanshudangwal16-gemini--school-virtual-classroom-platform/blob/main/src/App.tsx): `src/App.tsx`
- [Sign-in and profile](https://github.com/himanshudangwal16-gemini/himanshudangwal16-gemini--school-virtual-classroom-platform/blob/main/src/components/Login.tsx): `src/components/Login.tsx`
- [Session dashboard](https://github.com/himanshudangwal16-gemini/himanshudangwal16-gemini--school-virtual-classroom-platform/blob/main/src/components/Dashboard.tsx): `src/components/Dashboard.tsx`

### Classroom operations

- [Live classroom](https://github.com/himanshudangwal16-gemini/himanshudangwal16-gemini--school-virtual-classroom-platform/blob/main/src/components/LiveClassroom.tsx): `src/components/LiveClassroom.tsx`

### Identity and records

- [Firebase wrappers](https://github.com/himanshudangwal16-gemini/himanshudangwal16-gemini--school-virtual-classroom-platform/blob/main/src/firebase.ts): `src/firebase.ts`
- [Portal data models](https://github.com/himanshudangwal16-gemini/himanshudangwal16-gemini--school-virtual-classroom-platform/blob/main/src/types.ts): `src/types.ts`
- **Firebase Auth and Firestore**
- **Local storage fallback**

### Administration and reports

- [Admin console](https://github.com/himanshudangwal16-gemini/himanshudangwal16-gemini--school-virtual-classroom-platform/blob/main/src/components/AdminPanel.tsx): `src/components/AdminPanel.tsx`
- [Sheets report helpers](https://github.com/himanshudangwal16-gemini/himanshudangwal16-gemini--school-virtual-classroom-platform/blob/main/src/utils/googleSheets.ts): `src/utils/googleSheets.ts`

### Other components

- **School user**
- **Google Sheets API**
- **Google Meet**

## Connections

- School user → Portal coordinator: uses portal
- Portal coordinator → Sign-in and profile: shows login
- Portal coordinator → Session dashboard: shows dashboard
- Portal coordinator → Live classroom: opens class
- Portal coordinator → Admin console: opens console
- Portal coordinator → Firebase wrappers: checks profile
- Sign-in and profile → Firebase wrappers: authenticates and saves profile
- Session dashboard → Firebase wrappers: manages sessions
- Session dashboard → Sheets report helpers: exports session report
- Live classroom → Firebase wrappers: records attendance and transcript
- Admin console → Firebase wrappers: reads and updates records
- Admin console → Sheets report helpers: exports attendance
- Firebase wrappers → Firebase Auth and Firestore: reads and writes
- Firebase wrappers → Local storage fallback: falls back to
- Sheets report helpers → Google Sheets API: creates and populates sheets
- Live classroom → Google Meet: uses for video classes
