# anuragahirwar958-prog/event-management architecture

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

- Interactive diagram: https://gitdiagram.com/anuragahirwar958-prog/event-management
- Repository: https://github.com/anuragahirwar958-prog/event-management

## Overview

EventStaff Pro is an event-staffing marketplace connecting organizers who publish events and hire workers with workers who discover gigs and manage bookings. The principal workflow runs from event discovery/application through organizer selection, booking attendance and shift completion, then payment and reviews. The app also supports worker search/shortlists, profiles, notifications, and an AI assistant. The graph reflects the shown frontend calls, backend imports, and database fallback; some server routing and external integrations are not visible in the excerpts, so those links are omitted or marked unverified.

Main entry points: [`src/services/api.ts`](https://github.com/anuragahirwar958-prog/event-management/blob/main/src/services/api.ts) (API client), [`src/App.tsx`](https://github.com/anuragahirwar958-prog/event-management/blob/main/src/App.tsx) (App shell), [`src/pages/WorkerDashboard.tsx`](https://github.com/anuragahirwar958-prog/event-management/blob/main/src/pages/WorkerDashboard.tsx) (Worker dashboard), [`src/pages/OrganizerDashboard.tsx`](https://github.com/anuragahirwar958-prog/event-management/blob/main/src/pages/OrganizerDashboard.tsx) (Organizer dashboard)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Marketplace app"]
  node_app["App shell<br/>[App.tsx]"]
  node_events["Event discovery"]
  node_workersearch["Worker directory"]
  node_workerdash["Worker dashboard"]
  node_orgdash["Organizer dashboard"]
  node_auth["Authentication<br/>[AuthContext.tsx]"]
  node_assistant["AI assistant"]
end

subgraph group_booking["Booking lifecycle"]
  node_qr["QR attendance"]
  node_otp["OTP attendance"]
  node_checkout["Shift checkout<br/>[CheckOutModal.tsx]"]
  node_payments["Payments<br/>[PaymentModal.tsx]"]
  node_history["Payment history"]
  node_reviews["Ratings<br/>[ReviewModal.tsx]"]
end

subgraph group_backend["Backend services"]
  node_api["API client<br/>[api.ts]"]
  node_server["HTTP server<br/>[server.ts]"]
  node_middleware["Auth middleware<br/>[auth.ts]"]
end

subgraph group_storage["Persistence"]
  node_queries["Data queries<br/>[queries.ts]"]
  node_postgres[("PostgreSQL<br/>[index.ts]")]
  node_memory[("Memory fallback<br/>[memoryStore.ts]")]
  node_schema["Data schema<br/>[schema.ts]"]
end

node_organizers(("Organizers"))
node_workers(("Workers"))

node_organizers -.->|"use marketplace"| node_app
node_workers -.->|"use marketplace"| node_app
node_app -->|"routes to"| node_events
node_app -->|"routes to"| node_workersearch
node_app -->|"routes to"| node_workerdash
node_app -->|"routes to"| node_orgdash
node_app -->|"provides context"| node_auth
node_app -->|"renders"| node_assistant
node_auth -->|"calls"| node_api
node_events -->|"requests event data"| node_api
node_workersearch -->|"searches workers"| node_api
node_workerdash -->|"loads bookings"| node_api
node_orgdash -->|"loads bookings"| node_api
node_assistant -->|"requests assistance"| node_api
node_orgdash -->|"opens attendance"| node_qr
node_orgdash -->|"opens fallback"| node_otp
node_orgdash -->|"opens checkout"| node_checkout
node_orgdash -->|"opens payment"| node_payments
node_orgdash -->|"opens review"| node_reviews
node_workerdash -->|"opens attendance"| node_qr
node_workerdash -->|"opens fallback"| node_otp
node_workerdash -->|"opens checkout"| node_checkout
node_workerdash -->|"opens review"| node_reviews
node_workerdash -->|"loads payment history"| node_api
node_history -->|"requests transactions"| node_api
node_payments -->|"submits payment"| node_api
node_reviews -->|"submits rating"| node_api
node_qr -->|"verifies attendance"| node_api
node_otp -->|"verifies attendance"| node_api
node_checkout -->|"submits checkout"| node_api
node_api -.->|"sends HTTP requests"| node_server
node_server -->|"uses authentication"| node_middleware
node_server -->|"calls data queries"| node_queries
node_queries -->|"queries database"| node_postgres
node_queries -->|"falls back to"| node_memory
node_queries -->|"uses table definitions"| node_schema
node_middleware -.->|"protects requests"| node_server

click node_app "https://github.com/anuragahirwar958-prog/event-management/blob/main/src/App.tsx"
click node_events "https://github.com/anuragahirwar958-prog/event-management/blob/main/src/pages/PublicEventsPage.tsx"
click node_workersearch "https://github.com/anuragahirwar958-prog/event-management/blob/main/src/pages/WorkerSearchPage.tsx"
click node_workerdash "https://github.com/anuragahirwar958-prog/event-management/blob/main/src/pages/WorkerDashboard.tsx"
click node_orgdash "https://github.com/anuragahirwar958-prog/event-management/blob/main/src/pages/OrganizerDashboard.tsx"
click node_auth "https://github.com/anuragahirwar958-prog/event-management/blob/main/src/context/AuthContext.tsx"
click node_assistant "https://github.com/anuragahirwar958-prog/event-management/blob/main/src/components/AiAssistantWidget.tsx"
click node_qr "https://github.com/anuragahirwar958-prog/event-management/blob/main/src/components/AttendanceQrModal.tsx"
click node_otp "https://github.com/anuragahirwar958-prog/event-management/blob/main/src/components/OtpCheckinModal.tsx"
click node_checkout "https://github.com/anuragahirwar958-prog/event-management/blob/main/src/components/CheckOutModal.tsx"
click node_payments "https://github.com/anuragahirwar958-prog/event-management/blob/main/src/components/PaymentModal.tsx"
click node_history "https://github.com/anuragahirwar958-prog/event-management/blob/main/src/components/PaymentHistoryModal.tsx"
click node_reviews "https://github.com/anuragahirwar958-prog/event-management/blob/main/src/components/ReviewModal.tsx"
click node_api "https://github.com/anuragahirwar958-prog/event-management/blob/main/src/services/api.ts"
click node_server "https://github.com/anuragahirwar958-prog/event-management/blob/main/server.ts"
click node_middleware "https://github.com/anuragahirwar958-prog/event-management/blob/main/src/middleware/auth.ts"
click node_queries "https://github.com/anuragahirwar958-prog/event-management/blob/main/src/db/queries.ts"
click node_postgres "https://github.com/anuragahirwar958-prog/event-management/blob/main/src/db/index.ts"
click node_memory "https://github.com/anuragahirwar958-prog/event-management/blob/main/src/db/memoryStore.ts"
click node_schema "https://github.com/anuragahirwar958-prog/event-management/blob/main/src/db/schema.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_events,node_workersearch,node_workerdash,node_orgdash,node_auth,node_assistant toneBlue
class node_qr,node_otp,node_checkout,node_payments,node_history,node_reviews toneAmber
class node_api,node_server,node_middleware toneMint
class node_queries,node_postgres,node_memory,node_schema,node_workers toneRose
class node_organizers toneIndigo
```

## Components

### Marketplace app

- [App shell](https://github.com/anuragahirwar958-prog/event-management/blob/main/src/App.tsx): `src/App.tsx`
- [Event discovery](https://github.com/anuragahirwar958-prog/event-management/blob/main/src/pages/PublicEventsPage.tsx): `src/pages/PublicEventsPage.tsx`
- [Worker directory](https://github.com/anuragahirwar958-prog/event-management/blob/main/src/pages/WorkerSearchPage.tsx): `src/pages/WorkerSearchPage.tsx`
- [Worker dashboard](https://github.com/anuragahirwar958-prog/event-management/blob/main/src/pages/WorkerDashboard.tsx): `src/pages/WorkerDashboard.tsx`
- [Organizer dashboard](https://github.com/anuragahirwar958-prog/event-management/blob/main/src/pages/OrganizerDashboard.tsx): `src/pages/OrganizerDashboard.tsx`
- [Authentication](https://github.com/anuragahirwar958-prog/event-management/blob/main/src/context/AuthContext.tsx): `src/context/AuthContext.tsx`
- [AI assistant](https://github.com/anuragahirwar958-prog/event-management/blob/main/src/components/AiAssistantWidget.tsx): `src/components/AiAssistantWidget.tsx`

### Booking lifecycle

- [QR attendance](https://github.com/anuragahirwar958-prog/event-management/blob/main/src/components/AttendanceQrModal.tsx): `src/components/AttendanceQrModal.tsx`
- [OTP attendance](https://github.com/anuragahirwar958-prog/event-management/blob/main/src/components/OtpCheckinModal.tsx): `src/components/OtpCheckinModal.tsx`
- [Shift checkout](https://github.com/anuragahirwar958-prog/event-management/blob/main/src/components/CheckOutModal.tsx): `src/components/CheckOutModal.tsx`
- [Payments](https://github.com/anuragahirwar958-prog/event-management/blob/main/src/components/PaymentModal.tsx): `src/components/PaymentModal.tsx`
- [Payment history](https://github.com/anuragahirwar958-prog/event-management/blob/main/src/components/PaymentHistoryModal.tsx): `src/components/PaymentHistoryModal.tsx`
- [Ratings](https://github.com/anuragahirwar958-prog/event-management/blob/main/src/components/ReviewModal.tsx): `src/components/ReviewModal.tsx`

### Backend services

- [API client](https://github.com/anuragahirwar958-prog/event-management/blob/main/src/services/api.ts): `src/services/api.ts`
- [HTTP server](https://github.com/anuragahirwar958-prog/event-management/blob/main/server.ts): `server.ts`
- [Auth middleware](https://github.com/anuragahirwar958-prog/event-management/blob/main/src/middleware/auth.ts): `src/middleware/auth.ts`

### Persistence

- [Data queries](https://github.com/anuragahirwar958-prog/event-management/blob/main/src/db/queries.ts): `src/db/queries.ts`
- [PostgreSQL](https://github.com/anuragahirwar958-prog/event-management/blob/main/src/db/index.ts): `src/db/index.ts`
- [Memory fallback](https://github.com/anuragahirwar958-prog/event-management/blob/main/src/db/memoryStore.ts): `src/db/memoryStore.ts`
- [Data schema](https://github.com/anuragahirwar958-prog/event-management/blob/main/src/db/schema.ts): `src/db/schema.ts`

### Other components

- **Organizers**
- **Workers**

## Connections

- Organizers → App shell: use marketplace
- Workers → App shell: use marketplace
- App shell → Event discovery: routes to (evidence: `src/App.tsx`)
- App shell → Worker directory: routes to (evidence: `src/App.tsx`)
- App shell → Worker dashboard: routes to (evidence: `src/App.tsx`)
- App shell → Organizer dashboard: routes to (evidence: `src/App.tsx`)
- App shell → Authentication: provides context (evidence: `src/App.tsx`)
- App shell → AI assistant: renders (evidence: `src/App.tsx`)
- Authentication → API client: calls (evidence: `src/context/AuthContext.tsx`)
- Event discovery → API client: requests event data (evidence: `src/pages/PublicEventsPage.tsx`)
- Worker directory → API client: searches workers (evidence: `src/pages/WorkerSearchPage.tsx`)
- Worker dashboard → API client: loads bookings (evidence: `src/pages/WorkerDashboard.tsx`)
- Organizer dashboard → API client: loads bookings (evidence: `src/pages/OrganizerDashboard.tsx`)
- AI assistant → API client: requests assistance (evidence: `src/components/AiAssistantWidget.tsx`)
- Organizer dashboard → QR attendance: opens attendance (evidence: `src/pages/OrganizerDashboard.tsx`)
- Organizer dashboard → OTP attendance: opens fallback (evidence: `src/pages/OrganizerDashboard.tsx`)
- Organizer dashboard → Shift checkout: opens checkout (evidence: `src/pages/OrganizerDashboard.tsx`)
- Organizer dashboard → Payments: opens payment (evidence: `src/pages/OrganizerDashboard.tsx`)
- Organizer dashboard → Ratings: opens review (evidence: `src/pages/OrganizerDashboard.tsx`)
- Worker dashboard → QR attendance: opens attendance (evidence: `src/pages/WorkerDashboard.tsx`)
- Worker dashboard → OTP attendance: opens fallback (evidence: `src/pages/WorkerDashboard.tsx`)
- Worker dashboard → Shift checkout: opens checkout (evidence: `src/pages/WorkerDashboard.tsx`)
- Worker dashboard → Ratings: opens review (evidence: `src/pages/WorkerDashboard.tsx`)
- Worker dashboard → API client: loads payment history (evidence: `src/pages/WorkerDashboard.tsx`)
- Payment history → API client: requests transactions (evidence: `src/components/PaymentHistoryModal.tsx`)
- Payments → API client: submits payment (evidence: `src/services/api.ts`)
- Ratings → API client: submits rating (evidence: `src/components/ReviewModal.tsx`)
- QR attendance → API client: verifies attendance (evidence: `src/components/AttendanceQrModal.tsx`)
- OTP attendance → API client: verifies attendance (evidence: `src/components/OtpCheckinModal.tsx`)
- Shift checkout → API client: submits checkout (evidence: `src/components/CheckOutModal.tsx`)
- API client → HTTP server: sends HTTP requests
- HTTP server → Auth middleware: uses authentication (evidence: `server.ts`)
- HTTP server → Data queries: calls data queries (evidence: `server.ts`)
- Data queries → PostgreSQL: queries database (evidence: `src/db/queries.ts`)
- Data queries → Memory fallback: falls back to (evidence: `src/db/queries.ts`)
- Data queries → Data schema: uses table definitions (evidence: `src/db/queries.ts`)
- Auth middleware → HTTP server: protects requests (evidence: `server.ts`)
