You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
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.
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
docs/superpowers/specs/. (Likely splits into 2–3 sub-specs.)/admin/events— global list (staff+); event chairs see only events they chair./admin/events/:id— detail editor: dates, location, description, type, links.event_committee_assignments.event_sessions, presenter assignment viaevent_session_presenters,session_typeselection.event_attendancesrows with role (attendee, speaker, organizer, sponsor, volunteer).event_sponsorshipsto 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
canEditEvent(actor, { eventId })— staff+ ORchairedEventIds.has(eventId).