# gabrar/ceossystem architecture

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

- Interactive diagram: https://gitdiagram.com/gabrar/ceossystem
- Repository: https://github.com/gabrar/ceossystem

## Overview

CEOS is a conference and event platform for attendees, event organizers, and administrators. Attendees discover events, register (including paid registration), and submit work; organizers configure events and manage submissions and finances, while administrators oversee users, events, and analytics. The graph includes registration, payment, and submission stages plus shared authentication, event-status, and persistence layers. Evidence is limited to the README and supplied source excerpts/index; unsampled modules are represented only where the tree and index establish a subsystem, and uncertain connections are omitted.

Main entry points: [`lib/firebase.ts`](https://github.com/gabrar/ceossystem/blob/main/lib/firebase.ts) (Firebase data and auth), [`lib/admin.ts`](https://github.com/gabrar/ceossystem/blob/main/lib/admin.ts) (Admin operations), [`app/eventos/page.tsx`](https://github.com/gabrar/ceossystem/blob/main/app/eventos/page.tsx) (Event discovery), [`app/eventos/[id]/page.tsx`](https://github.com/gabrar/ceossystem/blob/main/app/eventos/%5Bid%5D/page.tsx) (Event details)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_event["Event experience"]
  node_event_catalog["Event discovery<br/>[page.tsx]"]
  node_event_card["Event card<br/>[EventCard.tsx]"]
  node_event_detail["Event details<br/>[page.tsx]"]
  node_registration_ui["Registration modal"]
  node_registration_api["Registration and charge<br/>[route.ts]"]
  node_registrations["Registration records<br/>[inscricoes.ts]"]
  node_payment_api["Payment verification<br/>[route.ts]"]
  node_submission_ui["Work submission"]
  node_work_rules["Work scheduling rules<br/>[trabalhos.ts]"]
end

subgraph group_organizer["Organizer workspace"]
  node_event_editor["Event configuration<br/>[page.tsx]"]
  node_organizer_dashboard["Organizer dashboard<br/>[page.tsx]"]
  node_organizer_events["Organizer event management<br/>[page.tsx]"]
  node_work_review["Work review<br/>[page.tsx]"]
  node_organizer_analytics["Organizer analytics<br/>[page.tsx]"]
  node_finance["Organizer finances<br/>[page.tsx]"]
end

subgraph group_admin["Administration"]
  node_admin_dashboard["Admin dashboard<br/>[page.tsx]"]
  node_admin_events["Admin event controls<br/>[page.tsx]"]
  node_admin_users["User administration<br/>[page.tsx]"]
  node_admin_analytics["Admin analytics<br/>[route.ts]"]
  node_admin_logic["Admin operations<br/>[admin.ts]"]
end

subgraph group_platform["Shared services"]
  node_auth["Authentication context<br/>[AuthContext.tsx]"]
  node_event_status["Registration status<br/>[eventStatus.ts]"]
  node_firebase[("Firebase data and auth<br/>[firebase.ts]")]
  node_supabase[("Supabase client<br/>[supabase.ts]")]
  node_asaas["Asaas integration<br/>[asaas.ts]"]
  node_subaccount_api["Organizer subaccounts<br/>[route.ts]"]
  node_subaccount_rules["Subaccount utilities<br/>[subcontaUtils.ts]"]
  node_registration_codes["Registration email codes<br/>[route.ts]"]
  node_validate_codes["Code validation<br/>[route.ts]"]
  node_mail["Mail delivery<br/>[mail.ts]"]
  node_analytics_logic["Analytics calculations<br/>[analytics.ts]"]
end

node_attendee(("Attendee"))
node_organizer(("Event organizer"))
node_admin(("Administrator"))

node_attendee -->|"browses"| node_event_catalog
node_event_catalog -->|"renders"| node_event_card
node_event_catalog -->|"checks status"| node_event_status
node_attendee -->|"opens event"| node_event_detail
node_event_detail -->|"opens registration"| node_registration_ui
node_event_detail -->|"offers submission"| node_submission_ui
node_event_detail -->|"normalizes enrollment"| node_registrations
node_registration_ui -.->|"requests charge"| node_registration_api
node_registration_api -->|"creates payment"| node_asaas
node_registration_api -->|"writes enrollment"| node_firebase
node_payment_api -->|"checks payment"| node_asaas
node_payment_api -->|"updates enrollment"| node_firebase
node_organizer -->|"configures event"| node_event_editor
node_event_editor -->|"saves event"| node_firebase
node_event_editor -.->|"uses scheduling rules"| node_work_rules
node_organizer -.->|"views workspace"| node_organizer_dashboard
node_organizer -.->|"manages events"| node_organizer_events
node_organizer -.->|"reviews submissions"| node_work_review
node_work_review -.->|"uses work rules"| node_work_rules
node_organizer -.->|"views analytics"| node_organizer_analytics
node_organizer_analytics -->|"calculates metrics"| node_analytics_logic
node_organizer -.->|"manages finances"| node_finance
node_admin -.->|"oversees platform"| node_admin_dashboard
node_admin -.->|"manages events"| node_admin_events
node_admin -.->|"manages users"| node_admin_users
node_admin_dashboard -->|"loads operations"| node_admin_logic
node_admin_events -->|"uses admin operations"| node_admin_logic
node_admin_users -->|"uses admin operations"| node_admin_logic
node_admin_analytics -.->|"reads platform data"| node_firebase
node_auth -->|"tracks session and profile"| node_firebase
node_auth -->|"checks administrator"| node_admin_logic
node_submission_ui -->|"uses work helpers"| node_work_rules
node_submission_ui -.->|"stores submission"| node_firebase
node_submission_ui -.->|"stores submission files"| node_supabase
node_subaccount_api -->|"creates subaccount"| node_asaas
node_subaccount_api -->|"persists account details"| node_firebase
node_event_catalog -->|"checks organizer account"| node_subaccount_rules
node_registration_codes -->|"stores registration code"| node_firebase
node_registration_codes -->|"sends code"| node_mail
node_validate_codes -->|"validates code"| node_firebase
node_admin_logic -->|"reads and updates records"| node_firebase
node_analytics_logic -->|"reads analytics data"| node_firebase

click node_event_catalog "https://github.com/gabrar/ceossystem/blob/main/app/eventos/page.tsx"
click node_event_card "https://github.com/gabrar/ceossystem/blob/main/components/EventCard.tsx"
click node_event_detail "https://github.com/gabrar/ceossystem/blob/main/app/eventos/%5Bid%5D/page.tsx"
click node_registration_ui "https://github.com/gabrar/ceossystem/blob/main/components/ModalInscricaoEvento.tsx"
click node_registration_api "https://github.com/gabrar/ceossystem/blob/main/app/api/asaas/criar-cobranca/route.ts"
click node_registrations "https://github.com/gabrar/ceossystem/blob/main/lib/inscricoes.ts"
click node_payment_api "https://github.com/gabrar/ceossystem/blob/main/app/api/asaas/verificar-pagamento/route.ts"
click node_submission_ui "https://github.com/gabrar/ceossystem/blob/main/components/ModalSubmissaoTrabalho.tsx"
click node_work_rules "https://github.com/gabrar/ceossystem/blob/main/lib/trabalhos.ts"
click node_event_editor "https://github.com/gabrar/ceossystem/blob/main/app/eventos/createEvent/page.tsx"
click node_organizer_dashboard "https://github.com/gabrar/ceossystem/blob/main/app/usuario/painel/dashboard/page.tsx"
click node_organizer_events "https://github.com/gabrar/ceossystem/blob/main/app/usuario/painel/meus-eventos/page.tsx"
click node_work_review "https://github.com/gabrar/ceossystem/blob/main/app/usuario/painel/trabalhos/page.tsx"
click node_organizer_analytics "https://github.com/gabrar/ceossystem/blob/main/app/usuario/painel/analytics/page.tsx"
click node_finance "https://github.com/gabrar/ceossystem/blob/main/app/usuario/painel/financeiro/page.tsx"
click node_admin_dashboard "https://github.com/gabrar/ceossystem/blob/main/app/admin/dashboard/page.tsx"
click node_admin_events "https://github.com/gabrar/ceossystem/blob/main/app/admin/eventos/page.tsx"
click node_admin_users "https://github.com/gabrar/ceossystem/blob/main/app/admin/usuarios/page.tsx"
click node_admin_analytics "https://github.com/gabrar/ceossystem/blob/main/app/api/admin/analytics/route.ts"
click node_admin_logic "https://github.com/gabrar/ceossystem/blob/main/lib/admin.ts"
click node_auth "https://github.com/gabrar/ceossystem/blob/main/contexts/AuthContext.tsx"
click node_event_status "https://github.com/gabrar/ceossystem/blob/main/lib/eventStatus.ts"
click node_firebase "https://github.com/gabrar/ceossystem/blob/main/lib/firebase.ts"
click node_supabase "https://github.com/gabrar/ceossystem/blob/main/lib/supabase.ts"
click node_asaas "https://github.com/gabrar/ceossystem/blob/main/lib/asaas.ts"
click node_subaccount_api "https://github.com/gabrar/ceossystem/blob/main/app/api/asaas/subconta/route.ts"
click node_subaccount_rules "https://github.com/gabrar/ceossystem/blob/main/lib/subcontaUtils.ts"
click node_registration_codes "https://github.com/gabrar/ceossystem/blob/main/app/api/auth/enviar-codigo-registro/route.ts"
click node_validate_codes "https://github.com/gabrar/ceossystem/blob/main/app/api/auth/validar-codigo-registro/route.ts"
click node_mail "https://github.com/gabrar/ceossystem/blob/main/lib/mail.ts"
click node_analytics_logic "https://github.com/gabrar/ceossystem/blob/main/lib/analytics.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_event_catalog,node_event_card,node_event_detail,node_registration_ui,node_registration_api,node_registrations,node_payment_api,node_submission_ui,node_work_rules toneBlue
class node_event_editor,node_organizer_dashboard,node_organizer_events,node_work_review,node_organizer_analytics,node_finance toneAmber
class node_admin_dashboard,node_admin_events,node_admin_users,node_admin_analytics,node_admin_logic toneMint
class node_auth,node_event_status,node_firebase,node_supabase,node_asaas,node_subaccount_api,node_subaccount_rules,node_registration_codes,node_validate_codes,node_mail,node_analytics_logic toneRose
class node_attendee,node_organizer,node_admin toneIndigo
```

## Components

### Event experience

- [Event discovery](https://github.com/gabrar/ceossystem/blob/main/app/eventos/page.tsx): `app/eventos/page.tsx`
- [Event card](https://github.com/gabrar/ceossystem/blob/main/components/EventCard.tsx): `components/EventCard.tsx`
- [Event details](https://github.com/gabrar/ceossystem/blob/main/app/eventos/%5Bid%5D/page.tsx): `app/eventos/[id]/page.tsx`
- [Registration modal](https://github.com/gabrar/ceossystem/blob/main/components/ModalInscricaoEvento.tsx): `components/ModalInscricaoEvento.tsx`
- [Registration and charge](https://github.com/gabrar/ceossystem/blob/main/app/api/asaas/criar-cobranca/route.ts): `app/api/asaas/criar-cobranca/route.ts`
- [Registration records](https://github.com/gabrar/ceossystem/blob/main/lib/inscricoes.ts): `lib/inscricoes.ts`
- [Payment verification](https://github.com/gabrar/ceossystem/blob/main/app/api/asaas/verificar-pagamento/route.ts): `app/api/asaas/verificar-pagamento/route.ts`
- [Work submission](https://github.com/gabrar/ceossystem/blob/main/components/ModalSubmissaoTrabalho.tsx): `components/ModalSubmissaoTrabalho.tsx`
- [Work scheduling rules](https://github.com/gabrar/ceossystem/blob/main/lib/trabalhos.ts): `lib/trabalhos.ts`

### Organizer workspace

- [Event configuration](https://github.com/gabrar/ceossystem/blob/main/app/eventos/createEvent/page.tsx): `app/eventos/createEvent/page.tsx`
- [Organizer dashboard](https://github.com/gabrar/ceossystem/blob/main/app/usuario/painel/dashboard/page.tsx): `app/usuario/painel/dashboard/page.tsx`
- [Organizer event management](https://github.com/gabrar/ceossystem/blob/main/app/usuario/painel/meus-eventos/page.tsx): `app/usuario/painel/meus-eventos/page.tsx`
- [Work review](https://github.com/gabrar/ceossystem/blob/main/app/usuario/painel/trabalhos/page.tsx): `app/usuario/painel/trabalhos/page.tsx`
- [Organizer analytics](https://github.com/gabrar/ceossystem/blob/main/app/usuario/painel/analytics/page.tsx): `app/usuario/painel/analytics/page.tsx`
- [Organizer finances](https://github.com/gabrar/ceossystem/blob/main/app/usuario/painel/financeiro/page.tsx): `app/usuario/painel/financeiro/page.tsx`

### Administration

- [Admin dashboard](https://github.com/gabrar/ceossystem/blob/main/app/admin/dashboard/page.tsx): `app/admin/dashboard/page.tsx`
- [Admin event controls](https://github.com/gabrar/ceossystem/blob/main/app/admin/eventos/page.tsx): `app/admin/eventos/page.tsx`
- [User administration](https://github.com/gabrar/ceossystem/blob/main/app/admin/usuarios/page.tsx): `app/admin/usuarios/page.tsx`
- [Admin analytics](https://github.com/gabrar/ceossystem/blob/main/app/api/admin/analytics/route.ts): `app/api/admin/analytics/route.ts`
- [Admin operations](https://github.com/gabrar/ceossystem/blob/main/lib/admin.ts): `lib/admin.ts`

### Shared services

- [Authentication context](https://github.com/gabrar/ceossystem/blob/main/contexts/AuthContext.tsx): `contexts/AuthContext.tsx`
- [Registration status](https://github.com/gabrar/ceossystem/blob/main/lib/eventStatus.ts): `lib/eventStatus.ts`
- [Firebase data and auth](https://github.com/gabrar/ceossystem/blob/main/lib/firebase.ts): `lib/firebase.ts`
- [Supabase client](https://github.com/gabrar/ceossystem/blob/main/lib/supabase.ts): `lib/supabase.ts`
- [Asaas integration](https://github.com/gabrar/ceossystem/blob/main/lib/asaas.ts): `lib/asaas.ts`
- [Organizer subaccounts](https://github.com/gabrar/ceossystem/blob/main/app/api/asaas/subconta/route.ts): `app/api/asaas/subconta/route.ts`
- [Subaccount utilities](https://github.com/gabrar/ceossystem/blob/main/lib/subcontaUtils.ts): `lib/subcontaUtils.ts`
- [Registration email codes](https://github.com/gabrar/ceossystem/blob/main/app/api/auth/enviar-codigo-registro/route.ts): `app/api/auth/enviar-codigo-registro/route.ts`
- [Code validation](https://github.com/gabrar/ceossystem/blob/main/app/api/auth/validar-codigo-registro/route.ts): `app/api/auth/validar-codigo-registro/route.ts`
- [Mail delivery](https://github.com/gabrar/ceossystem/blob/main/lib/mail.ts): `lib/mail.ts`
- [Analytics calculations](https://github.com/gabrar/ceossystem/blob/main/lib/analytics.ts): `lib/analytics.ts`

### Other components

- **Attendee**
- **Event organizer**
- **Administrator**

## Connections

- Attendee → Event discovery: browses (evidence: `app/eventos/page.tsx`)
- Event discovery → Event card: renders (evidence: `app/eventos/page.tsx`)
- Event discovery → Registration status: checks status (evidence: `app/eventos/page.tsx`)
- Attendee → Event details: opens event (evidence: `app/eventos/[id]/page.tsx`)
- Event details → Registration modal: opens registration (evidence: `app/eventos/[id]/page.tsx`)
- Event details → Work submission: offers submission (evidence: `app/eventos/[id]/page.tsx`)
- Event details → Registration records: normalizes enrollment (evidence: `app/eventos/[id]/page.tsx`)
- Registration modal → Registration and charge: requests charge
- Registration and charge → Asaas integration: creates payment (evidence: `app/api/asaas/criar-cobranca/route.ts`)
- Registration and charge → Firebase data and auth: writes enrollment (evidence: `app/api/asaas/criar-cobranca/route.ts`)
- Payment verification → Asaas integration: checks payment (evidence: `app/api/asaas/verificar-pagamento/route.ts`)
- Payment verification → Firebase data and auth: updates enrollment (evidence: `app/api/asaas/verificar-pagamento/route.ts`)
- Event organizer → Event configuration: configures event (evidence: `app/eventos/createEvent/page.tsx`)
- Event configuration → Firebase data and auth: saves event (evidence: `app/eventos/createEvent/page.tsx`)
- Event configuration → Work scheduling rules: uses scheduling rules (evidence: `app/eventos/createEvent/page.tsx`)
- Event organizer → Organizer dashboard: views workspace
- Event organizer → Organizer event management: manages events
- Event organizer → Work review: reviews submissions
- Work review → Work scheduling rules: uses work rules (evidence: `app/usuario/painel/trabalhos/page.tsx`)
- Event organizer → Organizer analytics: views analytics
- Organizer analytics → Analytics calculations: calculates metrics (evidence: `app/usuario/painel/analytics/page.tsx`)
- Event organizer → Organizer finances: manages finances
- Administrator → Admin dashboard: oversees platform
- Administrator → Admin event controls: manages events
- Administrator → User administration: manages users
- Admin dashboard → Admin operations: loads operations (evidence: `app/admin/dashboard/page.tsx`)
- Admin event controls → Admin operations: uses admin operations (evidence: `app/admin/eventos/page.tsx`)
- User administration → Admin operations: uses admin operations (evidence: `app/admin/usuarios/page.tsx`)
- Admin analytics → Firebase data and auth: reads platform data
- Authentication context → Firebase data and auth: tracks session and profile (evidence: `contexts/AuthContext.tsx`)
- Authentication context → Admin operations: checks administrator (evidence: `contexts/AuthContext.tsx`)
- Work submission → Work scheduling rules: uses work helpers (evidence: `components/ModalSubmissaoTrabalho.tsx`)
- Work submission → Firebase data and auth: stores submission (evidence: `components/ModalSubmissaoTrabalho.tsx`)
- Work submission → Supabase client: stores submission files (evidence: `components/ModalSubmissaoTrabalho.tsx`)
- Organizer subaccounts → Asaas integration: creates subaccount (evidence: `app/api/asaas/subconta/route.ts`)
- Organizer subaccounts → Firebase data and auth: persists account details (evidence: `app/api/asaas/subconta/route.ts`)
- Event discovery → Subaccount utilities: checks organizer account (evidence: `app/eventos/page.tsx`)
- Registration email codes → Firebase data and auth: stores registration code (evidence: `app/api/auth/enviar-codigo-registro/route.ts`)
- Registration email codes → Mail delivery: sends code (evidence: `app/api/auth/enviar-codigo-registro/route.ts`)
- Code validation → Firebase data and auth: validates code (evidence: `app/api/auth/validar-codigo-registro/route.ts`)
- Admin operations → Firebase data and auth: reads and updates records (evidence: `lib/admin.ts`)
- Analytics calculations → Firebase data and auth: reads analytics data (evidence: `lib/analytics.ts`)
