# ayan2345708/pujo architecture

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

- Interactive diagram: https://gitdiagram.com/ayan2345708/pujo
- Repository: https://github.com/ayan2345708/pujo

## Overview

Pujo is a browser-based festival site. Visitors browse festival information, use search and calendar features, listen to devotional audio, save stories, and submit contributions; administrators review and update submissions. The sampled JavaScript supports these interactive flows, including browser storage and an external form-submission service. The excerpts are partial, so the graph omits uncertain wiring and represents broader page content only where supported by the tree.

Main entry points: [`script.js`](https://github.com/ayan2345708/pujo/blob/main/script.js) (Page interactions), [`index.html`](https://github.com/ayan2345708/pujo/blob/main/index.html) (Pujo page), [`style.css`](https://github.com/ayan2345708/pujo/blob/main/style.css) (Site styling), [`sounds`](https://github.com/ayan2345708/pujo/tree/main/sounds) (Devotional tracks)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_site["Site experience"]
  node_page["Pujo page<br/>[index.html]"]
  node_browser["Page interactions<br/>[script.js]"]
  node_styles["Site styling<br/>[style.css]"]
end

subgraph group_content["Festival content"]
  node_festival["Festival sections<br/>[index.html]"]
  node_calendar["Panjika calendar<br/>[script.js]"]
end

subgraph group_interactive["Visitor tools"]
  node_audio["Audio player<br/>[script.js]"]
  node_tracks[("Devotional tracks")]
  node_mahalaya["Mahalaya audio<br/>[chandi-path.mp3]"]
  node_search["Site search<br/>[script.js]"]
  node_bookmarks["Story bookmarks<br/>[script.js]"]
end

subgraph group_operations["Submissions"]
  node_submission["Submission forms<br/>[script.js]"]
  node_moderation["Admin review<br/>[script.js]"]
end

node_visitor(("Visitor"))
node_storage[("Browser storage")]
node_email["FormSubmit service"]

node_visitor -->|"opens"| node_page
node_page -->|"provides interface"| node_browser
node_page -->|"uses styles"| node_styles
node_browser -->|"renders"| node_calendar
node_browser -->|"controls"| node_audio
node_audio -->|"plays tracks"| node_tracks
node_audio -->|"plays audio"| node_mahalaya
node_browser -->|"renders results"| node_search
node_browser -->|"handles saves"| node_bookmarks
node_bookmarks -->|"reads and writes"| node_storage
node_visitor -->|"submits form"| node_submission
node_submission -.->|"posts form"| node_email
node_moderation -->|"reads and updates"| node_storage
node_browser -->|"interacts with"| node_festival

click node_page "https://github.com/ayan2345708/pujo/blob/main/index.html"
click node_browser "https://github.com/ayan2345708/pujo/blob/main/script.js"
click node_styles "https://github.com/ayan2345708/pujo/blob/main/style.css"
click node_festival "https://github.com/ayan2345708/pujo/blob/main/index.html"
click node_calendar "https://github.com/ayan2345708/pujo/blob/main/script.js"
click node_audio "https://github.com/ayan2345708/pujo/blob/main/script.js"
click node_tracks "https://github.com/ayan2345708/pujo/tree/main/sounds"
click node_mahalaya "https://github.com/ayan2345708/pujo/blob/main/sounds/chandi-path.mp3"
click node_search "https://github.com/ayan2345708/pujo/blob/main/script.js"
click node_bookmarks "https://github.com/ayan2345708/pujo/blob/main/script.js"
click node_submission "https://github.com/ayan2345708/pujo/blob/main/script.js"
click node_moderation "https://github.com/ayan2345708/pujo/blob/main/script.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_page,node_browser,node_styles toneBlue
class node_festival,node_calendar,node_storage toneAmber
class node_audio,node_tracks,node_mahalaya,node_search,node_bookmarks toneMint
class node_submission,node_moderation toneRose
class node_visitor,node_email toneIndigo
```

## Components

### Site experience

- [Pujo page](https://github.com/ayan2345708/pujo/blob/main/index.html): `index.html`
- [Page interactions](https://github.com/ayan2345708/pujo/blob/main/script.js): `script.js`
- [Site styling](https://github.com/ayan2345708/pujo/blob/main/style.css): `style.css`

### Festival content

- [Festival sections](https://github.com/ayan2345708/pujo/blob/main/index.html): `index.html`
- [Panjika calendar](https://github.com/ayan2345708/pujo/blob/main/script.js): `script.js`

### Visitor tools

- [Audio player](https://github.com/ayan2345708/pujo/blob/main/script.js): `script.js`
- [Devotional tracks](https://github.com/ayan2345708/pujo/tree/main/sounds): `sounds`
- [Mahalaya audio](https://github.com/ayan2345708/pujo/blob/main/sounds/chandi-path.mp3): `sounds/chandi-path.mp3`
- [Site search](https://github.com/ayan2345708/pujo/blob/main/script.js): `script.js`
- [Story bookmarks](https://github.com/ayan2345708/pujo/blob/main/script.js): `script.js`

### Submissions

- [Submission forms](https://github.com/ayan2345708/pujo/blob/main/script.js): `script.js`
- [Admin review](https://github.com/ayan2345708/pujo/blob/main/script.js): `script.js`

### Other components

- **Visitor**
- **Browser storage**
- **FormSubmit service**

## Connections

- Visitor → Pujo page: opens
- Pujo page → Page interactions: provides interface
- Pujo page → Site styling: uses styles
- Page interactions → Panjika calendar: renders
- Page interactions → Audio player: controls
- Audio player → Devotional tracks: plays tracks
- Audio player → Mahalaya audio: plays audio
- Page interactions → Site search: renders results
- Page interactions → Story bookmarks: handles saves
- Story bookmarks → Browser storage: reads and writes
- Visitor → Submission forms: submits form
- Submission forms → FormSubmit service: posts form
- Admin review → Browser storage: reads and updates
- Page interactions → Festival sections: interacts with
