# baronparedes/wc-event-registration architecture

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

- Interactive diagram: https://gitdiagram.com/baronparedes/wc-event-registration
- Repository: https://github.com/baronparedes/wc-event-registration

## Overview

WelcomeHub is a React/Supabase event-registration platform. Members register for events through public routes, while authenticated administrators manage events, registrations, members, and attendance; the tree also shows forms, chat, and service-volunteer operations. The router dispatches users into page modules, and domain hooks provide data access. Sampled hooks confirm direct Supabase queries and an attendee cache that combines local storage with realtime updates. The excerpts do not establish every page-to-hook connection, so those links are omitted; the Supabase backend is shown as one external service.

Main entry points: [`src/lib/infrastructure/supabase.ts`](https://github.com/baronparedes/wc-event-registration/blob/main/src/lib/infrastructure/supabase.ts) (Supabase client), [`src/app/router.tsx`](https://github.com/baronparedes/wc-event-registration/blob/main/src/app/router.tsx) (Route dispatcher), [`src/hooks/domain/attendance/queries/useAttendeesLocalCacheQuery.ts`](https://github.com/baronparedes/wc-event-registration/blob/main/src/hooks/domain/attendance/queries/useAttendeesLocalCacheQuery.ts) (Attendee cache), [`src/App.tsx`](https://github.com/baronparedes/wc-event-registration/blob/main/src/App.tsx) (App shell)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Application"]
  node_app["App shell<br/>[App.tsx]"]
  node_router["Route dispatcher<br/>[router.tsx]"]
end

subgraph group_events["Events and Registration"]
  node_public_event["Public event registration"]
  node_admin_events["Event administration"]
  node_form_admin["Form administration"]
end

subgraph group_operations["Community Operations"]
  node_member_admin["Member administration"]
  node_attendance_admin["Event attendance"]
  node_service_ops["Service attendance"]
  node_chat["Admin chat"]
end

subgraph group_data["Data Access"]
  node_event_queries["Event queries"]
  node_registration_queries["Registration operations"]
  node_public_registration_queries["Public registration"]
  node_form_queries["Form queries"]
  node_attendance_queries["Attendance operations"]
  node_attendance_cache["Attendee cache"]
  node_auth["Admin authentication"]
  node_supabase_client["Supabase client<br/>[supabase.ts]"]
end

node_visitor(("Visitor"))
node_admin(("Administrator"))
node_local_storage[("Browser storage")]
node_realtime(("Supabase realtime"))
node_supabase[("Supabase backend")]

node_visitor -->|"opens public routes"| node_router
node_admin -->|"opens admin routes"| node_router
node_app -->|"mounts routes"| node_router
node_router -->|"dispatches"| node_public_event
node_router -->|"dispatches"| node_admin_events
node_router -->|"dispatches"| node_form_admin
node_router -->|"dispatches"| node_attendance_admin
node_router -->|"dispatches"| node_chat
node_event_queries -->|"queries"| node_supabase_client
node_registration_queries -->|"queries"| node_supabase_client
node_public_registration_queries -->|"queries"| node_supabase_client
node_member_admin -->|"queries"| node_supabase_client
node_service_ops -->|"queries"| node_supabase_client
node_attendance_queries -->|"queries"| node_supabase_client
node_form_queries -->|"queries"| node_supabase_client
node_auth -->|"auth access"| node_supabase_client
node_supabase_client -->|"accesses"| node_supabase
node_attendance_cache -->|"reads and writes"| node_local_storage
node_attendance_cache -->|"subscribes"| node_realtime

click node_app "https://github.com/baronparedes/wc-event-registration/blob/main/src/App.tsx"
click node_router "https://github.com/baronparedes/wc-event-registration/blob/main/src/app/router.tsx"
click node_public_event "https://github.com/baronparedes/wc-event-registration/tree/main/src/pages"
click node_admin_events "https://github.com/baronparedes/wc-event-registration/tree/main/src/pages/admin/events"
click node_event_queries "https://github.com/baronparedes/wc-event-registration/tree/main/src/hooks/domain/events"
click node_registration_queries "https://github.com/baronparedes/wc-event-registration/tree/main/src/hooks/domain/registrations"
click node_public_registration_queries "https://github.com/baronparedes/wc-event-registration/tree/main/src/hooks/domain/public-registrations"
click node_form_admin "https://github.com/baronparedes/wc-event-registration/tree/main/src/pages/admin/forms"
click node_form_queries "https://github.com/baronparedes/wc-event-registration/tree/main/src/hooks/domain/forms"
click node_member_admin "https://github.com/baronparedes/wc-event-registration/tree/main/src/hooks/domain/members"
click node_attendance_admin "https://github.com/baronparedes/wc-event-registration/tree/main/src/pages/admin/events/%5Bid%5D/attendance"
click node_attendance_queries "https://github.com/baronparedes/wc-event-registration/tree/main/src/hooks/domain/attendance"
click node_attendance_cache "https://github.com/baronparedes/wc-event-registration/blob/main/src/hooks/domain/attendance/queries/useAttendeesLocalCacheQuery.ts"
click node_service_ops "https://github.com/baronparedes/wc-event-registration/tree/main/src/hooks/domain/services"
click node_chat "https://github.com/baronparedes/wc-event-registration/tree/main/src/pages/admin/chat"
click node_auth "https://github.com/baronparedes/wc-event-registration/tree/main/src/hooks/domain/auth"
click node_supabase_client "https://github.com/baronparedes/wc-event-registration/blob/main/src/lib/infrastructure/supabase.ts"

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_router toneBlue
class node_public_event,node_admin_events,node_form_admin,node_local_storage,node_supabase toneAmber
class node_member_admin,node_attendance_admin,node_service_ops,node_chat toneMint
class node_event_queries,node_registration_queries,node_public_registration_queries,node_form_queries,node_attendance_queries,node_attendance_cache,node_auth,node_supabase_client toneRose
class node_visitor,node_admin,node_realtime toneIndigo
```

## Components

### Application

- [App shell](https://github.com/baronparedes/wc-event-registration/blob/main/src/App.tsx): `src/App.tsx`
- [Route dispatcher](https://github.com/baronparedes/wc-event-registration/blob/main/src/app/router.tsx): `src/app/router.tsx`

### Events and Registration

- [Public event registration](https://github.com/baronparedes/wc-event-registration/tree/main/src/pages): `src/pages`
- [Event administration](https://github.com/baronparedes/wc-event-registration/tree/main/src/pages/admin/events): `src/pages/admin/events`
- [Form administration](https://github.com/baronparedes/wc-event-registration/tree/main/src/pages/admin/forms): `src/pages/admin/forms`

### Community Operations

- [Member administration](https://github.com/baronparedes/wc-event-registration/tree/main/src/hooks/domain/members): `src/hooks/domain/members`
- [Event attendance](https://github.com/baronparedes/wc-event-registration/tree/main/src/pages/admin/events/%5Bid%5D/attendance): `src/pages/admin/events/[id]/attendance`
- [Service attendance](https://github.com/baronparedes/wc-event-registration/tree/main/src/hooks/domain/services): `src/hooks/domain/services`
- [Admin chat](https://github.com/baronparedes/wc-event-registration/tree/main/src/pages/admin/chat): `src/pages/admin/chat`

### Data Access

- [Event queries](https://github.com/baronparedes/wc-event-registration/tree/main/src/hooks/domain/events): `src/hooks/domain/events`
- [Registration operations](https://github.com/baronparedes/wc-event-registration/tree/main/src/hooks/domain/registrations): `src/hooks/domain/registrations`
- [Public registration](https://github.com/baronparedes/wc-event-registration/tree/main/src/hooks/domain/public-registrations): `src/hooks/domain/public-registrations`
- [Form queries](https://github.com/baronparedes/wc-event-registration/tree/main/src/hooks/domain/forms): `src/hooks/domain/forms`
- [Attendance operations](https://github.com/baronparedes/wc-event-registration/tree/main/src/hooks/domain/attendance): `src/hooks/domain/attendance`
- [Attendee cache](https://github.com/baronparedes/wc-event-registration/blob/main/src/hooks/domain/attendance/queries/useAttendeesLocalCacheQuery.ts): `src/hooks/domain/attendance/queries/useAttendeesLocalCacheQuery.ts`
- [Admin authentication](https://github.com/baronparedes/wc-event-registration/tree/main/src/hooks/domain/auth): `src/hooks/domain/auth`
- [Supabase client](https://github.com/baronparedes/wc-event-registration/blob/main/src/lib/infrastructure/supabase.ts): `src/lib/infrastructure/supabase.ts`

### Other components

- **Visitor**
- **Administrator**
- **Browser storage**
- **Supabase realtime**
- **Supabase backend**

## Connections

- Visitor → Route dispatcher: opens public routes
- Administrator → Route dispatcher: opens admin routes
- App shell → Route dispatcher: mounts routes
- Route dispatcher → Public event registration: dispatches
- Route dispatcher → Event administration: dispatches
- Route dispatcher → Form administration: dispatches
- Route dispatcher → Event attendance: dispatches
- Route dispatcher → Admin chat: dispatches
- Event queries → Supabase client: queries
- Registration operations → Supabase client: queries
- Public registration → Supabase client: queries
- Member administration → Supabase client: queries
- Service attendance → Supabase client: queries
- Attendance operations → Supabase client: queries
- Form queries → Supabase client: queries
- Admin authentication → Supabase client: auth access
- Supabase client → Supabase backend: accesses
- Attendee cache → Browser storage: reads and writes
- Attendee cache → Supabase realtime: subscribes
