# ayushkumar77737/jaygurubandey architecture

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

## Overview

This is a spiritual-community website for Jai Guru Bande: visitors enter through a landing page, authenticate, then navigate a protected portal for teachings, events, community content, and account/contribution functions. The sampled router and components establish route dispatch, authentication, shared layout, session checks, and localization. Page names indicate additional product areas, but their implementations and service wiring were not sampled, so those branches are represented without speculative connections.

Main entry points: [`src/main.jsx`](https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/main.jsx) (Route dispatcher), [`src/App.jsx`](https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/App.jsx) (Portal shell), [`src/auth/AuthPage.jsx`](https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/auth/AuthPage.jsx) (Sign in / register), [`src/firebase/firebase.js`](https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/firebase/firebase.js) (Firebase services)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Entry and Access"]
  node_router["Route dispatcher<br/>[main.jsx]"]
  node_landing["Public landing<br/>[Landing.jsx]"]
  node_authpage["Sign in / register<br/>[AuthPage.jsx]"]
  node_guard["Protected route<br/>[ProtectedRoute.jsx]"]
end

subgraph group_shared["Shared Experience"]
  node_app["Portal shell<br/>[App.jsx]"]
  node_navbar["Navigation<br/>[Navbar.jsx]"]
  node_hero["Home experience<br/>[Hero.jsx]"]
  node_cookies["Cookie consent<br/>[CookieConsent.jsx]"]
  node_idle["Idle logout<br/>[IdleLogout.jsx]"]
  node_home["Home page<br/>[Home.jsx]"]
end

subgraph group_teachings["Teachings and Events"]
  node_teachings["Satsang and bhajan<br/>[Satsang.jsx]"]
  node_media["Updates and media<br/>[Blog.jsx]"]
  node_programs["Programs and calendar<br/>[Program.jsx]"]
end

subgraph group_community["Community and Giving"]
  node_community["Community pages<br/>[Contact.jsx]"]
  node_contribute["Contributions<br/>[Contribute.jsx]"]
  node_account["Account and payments<br/>[Account.jsx]"]
end

subgraph group_services["Platform Services"]
  node_firebase[("Firebase services<br/>[firebase.js]")]
  node_captcha["Captcha verifier<br/>[verify-captcha.js]"]
  node_language["Language selector"]
  node_i18n["Translation setup<br/>[i18n.js]"]
end

node_visitor(("Visitor"))
node_google["Google reCAPTCHA"]

node_visitor -->|"opens site"| node_router
node_router -->|"dispatches route"| node_landing
node_router -->|"dispatches login"| node_authpage
node_router -->|"protects portal routes"| node_guard
node_guard -->|"renders when allowed"| node_app
node_app -->|"renders navigation"| node_navbar
node_app -->|"hosts routed page"| node_home
node_app -->|"renders consent"| node_cookies
node_app -->|"starts idle check"| node_idle
node_app -->|"checks auth state"| node_firebase
node_navbar -->|"signs out"| node_firebase
node_idle -->|"signs out"| node_firebase
node_authpage -->|"authenticates and stores profile"| node_firebase
node_home -->|"renders home content"| node_hero
node_authpage -->|"navigates after auth"| node_router
node_captcha -->|"verifies token"| node_google
node_router -->|"dispatches content routes"| node_teachings
node_router -->|"dispatches media routes"| node_media
node_router -->|"dispatches event routes"| node_programs
node_router -->|"dispatches community routes"| node_community
node_router -->|"dispatches giving routes"| node_contribute
node_router -->|"dispatches account routes"| node_account
node_router -->|"provides language control"| node_language
node_language -->|"changes language"| node_i18n
node_authpage -.->|"submits verification"| node_captcha

