feat(elections): admin UI for election and race configuration

Open
#1,938 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

This issue has not been assessed yet.

Description

Summary

Build the admin-facing screens that let an election organizer create an election, add races, and manage candidates.

Part of #1933.

Requirements

  • `/admin` landing page lists elections with status badges
  • Create/edit election form (title, description, opens/closes at, timezone-aware)
  • Race editor: add/remove/reorder races per election, set method (IRV vs STV), seats, and candidate list
  • Candidate editor: name, short bio, headshot URL, drag-to-reorder
  • Form validation (required fields, closesAt > opensAt, seats ≥ 1, STV seats > 1)
  • Gate the whole `/admin` subtree behind an authenticated admin role
  • Confirm destructive actions (delete race, delete candidate) with a modal
  • Prevent edits to races/candidates once election status is `open` (allow only `close` transition)

Context

  • Epic: #1933
  • Depends on the Convex schema issue

Implementation notes

  • Keep the admin UI behind a simple WorkOS or Convex Auth guard with an allow-list of admin emails initially
  • Use the shared design-system tokens — don't one-off new styles in the elections app
Dominant language
HTML
Stars
33
Forks
104
Avg merge
12h 3m
Merged PRs (30d)
10

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from USRSE/usrse.github.io

All issues in USRSE/usrse.github.io

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.