# pawfindr-meta/pawfound architecture

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

- Interactive diagram: https://gitdiagram.com/pawfindr-meta/pawfound
- Repository: https://github.com/pawfindr-meta/pawfound

## Overview

PawFound is a pet-safety and lost-pet response web application: users sign in or register, then enter role-specific owner, admin, or walker experiences; owners manage pets and raise community broadcasts, while public pet verification is available by pet ID. The supplied README is only the Vite template, so product capabilities and relationships here are based on the source index and sampled excerpts. Several dashboards are only partially sampled; their internal features and links are omitted where evidence is insufficient.

Main entry points: [`src/App.jsx`](https://github.com/pawfindr-meta/pawfound/blob/main/src/App.jsx) (Route application), [`src/pages/OwnerDashboard.jsx`](https://github.com/pawfindr-meta/pawfound/blob/main/src/pages/OwnerDashboard.jsx) (Owner pet dashboard), [`src/context/AuthContext.jsx`](https://github.com/pawfindr-meta/pawfound/blob/main/src/context/AuthContext.jsx) (Auth state), [`src/pages/Login.jsx`](https://github.com/pawfindr-meta/pawfound/blob/main/src/pages/Login.jsx) (Sign-in and registration)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Application entry"]
  node_app["Route application<br/>[App.jsx]"]
end

subgraph group_identity["Identity and access"]
  node_auth_ui["Sign-in and registration<br/>[Login.jsx]"]
  node_auth_state["Auth state<br/>[AuthContext.jsx]"]
  node_firebase_auth["Firebase Authentication"]
  node_firestore[("Firestore")]
  node_pending["Approval pending"]
end

subgraph group_pet_safety["Pet safety workflows"]
  node_owner["Owner pet dashboard<br/>[OwnerDashboard.jsx]"]
  node_pet_qr["Pet QR details<br/>[PetQRModal.jsx]"]
  node_broadcast_detail["Lost-pet alert details"]
  node_geo["Safe-zone checks<br/>[geo.js]"]
  node_pet_verify["Public pet verification<br/>[VerifyPet.jsx]"]
  node_walker["Walker companion"]
end

subgraph group_operations["Administration"]
  node_admin["Admin dashboard<br/>[AdminDashboard.jsx]"]
end

node_user(("App user"))

node_user -->|"opens"| node_app
node_app -->|"routes to"| node_auth_ui
node_app -->|"routes to"| node_owner
node_app -->|"routes to"| node_admin
node_app -->|"routes to"| node_walker
node_app -->|"routes to"| node_pending
node_app -->|"routes to"| node_pet_verify
node_app -->|"provides auth"| node_auth_state
node_auth_ui -->|"reads state"| node_auth_state
node_auth_ui -->|"authenticates"| node_firebase_auth
node_auth_ui -->|"writes profile"| node_firestore
node_auth_state -->|"tracks sign-in"| node_firebase_auth
node_auth_state -->|"reads user profile"| node_firestore
node_owner -->|"manages pet records"| node_firestore
node_owner -->|"checks safety"| node_geo
node_owner -->|"opens QR details"| node_pet_qr
node_owner -->|"opens alert details"| node_broadcast_detail
node_admin -->|"manages accounts and alerts"| node_firestore
node_walker -->|"uses pet data"| node_firestore
node_pet_verify -->|"reads public pet data"| node_firestore
node_pending -->|"reads approval state"| node_auth_state

click node_app "https://github.com/pawfindr-meta/pawfound/blob/main/src/App.jsx"
click node_auth_ui "https://github.com/pawfindr-meta/pawfound/blob/main/src/pages/Login.jsx"
click node_auth_state "https://github.com/pawfindr-meta/pawfound/blob/main/src/context/AuthContext.jsx"
click node_owner "https://github.com/pawfindr-meta/pawfound/blob/main/src/pages/OwnerDashboard.jsx"
click node_pet_qr "https://github.com/pawfindr-meta/pawfound/blob/main/src/components/PetQRModal.jsx"
click node_broadcast_detail "https://github.com/pawfindr-meta/pawfound/blob/main/src/components/BroadcastDetailModal.jsx"
click node_geo "https://github.com/pawfindr-meta/pawfound/blob/main/src/lib/geo.js"
click node_pet_verify "https://github.com/pawfindr-meta/pawfound/blob/main/src/pages/VerifyPet.jsx"
click node_walker "https://github.com/pawfindr-meta/pawfound/blob/main/src/pages/WalkerDashboard.jsx"
click node_admin "https://github.com/pawfindr-meta/pawfound/blob/main/src/pages/AdminDashboard.jsx"
click node_pending "https://github.com/pawfindr-meta/pawfound/blob/main/src/pages/PendingApproval.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_user toneBlue
class node_auth_ui,node_auth_state,node_firebase_auth,node_firestore,node_pending toneAmber
class node_owner,node_pet_qr,node_broadcast_detail,node_geo,node_pet_verify,node_walker toneMint
class node_admin toneRose
```

## Components

### Application entry

- [Route application](https://github.com/pawfindr-meta/pawfound/blob/main/src/App.jsx): `src/App.jsx`

### Identity and access

- [Sign-in and registration](https://github.com/pawfindr-meta/pawfound/blob/main/src/pages/Login.jsx): `src/pages/Login.jsx`
- [Auth state](https://github.com/pawfindr-meta/pawfound/blob/main/src/context/AuthContext.jsx): `src/context/AuthContext.jsx`
- **Firebase Authentication**
- **Firestore**
- [Approval pending](https://github.com/pawfindr-meta/pawfound/blob/main/src/pages/PendingApproval.jsx): `src/pages/PendingApproval.jsx`

### Pet safety workflows

- [Owner pet dashboard](https://github.com/pawfindr-meta/pawfound/blob/main/src/pages/OwnerDashboard.jsx): `src/pages/OwnerDashboard.jsx`
- [Pet QR details](https://github.com/pawfindr-meta/pawfound/blob/main/src/components/PetQRModal.jsx): `src/components/PetQRModal.jsx`
- [Lost-pet alert details](https://github.com/pawfindr-meta/pawfound/blob/main/src/components/BroadcastDetailModal.jsx): `src/components/BroadcastDetailModal.jsx`
- [Safe-zone checks](https://github.com/pawfindr-meta/pawfound/blob/main/src/lib/geo.js): `src/lib/geo.js`
- [Public pet verification](https://github.com/pawfindr-meta/pawfound/blob/main/src/pages/VerifyPet.jsx): `src/pages/VerifyPet.jsx`
- [Walker companion](https://github.com/pawfindr-meta/pawfound/blob/main/src/pages/WalkerDashboard.jsx): `src/pages/WalkerDashboard.jsx`

### Administration

- [Admin dashboard](https://github.com/pawfindr-meta/pawfound/blob/main/src/pages/AdminDashboard.jsx): `src/pages/AdminDashboard.jsx`

### Other components

- **App user**

## Connections

- App user → Route application: opens (evidence: `src/App.jsx`)
- Route application → Sign-in and registration: routes to (evidence: `src/App.jsx`)
- Route application → Owner pet dashboard: routes to (evidence: `src/App.jsx`)
- Route application → Admin dashboard: routes to (evidence: `src/App.jsx`)
- Route application → Walker companion: routes to (evidence: `src/App.jsx`)
- Route application → Approval pending: routes to (evidence: `src/App.jsx`)
- Route application → Public pet verification: routes to (evidence: `src/App.jsx`)
- Route application → Auth state: provides auth (evidence: `src/App.jsx`)
- Sign-in and registration → Auth state: reads state (evidence: `src/pages/Login.jsx`)
- Sign-in and registration → Firebase Authentication: authenticates (evidence: `src/pages/Login.jsx`)
- Sign-in and registration → Firestore: writes profile (evidence: `src/pages/Login.jsx`)
- Auth state → Firebase Authentication: tracks sign-in (evidence: `src/context/AuthContext.jsx`)
- Auth state → Firestore: reads user profile (evidence: `src/context/AuthContext.jsx`)
- Owner pet dashboard → Firestore: manages pet records (evidence: `src/pages/OwnerDashboard.jsx`)
- Owner pet dashboard → Safe-zone checks: checks safety (evidence: `src/pages/OwnerDashboard.jsx`)
- Owner pet dashboard → Pet QR details: opens QR details (evidence: `src/pages/OwnerDashboard.jsx`)
- Owner pet dashboard → Lost-pet alert details: opens alert details (evidence: `src/pages/OwnerDashboard.jsx`)
- Admin dashboard → Firestore: manages accounts and alerts (evidence: `src/pages/AdminDashboard.jsx`)
- Walker companion → Firestore: uses pet data (evidence: `src/pages/WalkerDashboard.jsx`)
- Public pet verification → Firestore: reads public pet data (evidence: `src/pages/VerifyPet.jsx`)
- Approval pending → Auth state: reads approval state (evidence: `src/pages/PendingApproval.jsx`)
