# ayushpatel2007/eventops-ai architecture

> Architecture diagram of the GitHub repository ayushpatel2007/eventops-ai, 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/ayushpatel2007/eventops-ai
- Repository: https://github.com/ayushpatel2007/eventops-ai

## Overview

EventOps AI supports campus event recruitment and operational execution across student, organizer, and admin portals. Students register, browse events, apply, and—when approved—use coordinator IDs, schedules, tasks, attendance, and safety tools; organizers manage event setup, recruitment, and live operations, while admins oversee users and analytics. The README documents mapping, attendance audit logs, SOS/incidents, real-time control-room metrics, and workbook exports. The sampled API and realtime-hook excerpts show Supabase-backed services and subscriptions, but do not establish every page-to-service connection.

Main entry points: [`app/organizer`](https://github.com/ayushpatel2007/eventops-ai/tree/main/app/organizer) (Organizer Portal), [`app/student`](https://github.com/ayushpatel2007/eventops-ai/tree/main/app/student) (Student Portal), [`lib/services/api.ts`](https://github.com/ayushpatel2007/eventops-ai/blob/main/lib/services/api.ts) (Application Services), [`app/admin`](https://github.com/ayushpatel2007/eventops-ai/tree/main/app/admin) (Admin Portal)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_portals["User Portals"]
  node_student_portal["Student Portal"]
  node_registration["Student Registration<br/>[page.tsx]"]
  node_organizer_portal["Organizer Portal"]
  node_admin_portal["Admin Portal"]
end

subgraph group_eventops["Event Operations"]
  node_event_management["Event Management"]
  node_applications["Applications Review<br/>[page.tsx]"]
  node_zone_map["Zone Map<br/>[page.tsx]"]
  node_incidents["Incident Management<br/>[page.tsx]"]
  node_sos["Emergency SOS<br/>[page.tsx]"]
  node_control_room["Control Room<br/>[page.tsx]"]
  node_analytics["Analytics<br/>[page.tsx]"]
  node_exports["Workbook Exports<br/>[page.tsx]"]
end

subgraph group_studentops["Coordinator Tools"]
  node_coordinator_id["Coordinator ID<br/>[page.tsx]"]
  node_attendance["Attendance &amp; Audit<br/>[page.tsx]"]
  node_schedule_tasks["Schedule &amp; Tasks"]
end

subgraph group_platform["Services &amp; Data"]
  node_api["Application Services<br/>[api.ts]"]
  node_realtime_hook["Realtime Subscriptions<br/>[useRealtime.ts]"]
  node_supabase_client["Browser Supabase Client<br/>[client.ts]"]
  node_supabase_server["Server Supabase Client<br/>[server.ts]"]
  node_database_types["Domain Data Types<br/>[database.ts]"]
  node_excel["Excel Export<br/>[excel.ts]"]
end

node_student(("Student"))
node_organizer(("Organizer"))
node_admin(("Admin"))
node_supabase[("Supabase Database &amp; Realtime")]

node_student -->|"registers"| node_registration
node_student -->|"uses"| node_student_portal
node_organizer -->|"operates"| node_organizer_portal
node_admin -->|"administers"| node_admin_portal
node_organizer_portal -->|"manages events"| node_event_management
node_event_management -->|"reviews applicants"| node_applications
node_student_portal -->|"views approved ID"| node_coordinator_id
node_organizer_portal -->|"records attendance"| node_attendance
node_student_portal -->|"checks duties"| node_schedule_tasks
node_organizer_portal -->|"inspects zones"| node_zone_map
node_organizer_portal -->|"manages incidents"| node_incidents
node_student_portal -->|"sends alert"| node_sos
node_organizer_portal -->|"responds to alerts"| node_sos
node_organizer_portal -->|"monitors operations"| node_control_room
node_admin_portal -->|"reviews metrics"| node_analytics
node_organizer_portal -->|"exports event data"| node_exports
node_exports -->|"generates workbook"| node_excel
node_api -->|"reads and writes"| node_supabase
node_realtime_hook -->|"creates client"| node_supabase_client
node_supabase_client -->|"subscribes"| node_supabase
node_supabase_server -->|"connects"| node_supabase
node_api -->|"uses domain types"| node_database_types

click node_student_portal "https://github.com/ayushpatel2007/eventops-ai/tree/main/app/student"
click node_registration "https://github.com/ayushpatel2007/eventops-ai/blob/main/app/register/page.tsx"
click node_organizer_portal "https://github.com/ayushpatel2007/eventops-ai/tree/main/app/organizer"
click node_admin_portal "https://github.com/ayushpatel2007/eventops-ai/tree/main/app/admin"
click node_event_management "https://github.com/ayushpatel2007/eventops-ai/tree/main/app/organizer/events"
click node_applications "https://github.com/ayushpatel2007/eventops-ai/blob/main/app/organizer/events/%5BeventId%5D/applications/page.tsx"
click node_coordinator_id "https://github.com/ayushpatel2007/eventops-ai/blob/main/app/student/coordinator-id/page.tsx"
click node_attendance "https://github.com/ayushpatel2007/eventops-ai/blob/main/app/organizer/events/%5BeventId%5D/attendance/page.tsx"
click node_schedule_tasks "https://github.com/ayushpatel2007/eventops-ai/tree/main/app/student/schedule"
click node_zone_map "https://github.com/ayushpatel2007/eventops-ai/blob/main/app/organizer/events/%5BeventId%5D/map/page.tsx"
click node_incidents "https://github.com/ayushpatel2007/eventops-ai/blob/main/app/organizer/events/%5BeventId%5D/incidents/page.tsx"
click node_sos "https://github.com/ayushpatel2007/eventops-ai/blob/main/app/organizer/events/%5BeventId%5D/sos/page.tsx"
click node_control_room "https://github.com/ayushpatel2007/eventops-ai/blob/main/app/organizer/events/%5BeventId%5D/control-room/page.tsx"
click node_analytics "https://github.com/ayushpatel2007/eventops-ai/blob/main/app/admin/analytics/page.tsx"
click node_exports "https://github.com/ayushpatel2007/eventops-ai/blob/main/app/organizer/events/%5BeventId%5D/exports/page.tsx"
click node_api "https://github.com/ayushpatel2007/eventops-ai/blob/main/lib/services/api.ts"
click node_realtime_hook "https://github.com/ayushpatel2007/eventops-ai/blob/main/lib/hooks/useRealtime.ts"
click node_supabase_client "https://github.com/ayushpatel2007/eventops-ai/blob/main/lib/supabase/client.ts"
click node_supabase_server "https://github.com/ayushpatel2007/eventops-ai/blob/main/lib/supabase/server.ts"
click node_database_types "https://github.com/ayushpatel2007/eventops-ai/blob/main/types/database.ts"
click node_excel "https://github.com/ayushpatel2007/eventops-ai/blob/main/lib/exports/excel.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_student_portal,node_registration,node_organizer_portal,node_admin_portal toneBlue
class node_event_management,node_applications,node_zone_map,node_incidents,node_sos,node_control_room,node_analytics,node_exports,node_supabase toneAmber
class node_coordinator_id,node_attendance,node_schedule_tasks toneMint
class node_api,node_realtime_hook,node_supabase_client,node_supabase_server,node_database_types,node_excel toneRose
class node_student,node_organizer,node_admin toneIndigo
```

## Components

### User Portals

- [Student Portal](https://github.com/ayushpatel2007/eventops-ai/tree/main/app/student): `app/student`
- [Student Registration](https://github.com/ayushpatel2007/eventops-ai/blob/main/app/register/page.tsx): `app/register/page.tsx`
- [Organizer Portal](https://github.com/ayushpatel2007/eventops-ai/tree/main/app/organizer): `app/organizer`
- [Admin Portal](https://github.com/ayushpatel2007/eventops-ai/tree/main/app/admin): `app/admin`

### Event Operations

- [Event Management](https://github.com/ayushpatel2007/eventops-ai/tree/main/app/organizer/events): `app/organizer/events`
- [Applications Review](https://github.com/ayushpatel2007/eventops-ai/blob/main/app/organizer/events/%5BeventId%5D/applications/page.tsx): `app/organizer/events/[eventId]/applications/page.tsx`
- [Zone Map](https://github.com/ayushpatel2007/eventops-ai/blob/main/app/organizer/events/%5BeventId%5D/map/page.tsx): `app/organizer/events/[eventId]/map/page.tsx`
- [Incident Management](https://github.com/ayushpatel2007/eventops-ai/blob/main/app/organizer/events/%5BeventId%5D/incidents/page.tsx): `app/organizer/events/[eventId]/incidents/page.tsx`
- [Emergency SOS](https://github.com/ayushpatel2007/eventops-ai/blob/main/app/organizer/events/%5BeventId%5D/sos/page.tsx): `app/organizer/events/[eventId]/sos/page.tsx`
- [Control Room](https://github.com/ayushpatel2007/eventops-ai/blob/main/app/organizer/events/%5BeventId%5D/control-room/page.tsx): `app/organizer/events/[eventId]/control-room/page.tsx`
- [Analytics](https://github.com/ayushpatel2007/eventops-ai/blob/main/app/admin/analytics/page.tsx): `app/admin/analytics/page.tsx`
- [Workbook Exports](https://github.com/ayushpatel2007/eventops-ai/blob/main/app/organizer/events/%5BeventId%5D/exports/page.tsx): `app/organizer/events/[eventId]/exports/page.tsx`

### Coordinator Tools

- [Coordinator ID](https://github.com/ayushpatel2007/eventops-ai/blob/main/app/student/coordinator-id/page.tsx): `app/student/coordinator-id/page.tsx`
- [Attendance & Audit](https://github.com/ayushpatel2007/eventops-ai/blob/main/app/organizer/events/%5BeventId%5D/attendance/page.tsx): `app/organizer/events/[eventId]/attendance/page.tsx`
- [Schedule & Tasks](https://github.com/ayushpatel2007/eventops-ai/tree/main/app/student/schedule): `app/student/schedule`

### Services & Data

- [Application Services](https://github.com/ayushpatel2007/eventops-ai/blob/main/lib/services/api.ts): `lib/services/api.ts`
- [Realtime Subscriptions](https://github.com/ayushpatel2007/eventops-ai/blob/main/lib/hooks/useRealtime.ts): `lib/hooks/useRealtime.ts`
- [Browser Supabase Client](https://github.com/ayushpatel2007/eventops-ai/blob/main/lib/supabase/client.ts): `lib/supabase/client.ts`
- [Server Supabase Client](https://github.com/ayushpatel2007/eventops-ai/blob/main/lib/supabase/server.ts): `lib/supabase/server.ts`
- [Domain Data Types](https://github.com/ayushpatel2007/eventops-ai/blob/main/types/database.ts): `types/database.ts`
- [Excel Export](https://github.com/ayushpatel2007/eventops-ai/blob/main/lib/exports/excel.ts): `lib/exports/excel.ts`

### Other components

- **Student**
- **Organizer**
- **Admin**
- **Supabase Database & Realtime**

## Connections

- Student → Student Registration: registers
- Student → Student Portal: uses
- Organizer → Organizer Portal: operates
- Admin → Admin Portal: administers
- Organizer Portal → Event Management: manages events
- Event Management → Applications Review: reviews applicants
- Student Portal → Coordinator ID: views approved ID
- Organizer Portal → Attendance & Audit: records attendance
- Student Portal → Schedule & Tasks: checks duties
- Organizer Portal → Zone Map: inspects zones
- Organizer Portal → Incident Management: manages incidents
- Student Portal → Emergency SOS: sends alert
- Organizer Portal → Emergency SOS: responds to alerts
- Organizer Portal → Control Room: monitors operations
- Admin Portal → Analytics: reviews metrics
- Organizer Portal → Workbook Exports: exports event data
- Workbook Exports → Excel Export: generates workbook
- Application Services → Supabase Database & Realtime: reads and writes
- Realtime Subscriptions → Browser Supabase Client: creates client
- Browser Supabase Client → Supabase Database & Realtime: subscribes
- Server Supabase Client → Supabase Database & Realtime: connects
- Application Services → Domain Data Types: uses domain types
