Skip to content

feat(admin): elections #1964

@cdcore09

Description

@cdcore09

Summary

Election cycle management — nominations, candidate vetting, voting, results. Coordinates with the existing apps/web Elections page (referenced in #1933) and may live as its own app.

Requirements

  • Brainstorming → spec under docs/superpowers/specs/.
  • Decide architecture during brainstorm: subsystem inside apps/admin, or its own apps/elections workspace using the same auth-shell + design-system?
  • Election lifecycle: open call for nominations → vetting → ballot construction → voting window → results publication → seating.
  • Voting model: ranked-choice (existing US-RSE practice via ElectionBuddy) or in-house? Decision deferred to brainstorm.
  • Eligibility: only active members can vote; eligibility snapshot taken at ballot construction.
  • Results integration: winning candidates auto-populated into leadership_terms rows on confirmation.

Context

Foundation must ship first (#1956). Existing apps/web/src/pages/about/ElectionsPage.tsx references ranked-choice voting via ElectionBuddy — currently informational. This subsystem is the move from "linked external service" to "managed in-house".

Implementation Notes

  • Audit trail is critical: every ballot, every candidate vetting decision, every results publication step.
  • Privacy: vote secrecy matters; design the data model so individual votes can't be traced back to voters even by super_admin.

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