Add borda.html: stateless ranked-choice voting tool#38
Closed
Quidge wants to merge 1 commit into
Closed
Conversation
A single-file Borda count tool for small groups. Organizer creates a poll, shares a URL, each voter ranks the choices and sends back a short ballot string. Anyone can paste the ballots into the tally view to see the Borda-count result. Nothing is stored on a server — the election lives entirely in the URL fragment and the ballot strings lives in whatever message channel the voters use. https://claude.ai/code/session_01819o9wgjDQMa7xHTBgKfAQ
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
A single-file Borda-count ranked-choice voting tool for small groups.
Designed mobile-first: large tap targets, 16px inputs to avoid iOS zoom-on-focus, system font stack, no external assets. URL-fragment encoding uses base64url with SHA-256 checksum derivation via Web Crypto.
Screenshots
Desktop — create a poll, generate a shareable link:
Mobile — vote and generate a ballot string:
Desktop — tally view with Borda-count results:
Mobile — tally view:
Test plan
Manually tested end-to-end via Playwright (
uv run python -m http.server+ Playwright driving Chromium at desktop 900×700 and mobile 390×780 viewports):#e=fragment