# sethsouvik54-dotcom/pujo_crowd_tracker architecture

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

- Interactive diagram: https://gitdiagram.com/sethsouvik54-dotcom/pujo_crowd_tracker
- Repository: https://github.com/sethsouvik54-dotcom/pujo_crowd_tracker

## Overview

PujoTracker is a React festival crowd-tracking app. Users browse and filter pandals, select stops for a route plan, ask an AI assistant questions, and organizers can view risk levels and update crowd status. The UI and these workflows are implemented together in App.jsx. The excerpts show Firestore reads and writes plus a chat API request; they do not show a map provider, route-generation service, or chat backend implementation, so those are not modeled as repository components.

Main entry points: [`src/App.jsx`](https://github.com/sethsouvik54-dotcom/pujo_crowd_tracker/blob/main/src/App.jsx) (React application), [`src/firebase.js`](https://github.com/sethsouvik54-dotcom/pujo_crowd_tracker/blob/main/src/firebase.js) (Firebase setup), [`src/main.jsx`](https://github.com/sethsouvik54-dotcom/pujo_crowd_tracker/blob/main/src/main.jsx) (React entry point)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Application UI"]
  node_app["React application<br/>[App.jsx]"]
  node_tracker["Pandal tracker<br/>[App.jsx]"]
  node_route["Route planning<br/>[App.jsx]"]
  node_assistant["AI chat<br/>[App.jsx]"]
  node_safety["Safety dashboard<br/>[App.jsx]"]
  node_entry["React entry point<br/>[main.jsx]"]
end

subgraph group_services["Data and integrations"]
  node_firebase["Firebase setup<br/>[firebase.js]"]
  node_firestore[("Firestore")]
  node_chatapi["Chat API"]
end

node_visitor(("Visitor or organizer"))

node_entry -->|"renders"| node_app
node_visitor -->|"uses"| node_app
node_app -->|"renders"| node_tracker
node_app -->|"renders"| node_route
node_app -->|"renders"| node_assistant
node_app -->|"renders"| node_safety
node_app -->|"imports"| node_firebase
node_firebase -->|"initializes"| node_firestore
node_app -->|"reads and writes"| node_firestore
node_assistant -->|"requests response"| node_chatapi

click node_app "https://github.com/sethsouvik54-dotcom/pujo_crowd_tracker/blob/main/src/App.jsx"
click node_tracker "https://github.com/sethsouvik54-dotcom/pujo_crowd_tracker/blob/main/src/App.jsx"
click node_route "https://github.com/sethsouvik54-dotcom/pujo_crowd_tracker/blob/main/src/App.jsx"
click node_assistant "https://github.com/sethsouvik54-dotcom/pujo_crowd_tracker/blob/main/src/App.jsx"
click node_safety "https://github.com/sethsouvik54-dotcom/pujo_crowd_tracker/blob/main/src/App.jsx"
click node_firebase "https://github.com/sethsouvik54-dotcom/pujo_crowd_tracker/blob/main/src/firebase.js"
click node_entry "https://github.com/sethsouvik54-dotcom/pujo_crowd_tracker/blob/main/src/main.jsx"

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_app,node_tracker,node_route,node_assistant,node_safety,node_entry toneBlue
class node_firebase,node_firestore,node_chatapi toneAmber
class node_visitor toneIndigo
```

## Components

### Application UI

- [React application](https://github.com/sethsouvik54-dotcom/pujo_crowd_tracker/blob/main/src/App.jsx): `src/App.jsx`
- [Pandal tracker](https://github.com/sethsouvik54-dotcom/pujo_crowd_tracker/blob/main/src/App.jsx): `src/App.jsx`
- [Route planning](https://github.com/sethsouvik54-dotcom/pujo_crowd_tracker/blob/main/src/App.jsx): `src/App.jsx`
- [AI chat](https://github.com/sethsouvik54-dotcom/pujo_crowd_tracker/blob/main/src/App.jsx): `src/App.jsx`
- [Safety dashboard](https://github.com/sethsouvik54-dotcom/pujo_crowd_tracker/blob/main/src/App.jsx): `src/App.jsx`
- [React entry point](https://github.com/sethsouvik54-dotcom/pujo_crowd_tracker/blob/main/src/main.jsx): `src/main.jsx`

### Data and integrations

- [Firebase setup](https://github.com/sethsouvik54-dotcom/pujo_crowd_tracker/blob/main/src/firebase.js): `src/firebase.js`
- **Firestore**
- **Chat API**

### Other components

- **Visitor or organizer**

## Connections

- React entry point → React application: renders (evidence: `src/main.jsx`)
- Visitor or organizer → React application: uses (evidence: `src/App.jsx`)
- React application → Pandal tracker: renders (evidence: `src/App.jsx`)
- React application → Route planning: renders (evidence: `src/App.jsx`)
- React application → AI chat: renders (evidence: `src/App.jsx`)
- React application → Safety dashboard: renders (evidence: `src/App.jsx`)
- React application → Firebase setup: imports (evidence: `src/App.jsx`)
- Firebase setup → Firestore: initializes (evidence: `src/firebase.js`)
- React application → Firestore: reads and writes (evidence: `src/App.jsx`)
- AI chat → Chat API: requests response (evidence: `src/App.jsx`)