click node_router "https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/main.jsx"
click node_landing "https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/pages/Landing.jsx"
click node_authpage "https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/auth/AuthPage.jsx"
click node_guard "https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/auth/ProtectedRoute.jsx"
click node_app "https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/App.jsx"
click node_navbar "https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/Components/Navbar/Navbar.jsx"
click node_hero "https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/Components/Hero/Hero.jsx"
click node_cookies "https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/Components/Cookies/CookieConsent.jsx"
click node_idle "https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/utils/IdleLogout.jsx"
click node_home "https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/pages/Home.jsx"
click node_teachings "https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/pages/Satsang.jsx"
click node_media "https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/pages/Blog.jsx"
click node_programs "https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/pages/Program.jsx"
click node_community "https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/pages/Contact.jsx"
click node_contribute "https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/pages/Contribute.jsx"
click node_account "https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/pages/Account.jsx"
click node_firebase "https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/firebase/firebase.js"
click node_captcha "https://github.com/ayushkumar77737/jaygurubandey/blob/main/api/verify-captcha.js"
click node_language "https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/Components/LanguageSelector/LanguageSelector.jsx"
click node_i18n "https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/utils/i18n.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_router,node_landing,node_authpage,node_guard toneBlue
class node_app,node_navbar,node_hero,node_cookies,node_idle,node_home toneAmber
class node_teachings,node_media,node_programs toneMint
class node_community,node_contribute,node_account toneRose
class node_firebase,node_captcha,node_language,node_i18n,node_visitor,node_google toneIndigo
```

## Components

### Entry and Access

- [Route dispatcher](https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/main.jsx): `src/main.jsx`
- [Public landing](https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/pages/Landing.jsx): `src/pages/Landing.jsx`
- [Sign in / register](https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/auth/AuthPage.jsx): `src/auth/AuthPage.jsx`
- [Protected route](https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/auth/ProtectedRoute.jsx): `src/auth/ProtectedRoute.jsx`

### Shared Experience

- [Portal shell](https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/App.jsx): `src/App.jsx`
- [Navigation](https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/Components/Navbar/Navbar.jsx): `src/Components/Navbar/Navbar.jsx`
- [Home experience](https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/Components/Hero/Hero.jsx): `src/Components/Hero/Hero.jsx`
- [Cookie consent](https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/Components/Cookies/CookieConsent.jsx): `src/Components/Cookies/CookieConsent.jsx`
- [Idle logout](https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/utils/IdleLogout.jsx): `src/utils/IdleLogout.jsx`
- [Home page](https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/pages/Home.jsx): `src/pages/Home.jsx`

### Teachings and Events

- [Satsang and bhajan](https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/pages/Satsang.jsx): `src/pages/Satsang.jsx`
- [Updates and media](https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/pages/Blog.jsx): `src/pages/Blog.jsx`
- [Programs and calendar](https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/pages/Program.jsx): `src/pages/Program.jsx`

### Community and Giving

- [Community pages](https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/pages/Contact.jsx): `src/pages/Contact.jsx`
- [Contributions](https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/pages/Contribute.jsx): `src/pages/Contribute.jsx`
- [Account and payments](https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/pages/Account.jsx): `src/pages/Account.jsx`

### Platform Services

- [Firebase services](https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/firebase/firebase.js): `src/firebase/firebase.js`
- [Captcha verifier](https://github.com/ayushkumar77737/jaygurubandey/blob/main/api/verify-captcha.js): `api/verify-captcha.js`
- [Language selector](https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/Components/LanguageSelector/LanguageSelector.jsx): `src/Components/LanguageSelector/LanguageSelector.jsx`
- [Translation setup](https://github.com/ayushkumar77737/jaygurubandey/blob/main/src/utils/i18n.js): `src/utils/i18n.js`

### Other components

- **Visitor**
- **Google reCAPTCHA**

## Connections

- Visitor → Route dispatcher: opens site
- Route dispatcher → Public landing: dispatches route
- Route dispatcher → Sign in / register: dispatches login
- Route dispatcher → Protected route: protects portal routes
- Protected route → Portal shell: renders when allowed
- Portal shell → Navigation: renders navigation
- Portal shell → Home page: hosts routed page
- Portal shell → Cookie consent: renders consent
- Portal shell → Idle logout: starts idle check
- Portal shell → Firebase services: checks auth state
- Navigation → Firebase services: signs out
- Idle logout → Firebase services: signs out
- Sign in / register → Firebase services: authenticates and stores profile
- Home page → Home experience: renders home content
- Sign in / register → Route dispatcher: navigates after auth
- Captcha verifier → Google reCAPTCHA: verifies token
- Route dispatcher → Satsang and bhajan: dispatches content routes
- Route dispatcher → Updates and media: dispatches media routes
- Route dispatcher → Programs and calendar: dispatches event routes
- Route dispatcher → Community pages: dispatches community routes
- Route dispatcher → Contributions: dispatches giving routes
- Route dispatcher → Account and payments: dispatches account routes
- Route dispatcher → Language selector: provides language control
- Language selector → Translation setup: changes language
- Sign in / register → Captcha verifier: submits verification
