Skip to content

feat(admin): events & sessions #1961

@cdcore09

Description

@cdcore09

Summary

Event lifecycle management — creation, approval, committee assignment, session scheduling, attendance tracking, sponsor wiring. Largest subsystem. Likely needs decomposition into sub-issues during its own brainstorm.

Requirements

  • Brainstorming → spec under docs/superpowers/specs/. (Likely splits into 2–3 sub-specs.)
  • /admin/events — global list (staff+); event chairs see only events they chair.
  • Event creation flow: draft → submitted → approved → published, with status enum and approval gate.
  • /admin/events/:id — detail editor: dates, location, description, type, links.
  • Committee management: assign chairs / co-chairs / area leads via event_committee_assignments.
  • Session scheduling: CRUD on event_sessions, presenter assignment via event_session_presenters, session_type selection.
  • Attendance: import / record event_attendances rows with role (attendee, speaker, organizer, sponsor, volunteer).
  • Sponsor wiring: link event_sponsorships to each event (depends on feat(admin): organizations — logos, memberships, sponsorships #1959 organizations).

Context

Foundation must ship first (#1956). Schema already supports nearly all of this — events, event_committee_areas, event_committee_assignments, event_sessions, event_session_types, event_session_presenters, event_attendances. Lots of UI work, modest schema additions.

Implementation Notes

  • Policy: canEditEvent(actor, { eventId }) — staff+ OR chairedEventIds.has(eventId).
  • "Approval" workflow is one of the few places we need a real status state machine; design carefully during its brainstorm.
  • This subsystem likely couples to Communications (feat(admin): elections #1964) for attendee notifications — flag the dependency during brainstorm.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions