# nithish-2005/graviton-2026-registrations architecture

> Architecture diagram of the GitHub repository nithish-2005/graviton-2026-registrations, 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/nithish-2005/graviton-2026-registrations
- Repository: https://github.com/nithish-2005/graviton-2026-registrations

## Overview

GRAVITON 2026 is a symposium website and registration-management platform. Participants discover events on the landing page, register for an event, submit payment proof, and check verification status or access a digital pass. Organizers review registrations and proofs, update verification, and contact participants. The README documents Google Apps Script and Sheets as the primary backend; sampled admin code also uses an SMTP email endpoint. Backend details not present in the sampled source are represented only where documented.

Main entry points: [`apps-script.gs`](https://github.com/nithish-2005/graviton-2026-registrations/blob/master/apps-script.gs) (Registration API), [`register.js`](https://github.com/nithish-2005/graviton-2026-registrations/blob/master/register.js) (Event registration), [`payment.js`](https://github.com/nithish-2005/graviton-2026-registrations/blob/master/payment.js) (Payment proof), [`admin.js`](https://github.com/nithish-2005/graviton-2026-registrations/blob/master/admin.js) (Admin dashboard)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_public["Participant experience"]
  node_landing["Event discovery<br/>[index.html]"]
  node_landingjs["Landing interactions<br/>[script.js]"]
  node_registration["Event registration<br/>[register.js]"]
  node_payment["Payment proof<br/>[payment.js]"]
  node_status["Status and pass<br/>[status.js]"]
end

subgraph group_admin["Organizer operations"]
  node_admin["Admin dashboard<br/>[admin.js]"]
end

subgraph group_backend["Registration backend"]
  node_config["Frontend settings<br/>[config.js]"]
  node_gas["Registration API<br/>[apps-script.gs]"]
  node_blobupload["Screenshot upload<br/>[config.js]"]
  node_smtpapi["SMTP email endpoint<br/>[send-email.js]"]
end

subgraph group_integrations["External services"]
  node_sheets[("Registration records")]
  node_blob[("Vercel Blob")]
  node_mailer["Email transport"]
  node_email(("Participant inbox"))
end

node_participant(("Participant"))
node_adminuser(("Organizer"))

node_participant -->|"visits"| node_landing
node_landing -->|"loads interactions"| node_landingjs
node_participant -->|"registers"| node_registration
node_registration -->|"reads settings"| node_config
node_registration -->|"uploads proof"| node_blobupload
node_blobupload -->|"stores image"| node_blob
node_registration -->|"submits registration"| node_gas
node_gas -->|"writes records"| node_sheets
node_participant -->|"submits proof"| node_payment
node_payment -->|"reads settings"| node_config
node_payment -->|"uploads proof"| node_blobupload
node_payment -->|"submits payment details"| node_gas
node_participant -->|"checks registration"| node_status
node_status -->|"requests status"| node_gas
node_gas -->|"reads records"| node_sheets
node_adminuser -->|"manages registrations"| node_admin
node_admin -->|"reads settings"| node_config
node_admin -->|"requests records and verification"| node_gas
node_admin -->|"requests email"| node_smtpapi
node_smtpapi -->|"sends message"| node_mailer
node_mailer -->|"delivers confirmation"| node_email
node_gas -.->|"sends verification email"| node_email

click node_landing "https://github.com/nithish-2005/graviton-2026-registrations/blob/master/index.html"
click node_landingjs "https://github.com/nithish-2005/graviton-2026-registrations/blob/master/script.js"
click node_registration "https://github.com/nithish-2005/graviton-2026-registrations/blob/master/register.js"
click node_payment "https://github.com/nithish-2005/graviton-2026-registrations/blob/master/payment.js"
click node_status "https://github.com/nithish-2005/graviton-2026-registrations/blob/master/status.js"
click node_admin "https://github.com/nithish-2005/graviton-2026-registrations/blob/master/admin.js"
click node_config "https://github.com/nithish-2005/graviton-2026-registrations/blob/master/config.js"
click node_gas "https://github.com/nithish-2005/graviton-2026-registrations/blob/master/apps-script.gs"
click node_blobupload "https://github.com/nithish-2005/graviton-2026-registrations/blob/master/config.js"
click node_smtpapi "https://github.com/nithish-2005/graviton-2026-registrations/blob/master/api/send-email.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_landing,node_landingjs,node_registration,node_payment,node_status toneBlue
class node_admin toneAmber
class node_config,node_gas,node_blobupload,node_smtpapi toneMint
class node_sheets,node_blob,node_mailer,node_email toneRose
class node_participant,node_adminuser toneIndigo
```

## Components

### Participant experience

- [Event discovery](https://github.com/nithish-2005/graviton-2026-registrations/blob/master/index.html): `index.html`
- [Landing interactions](https://github.com/nithish-2005/graviton-2026-registrations/blob/master/script.js): `script.js`
- [Event registration](https://github.com/nithish-2005/graviton-2026-registrations/blob/master/register.js): `register.js`
- [Payment proof](https://github.com/nithish-2005/graviton-2026-registrations/blob/master/payment.js): `payment.js`
- [Status and pass](https://github.com/nithish-2005/graviton-2026-registrations/blob/master/status.js): `status.js`

### Organizer operations

- [Admin dashboard](https://github.com/nithish-2005/graviton-2026-registrations/blob/master/admin.js): `admin.js`

### Registration backend

- [Frontend settings](https://github.com/nithish-2005/graviton-2026-registrations/blob/master/config.js): `config.js`
- [Registration API](https://github.com/nithish-2005/graviton-2026-registrations/blob/master/apps-script.gs): `apps-script.gs`
- [Screenshot upload](https://github.com/nithish-2005/graviton-2026-registrations/blob/master/config.js): `config.js`
- [SMTP email endpoint](https://github.com/nithish-2005/graviton-2026-registrations/blob/master/api/send-email.js): `api/send-email.js`

### External services

- **Registration records**
- **Vercel Blob**
- **Email transport**
- **Participant inbox**

### Other components

- **Participant**
- **Organizer**

## Connections

- Participant → Event discovery: visits
- Event discovery → Landing interactions: loads interactions
- Participant → Event registration: registers
- Event registration → Frontend settings: reads settings
- Event registration → Screenshot upload: uploads proof
- Screenshot upload → Vercel Blob: stores image
- Event registration → Registration API: submits registration
- Registration API → Registration records: writes records
- Participant → Payment proof: submits proof
- Payment proof → Frontend settings: reads settings
- Payment proof → Screenshot upload: uploads proof
- Payment proof → Registration API: submits payment details
- Participant → Status and pass: checks registration
- Status and pass → Registration API: requests status
- Registration API → Registration records: reads records
- Organizer → Admin dashboard: manages registrations
- Admin dashboard → Frontend settings: reads settings
- Admin dashboard → Registration API: requests records and verification
- Admin dashboard → SMTP email endpoint: requests email
- SMTP email endpoint → Email transport: sends message
- Email transport → Participant inbox: delivers confirmation
- Registration API → Participant inbox: sends verification email
