# gopikrishna7733/bidding-interface architecture

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

- Interactive diagram: https://gitdiagram.com/gopikrishna7733/bidding-interface
- Repository: https://github.com/gopikrishna7733/bidding-interface

## Overview

Bidding-Interface is a browser-based quiz auction: a quiz master prepares and releases questions, teams bid for the chance to answer, and a projector page presents the live auction and results. Shared state and auction rules live in a localStorage-backed store, so the README’s limited documentation does not establish any multi-device or server workflow. The sampled files support the main roles and state model; some page-to-store calls and the effect scripts’ loading relationships are not shown, so those links are omitted.

Main entry points: [`store.js`](https://github.com/gopikrishna7733/bidding-interface/blob/main/store.js) (Auction and scoring rules), [`admin.js`](https://github.com/gopikrishna7733/bidding-interface/blob/main/admin.js) (Question and team admin), [`bidder.js`](https://github.com/gopikrishna7733/bidding-interface/blob/main/bidder.js) (Team bidding and answers), [`live.js`](https://github.com/gopikrishna7733/bidding-interface/blob/main/live.js) (Live auction board)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_auction["Auction workflow"]
  node_admin["Question and team admin<br/>[admin.js]"]
  node_bidder["Team bidding and answers<br/>[bidder.js]"]
  node_projector["Live auction board<br/>[live.js]"]
end

subgraph group_state["Shared state"]
  node_auction_rules["Auction and scoring rules<br/>[store.js]"]
  node_browser_storage[("Browser localStorage")]
end

subgraph group_presentation["Interface effects"]
  node_particles["Particle hover effects<br/>[particles.js]"]
  node_spotlight["Spotlight hover effects<br/>[spotlight.js]"]
end

node_quizmaster(("Quiz master"))
node_teams(("Teams"))
node_projector_viewer(("Projector viewers"))

node_quizmaster -->|"manages questions"| node_admin
node_teams -->|"bid and answer"| node_bidder
node_projector_viewer -->|"views auction"| node_projector
node_auction_rules -->|"reads and writes"| node_browser_storage
node_projector -->|"reads saved data"| node_auction_rules
node_admin -->|"loads and saves"| node_auction_rules
node_bidder -->|"saves state"| node_auction_rules

click node_admin "https://github.com/gopikrishna7733/bidding-interface/blob/main/admin.js"
click node_bidder "https://github.com/gopikrishna7733/bidding-interface/blob/main/bidder.js"
click node_projector "https://github.com/gopikrishna7733/bidding-interface/blob/main/live.js"
click node_auction_rules "https://github.com/gopikrishna7733/bidding-interface/blob/main/store.js"
click node_particles "https://github.com/gopikrishna7733/bidding-interface/blob/main/particles.js"
click node_spotlight "https://github.com/gopikrishna7733/bidding-interface/blob/main/spotlight.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_admin,node_bidder,node_projector,node_projector_viewer toneBlue
class node_auction_rules,node_browser_storage toneAmber
class node_particles,node_spotlight toneMint
class node_quizmaster,node_teams toneIndigo
```

## Components

### Auction workflow

- [Question and team admin](https://github.com/gopikrishna7733/bidding-interface/blob/main/admin.js): `admin.js`
- [Team bidding and answers](https://github.com/gopikrishna7733/bidding-interface/blob/main/bidder.js): `bidder.js`
- [Live auction board](https://github.com/gopikrishna7733/bidding-interface/blob/main/live.js): `live.js`

### Shared state

- [Auction and scoring rules](https://github.com/gopikrishna7733/bidding-interface/blob/main/store.js): `store.js`
- **Browser localStorage**

### Interface effects

- [Particle hover effects](https://github.com/gopikrishna7733/bidding-interface/blob/main/particles.js): `particles.js`
- [Spotlight hover effects](https://github.com/gopikrishna7733/bidding-interface/blob/main/spotlight.js): `spotlight.js`

### Other components

- **Quiz master**
- **Teams**
- **Projector viewers**

## Connections

- Quiz master → Question and team admin: manages questions (evidence: `admin.js`)
- Teams → Team bidding and answers: bid and answer (evidence: `bidder.js`)
- Projector viewers → Live auction board: views auction (evidence: `live.js`)
- Auction and scoring rules → Browser localStorage: reads and writes (evidence: `store.js`)
- Live auction board → Auction and scoring rules: reads saved data (evidence: `live.js`)
- Question and team admin → Auction and scoring rules: loads and saves (evidence: `admin.js`)
- Team bidding and answers → Auction and scoring rules: saves state (evidence: `bidder.js`)
