# jrdxnra/eventflow architecture

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

- Interactive diagram: https://gitdiagram.com/jrdxnra/eventflow
- Repository: https://github.com/jrdxnra/eventflow

## Overview

EventFlow is an event-planning app for fitness coaches. The visible workflow runs from the event dashboard through guided event setup and event creation, then into logistics planning and saving; the dashboard also supports event tracking and updates. Firebase provides authentication and persistence, with separate helpers for events, team logistics, and user profiles. The README also describes materials generation, calendar integration, and post-event analytics, but their implementation is not evidenced in the sampled source; those capabilities are shown as documented subsystems without inferred wiring.

Main entry points: [`app/page.tsx`](https://github.com/jrdxnra/eventflow/blob/main/app/page.tsx) (Event dashboard), [`lib/firebase-coaches.ts`](https://github.com/jrdxnra/eventflow/blob/main/lib/firebase-coaches.ts) (Coach logistics access), [`app/event-setup/page.tsx`](https://github.com/jrdxnra/eventflow/blob/main/app/event-setup/page.tsx) (Guided event setup), [`components/UserProfile.tsx`](https://github.com/jrdxnra/eventflow/blob/main/components/UserProfile.tsx) (User profile)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_planning["Event planning"]
  node_dashboard["Event dashboard<br/>[page.tsx]"]
  node_setup["Guided event setup<br/>[page.tsx]"]
  node_materials["Materials generator"]
  node_analytics["Post-event analytics"]
end

subgraph group_operations["Team operations"]
  node_logistics["Event logistics<br/>[page.tsx]"]
  node_teamconfig["Team configuration<br/>[page.tsx]"]
end

subgraph group_identity["Identity and settings"]
  node_profileui["User profile<br/>[UserProfile.tsx]"]
  node_preferences["User preferences"]
end

subgraph group_data["Persistence and integrations"]
  node_auth{{"Firebase Auth"}}
  node_multi_profile["Profile event access"]
  node_events["Event data access<br/>[firebase-events.ts]"]
  node_coaches["Coach logistics access"]
  node_users["User profile access<br/>[firebase-users.ts]"]
  node_firestore[("Firestore")]
  node_calendar["Google Calendar integration<br/>[google-calendar.ts]"]
end

node_coach(("Fitness coach"))

node_coach -->|"uses"| node_dashboard
node_dashboard -->|"loads events"| node_multi_profile
node_dashboard -->|"updates events"| node_events
node_dashboard -->|"loads coaches and logistics"| node_coaches
node_dashboard -->|"embeds"| node_profileui
node_coach -->|"creates event"| node_setup
node_setup -->|"signs in"| node_auth
node_setup -->|"creates event"| node_multi_profile
node_logistics -->|"loads event"| node_events
node_logistics -->|"loads and saves logistics"| node_coaches
node_teamconfig -->|"manages coaches and contacts"| node_coaches
node_profileui -->|"signs in"| node_auth
node_profileui -->|"initializes session"| node_users
node_preferences -->|"loads and saves preferences"| node_users
node_multi_profile -->|"reads and writes"| node_firestore
node_events -->|"reads and writes"| node_firestore
node_coaches -->|"reads and writes"| node_firestore
node_users -->|"reads and writes"| node_firestore

click node_dashboard "https://github.com/jrdxnra/eventflow/blob/main/app/page.tsx"
click node_setup "https://github.com/jrdxnra/eventflow/blob/main/app/event-setup/page.tsx"
click node_materials "https://github.com/jrdxnra/eventflow/tree/main/app"
click node_analytics "https://github.com/jrdxnra/eventflow/tree/main/app"
click node_logistics "https://github.com/jrdxnra/eventflow/blob/main/app/logistics/page.tsx"
click node_teamconfig "https://github.com/jrdxnra/eventflow/blob/main/app/config/page.tsx"
click node_profileui "https://github.com/jrdxnra/eventflow/blob/main/components/UserProfile.tsx"
click node_preferences "https://github.com/jrdxnra/eventflow/blob/main/components/UserPreferences.tsx"
click node_multi_profile "https://github.com/jrdxnra/eventflow/blob/main/lib/firebase-multi-profile.ts"
click node_events "https://github.com/jrdxnra/eventflow/blob/main/lib/firebase-events.ts"
click node_coaches "https://github.com/jrdxnra/eventflow/blob/main/lib/firebase-coaches.ts"
click node_users "https://github.com/jrdxnra/eventflow/blob/main/lib/firebase-users.ts"
click node_calendar "https://github.com/jrdxnra/eventflow/blob/main/lib/google-calendar.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_dashboard,node_setup,node_materials,node_analytics toneBlue
class node_logistics,node_teamconfig toneAmber
class node_profileui,node_preferences toneMint
class node_auth,node_multi_profile,node_events,node_coaches,node_users,node_firestore,node_calendar toneRose
class node_coach toneIndigo
```

## Components

### Event planning

- [Event dashboard](https://github.com/jrdxnra/eventflow/blob/main/app/page.tsx): `app/page.tsx`
- [Guided event setup](https://github.com/jrdxnra/eventflow/blob/main/app/event-setup/page.tsx): `app/event-setup/page.tsx`
- [Materials generator](https://github.com/jrdxnra/eventflow/tree/main/app): `app`
- [Post-event analytics](https://github.com/jrdxnra/eventflow/tree/main/app): `app`

### Team operations

- [Event logistics](https://github.com/jrdxnra/eventflow/blob/main/app/logistics/page.tsx): `app/logistics/page.tsx`
- [Team configuration](https://github.com/jrdxnra/eventflow/blob/main/app/config/page.tsx): `app/config/page.tsx`

### Identity and settings

- [User profile](https://github.com/jrdxnra/eventflow/blob/main/components/UserProfile.tsx): `components/UserProfile.tsx`
- [User preferences](https://github.com/jrdxnra/eventflow/blob/main/components/UserPreferences.tsx): `components/UserPreferences.tsx`

### Persistence and integrations

- **Firebase Auth**
- [Profile event access](https://github.com/jrdxnra/eventflow/blob/main/lib/firebase-multi-profile.ts): `lib/firebase-multi-profile.ts`
- [Event data access](https://github.com/jrdxnra/eventflow/blob/main/lib/firebase-events.ts): `lib/firebase-events.ts`
- [Coach logistics access](https://github.com/jrdxnra/eventflow/blob/main/lib/firebase-coaches.ts): `lib/firebase-coaches.ts`
- [User profile access](https://github.com/jrdxnra/eventflow/blob/main/lib/firebase-users.ts): `lib/firebase-users.ts`
- **Firestore**
- [Google Calendar integration](https://github.com/jrdxnra/eventflow/blob/main/lib/google-calendar.ts): `lib/google-calendar.ts`

### Other components

- **Fitness coach**

## Connections

- Fitness coach → Event dashboard: uses
- Event dashboard → Profile event access: loads events
- Event dashboard → Event data access: updates events
- Event dashboard → Coach logistics access: loads coaches and logistics
- Event dashboard → User profile: embeds
- Fitness coach → Guided event setup: creates event
- Guided event setup → Firebase Auth: signs in
- Guided event setup → Profile event access: creates event
- Event logistics → Event data access: loads event
- Event logistics → Coach logistics access: loads and saves logistics
- Team configuration → Coach logistics access: manages coaches and contacts
- User profile → Firebase Auth: signs in
- User profile → User profile access: initializes session
- User preferences → User profile access: loads and saves preferences
- Profile event access → Firestore: reads and writes
- Event data access → Firestore: reads and writes
- Coach logistics access → Firestore: reads and writes
- User profile access → Firestore: reads and writes
