# mahantyjayanta340-collab/classradar architecture

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

## Overview

ClassRadar is a student-facing academic routine and campus-notice PWA. Its documented workflow is to use a selected section’s schedule to show current and upcoming classes, while also presenting notices and handling holidays and reminders. The README documents these capabilities, but the only sampled source is the service worker, so internal wiring for the app features is not verified; those links reflect the documented behavior. Offline caching and fetch fallback are directly supported by `sw.js`.

Main entry points: [`index.html`](https://github.com/mahantyjayanta340-collab/classradar/blob/main/index.html) (ClassRadar app), [`sw.js`](https://github.com/mahantyjayanta340-collab/classradar/blob/main/sw.js) (Service worker), [`manifest.json`](https://github.com/mahantyjayanta340-collab/classradar/blob/main/manifest.json) (Web app manifest)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_class_view["Class experience"]
  node_app["ClassRadar app<br/>[index.html]"]
  node_section_routine["Section routines<br/>[index.html]"]
  node_class_radar["Class radar<br/>[index.html]"]
  node_holiday_handling["Holiday handling<br/>[index.html]"]
  node_reminders["Period reminders<br/>[index.html]"]
end

subgraph group_campus_info["Campus information"]
  node_notices["Campus notices<br/>[index.html]"]
end

subgraph group_pwa_runtime["PWA runtime"]
  node_service_worker["Service worker<br/>[sw.js]"]
  node_cache[("CacheStorage")]
  node_manifest["Web app manifest<br/>[manifest.json]"]
end

node_student(("Student"))
node_sheets["Google Sheets API"]
node_network["Network"]

node_student -->|"opens"| node_app
node_student -->|"selects section"| node_section_routine
node_app -->|"uses schedule"| node_section_routine
node_app -->|"shows status"| node_class_radar
node_app -->|"handles off-days"| node_holiday_handling
node_app -->|"configures alerts"| node_reminders
node_app -->|"displays"| node_notices
node_notices -.->|"syncs notices"| node_sheets
node_service_worker -->|"reads and writes"| node_cache
node_service_worker -->|"fetches on miss"| node_network
node_service_worker -->|"caches asset"| node_manifest

click node_app "https://github.com/mahantyjayanta340-collab/classradar/blob/main/index.html"
click node_section_routine "https://github.com/mahantyjayanta340-collab/classradar/blob/main/index.html"
click node_class_radar "https://github.com/mahantyjayanta340-collab/classradar/blob/main/index.html"
click node_holiday_handling "https://github.com/mahantyjayanta340-collab/classradar/blob/main/index.html"
click node_reminders "https://github.com/mahantyjayanta340-collab/classradar/blob/main/index.html"
click node_notices "https://github.com/mahantyjayanta340-collab/classradar/blob/main/index.html"
click node_service_worker "https://github.com/mahantyjayanta340-collab/classradar/blob/main/sw.js"
click node_manifest "https://github.com/mahantyjayanta340-collab/classradar/blob/main/manifest.json"

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_section_routine,node_class_radar,node_holiday_handling,node_reminders toneBlue
class node_notices toneAmber
class node_service_worker,node_cache,node_manifest,node_sheets toneMint
class node_student,node_network toneIndigo
```

## Components

### Class experience

- [ClassRadar app](https://github.com/mahantyjayanta340-collab/classradar/blob/main/index.html): `index.html`
- [Section routines](https://github.com/mahantyjayanta340-collab/classradar/blob/main/index.html): `index.html`
- [Class radar](https://github.com/mahantyjayanta340-collab/classradar/blob/main/index.html): `index.html`
- [Holiday handling](https://github.com/mahantyjayanta340-collab/classradar/blob/main/index.html): `index.html`
- [Period reminders](https://github.com/mahantyjayanta340-collab/classradar/blob/main/index.html): `index.html`

### Campus information

- [Campus notices](https://github.com/mahantyjayanta340-collab/classradar/blob/main/index.html): `index.html`

### PWA runtime

- [Service worker](https://github.com/mahantyjayanta340-collab/classradar/blob/main/sw.js): `sw.js`
- **CacheStorage**
- [Web app manifest](https://github.com/mahantyjayanta340-collab/classradar/blob/main/manifest.json): `manifest.json`

### Other components

- **Student**
- **Google Sheets API**
- **Network**

## Connections

- Student → ClassRadar app: opens
- Student → Section routines: selects section
- ClassRadar app → Section routines: uses schedule
- ClassRadar app → Class radar: shows status
- ClassRadar app → Holiday handling: handles off-days
- ClassRadar app → Period reminders: configures alerts
- ClassRadar app → Campus notices: displays
- Campus notices → Google Sheets API: syncs notices
- Service worker → CacheStorage: reads and writes
- Service worker → Network: fetches on miss
- Service worker → Web app manifest: caches asset
