feat(elections): admin UI for election and race configuration
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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from USRSE/usrse.github.io
-
Difficulty 1/5 Under an hour Newbie friendliness 85/100
USRSE/usrse.github.io#2001 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
USRSE/usrse.github.io#2000 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
USRSE/usrse.github.io#1991 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
USRSE/usrse.github.io#1948 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
USRSE/usrse.github.io#1947 · 1 comment ·