# ga1864281-hue/sfi architecture

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

- Interactive diagram: https://gitdiagram.com/ga1864281-hue/sfi
- Repository: https://github.com/ga1864281-hue/sfi

## Overview

This is a small browser-side interaction script, not a larger application: it enhances pages with navigation, filters, tabs, accordions, toggles, a gallery lightbox, and hotspot details. The sampled code shows initialization on DOMContentLoaded and handlers manipulating page elements directly; no server, persistence, or external integrations are evidenced. The HTML and styles are present in the tree but not sampled, so their specific contents and wiring are not asserted.

Main entry points: [`scripts.js`](https://github.com/ga1864281-hue/sfi/blob/main/scripts.js) (Page initialization)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_browser["Browser interactions"]
  node_dom_ready["Page initialization<br/>[scripts.js]"]
  node_mobile_menu["Mobile navigation<br/>[scripts.js]"]
  node_rank_filter["Rank table filters<br/>[scripts.js]"]
  node_curriculum_tabs["Curriculum tabs<br/>[scripts.js]"]
  node_curriculum_accordion["Curriculum accordion<br/>[scripts.js]"]
  node_hostel_toggles["Hostel toggles<br/>[scripts.js]"]
  node_gallery_filter["Gallery filters<br/>[scripts.js]"]
  node_lightbox["Gallery lightbox<br/>[scripts.js]"]
  node_hotspot_tabs["Hotspot tabs<br/>[scripts.js]"]
end

node_visitor(("Page visitor"))

node_dom_ready -->|"initializes"| node_mobile_menu
node_dom_ready -->|"initializes"| node_rank_filter
node_dom_ready -->|"initializes"| node_curriculum_tabs
node_dom_ready -->|"initializes"| node_curriculum_accordion
node_dom_ready -->|"initializes"| node_hostel_toggles
node_dom_ready -->|"initializes"| node_gallery_filter
node_dom_ready -->|"initializes"| node_lightbox
node_dom_ready -->|"initializes"| node_hotspot_tabs
node_visitor -->|"clicks navigation"| node_mobile_menu
node_visitor -->|"searches and filters"| node_rank_filter
node_visitor -->|"selects tabs"| node_curriculum_tabs
node_visitor -->|"opens sections"| node_curriculum_accordion
node_visitor -->|"switches views"| node_hostel_toggles
node_visitor -->|"filters gallery"| node_gallery_filter
node_visitor -->|"opens images"| node_lightbox
node_visitor -->|"selects hotspot"| node_hotspot_tabs

click node_dom_ready "https://github.com/ga1864281-hue/sfi/blob/main/scripts.js"
click node_mobile_menu "https://github.com/ga1864281-hue/sfi/blob/main/scripts.js"
click node_rank_filter "https://github.com/ga1864281-hue/sfi/blob/main/scripts.js"
click node_curriculum_tabs "https://github.com/ga1864281-hue/sfi/blob/main/scripts.js"
click node_curriculum_accordion "https://github.com/ga1864281-hue/sfi/blob/main/scripts.js"
click node_hostel_toggles "https://github.com/ga1864281-hue/sfi/blob/main/scripts.js"
click node_gallery_filter "https://github.com/ga1864281-hue/sfi/blob/main/scripts.js"
click node_lightbox "https://github.com/ga1864281-hue/sfi/blob/main/scripts.js"
click node_hotspot_tabs "https://github.com/ga1864281-hue/sfi/blob/main/scripts.js"

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_dom_ready,node_mobile_menu,node_rank_filter,node_curriculum_tabs,node_curriculum_accordion,node_hostel_toggles,node_gallery_filter,node_lightbox,node_hotspot_tabs toneBlue
class node_visitor toneIndigo
```

## Components

### Browser interactions

- [Page initialization](https://github.com/ga1864281-hue/sfi/blob/main/scripts.js): `scripts.js`
- [Mobile navigation](https://github.com/ga1864281-hue/sfi/blob/main/scripts.js): `scripts.js`
- [Rank table filters](https://github.com/ga1864281-hue/sfi/blob/main/scripts.js): `scripts.js`
- [Curriculum tabs](https://github.com/ga1864281-hue/sfi/blob/main/scripts.js): `scripts.js`
- [Curriculum accordion](https://github.com/ga1864281-hue/sfi/blob/main/scripts.js): `scripts.js`
- [Hostel toggles](https://github.com/ga1864281-hue/sfi/blob/main/scripts.js): `scripts.js`
- [Gallery filters](https://github.com/ga1864281-hue/sfi/blob/main/scripts.js): `scripts.js`
- [Gallery lightbox](https://github.com/ga1864281-hue/sfi/blob/main/scripts.js): `scripts.js`
- [Hotspot tabs](https://github.com/ga1864281-hue/sfi/blob/main/scripts.js): `scripts.js`

### Other components

- **Page visitor**

## Connections

- Page initialization → Mobile navigation: initializes (evidence: `scripts.js`)
- Page initialization → Rank table filters: initializes (evidence: `scripts.js`)
- Page initialization → Curriculum tabs: initializes (evidence: `scripts.js`)
- Page initialization → Curriculum accordion: initializes (evidence: `scripts.js`)
- Page initialization → Hostel toggles: initializes (evidence: `scripts.js`)
- Page initialization → Gallery filters: initializes (evidence: `scripts.js`)
- Page initialization → Gallery lightbox: initializes (evidence: `scripts.js`)
- Page initialization → Hotspot tabs: initializes (evidence: `scripts.js`)
- Page visitor → Mobile navigation: clicks navigation (evidence: `scripts.js`)
- Page visitor → Rank table filters: searches and filters (evidence: `scripts.js`)
- Page visitor → Curriculum tabs: selects tabs (evidence: `scripts.js`)
- Page visitor → Curriculum accordion: opens sections (evidence: `scripts.js`)
- Page visitor → Hostel toggles: switches views (evidence: `scripts.js`)
- Page visitor → Gallery filters: filters gallery (evidence: `scripts.js`)
- Page visitor → Gallery lightbox: opens images (evidence: `scripts.js`)
- Page visitor → Hotspot tabs: selects hotspot (evidence: `scripts.js`)
