- new methods
- median
- star
- 3-2-1
- about/faq page
- disttint
- different datasets
- other colors datasets, cities, custom dataset, etc
- voter preference scoring options
- submit sitemap to google
- gamify with high score thing
- kemeny-young algorithm improvements
- optimize algorithm so we don't check every single permutation (early exit)
- figure out what "result" to return if there's a tie
- more info on charts: threshold lines, marks, etc
- optimize existing methods to use cacheing
- cache approval threshold classes
- seo best practices: h-tags
- solution for visualizing pairwise comparison and methods with different "stages" (as opposed to rounds)
- improve borda count to use cache pairwise matchups
- add condorcet methods: kemeny_young, black
- new favicon
- add explanatory info
- add a sitemap.xml
- fix iPhone icon
- add shoutout for vodle, votyvote
- add unit tests for fptp, veto, and vfa
- deal with large number of voters problem
- add some fun methods
- positional: borda, nauru, euorvision, dabagh
- approval,
- quadratic,
- cumulative,
- copeland
- bar scores
- fix random voter bug
- removing a voter or candidate should automatically select them
- fix
copeland
andlull
score is wrong because it compares candidates against themselves lol
- add contingency block
- add a way for users to see a voter's preferences
- ability to pause a round
- show winners in block
- more efficient election calculation
- bug fixes...
- voter display not synced with state if added from bar
- contingency methods have 2 rounds always
- netlify breaks if navigating directly to url
- ability to modify the amount of each voter
- show the currently selected method and round-number
- save current election to localStorage and add reset button
- fix errors for edge cases (0 candidates, 0 voters, negative voter weight, etc)
- come up with a nice visualization for pairwise matrices
- change the pairwise matrix in ElectionCache so it uses ballotsScored
- redo the whole bar chart system:
- create a Bar class
- create a common BarChart component that can be used for all charts
- bar chart settings passed in from parent blocks
- blocks
- show round number,
- method name,
- and winners
- click on round number to pause
- SuperElection2
- use the Cache class
- rewrite all the methods to utilize the new Cache object
- store winners for each Cache object
- do we really have to regenerate the whole object everytime a candidate is removed?
- make the election method results return more info (e.g.
signed
should show the number for/against)
- settings icon next to selected method if it has extra options like tie-breaking methods or being calculated with incomplete ballots
- more docs/info
- add references for each method
- alternative names
- mathematical properties
- electowiki / wikipedia link if existing
- consolidate all voting method info
- fancy star pattern for the winner
- a way for user to see voter preference ratings
- show numbers on bars... somehow (on hover?)
- figure out a nice solution for a shitton of candidates
- make a particular election shareable by url
- show a threshold line for relevant methods (passed in from parent blocks)
- give a max size to the voter list and make overflow scrollable
- support for alternative datasets
- each dataset has its own data structure and distance calculating method
- custom datasets with manually entered preferences
- make the method options scrollable with a max-width (50%?) to support longer method names
- improve the title text showing voter preferences
- removing a candidate/voter should set selected to the removed candidate/voter
- change the app icon for mobile to not have transparent background
- create an About page with an FAQ
- secret menu for debugging and things I like to do like randomly select n+1 voters m times
- on small screens, make block method switcher and block title on separate lines
- clicking "show explanation" should scroll to top
- shift + clicking shuffle will also randomly change the amount
- ability to sort rosters by name, weight, order, etc
- click on a color to copy scores to clipboard as json (toggleable)
- click on title of voting block to toggle between expanded (with graphs) and collapsed (only winners)
- CTRL+Z to undo (will probably need useReducer and useContext)
- achievements
- e.g. with at least 6 * N voters, find N candidates where each wins at least one (untied)
- I guess the largest N possible is the number of voting systems lol (prolly less)
- keep track of highest variety of voters with this achieved
- make an "account" (bookbook-esque) to compare (e.g. 12% of people also got this achievement)
- e.g. with at least 6 * N voters, find N candidates where each wins at least one (untied)
- make roster controls scroll with scroll shadows instead of wrapping
- export to csv
- import from csv?
- ability to close the statbox like the infobox
- title for method switcher should show full name
- hcv (aka hcg) color space
- there's a lot of hidden functionality. Pro-tips at the bottom of the page like github has could be helpful
- to reduce bundle size for data, just save the rgb arrays instead and then use lazy loading magic to convert to hsl, hex, etc as needed (and make sure to cache!)
- what the hell is happening with that hover effect over the
<text>
of empty bars?? - nice() the scales
- site broken on safari mobile
- really smol bars are hard to hover over...
- all the runoff methods are broken when there's a tie
- don't overlap x-axis tick labels
- adding more voters to one already on the list doesn't upload the count in the display
- netlify breaks if trying to open Link in new tab
- clean up styling on mobile devices and across browsers
- mobile & safari: consistency in unicode/emoji formatting
- safari-iphone: why is the select text blue on my iphone?
- firefox: bar text invisible past bar
- firefox: chart sizing is off
- safari-mac: scroll shadows are fuqqed
- safari-mac: rainbow text doesn't do fancy transition
- contingency methods still have 2 rounds even if there's a majority winner
- veto method doesn't thicken border around winner sometimes (e.g. no non-zero winners)
- random candidate/voter button might choose one that's not in the list of options
- when resetting voters to preset, number display doesn't change if a voter is in both lists
-
copeland
andlull
score is wrong because it compares candidates against themselves lol - tab order skips buttons on safari
- tab order skips method switcher in blocks
- in voter roster, square may get squished and color names show on multiple lines
- when the method is switched and the y-axis varies drastically, bars don't smoothly transition
- zomming in on Safari and the wheel for number inputs also shrinks??
- 1 candidate with 0 voters leads to crash
- some methods return results that don't include all candidates
- open it up for external contributions
- clean up the code
- organize typescript types into a separate file
- remove
as any
typescript stuff
- PR templates, issue templates, etc
- CONTRIBUTING.md
- how the SuperElection system works
- use GitHub versioning
- use GitHub issues instead of TODO.md
- add linting rules
- unit testing!
- ROADMAP.md
- move that feature parity section from the README to here
- sidequests
- clean up the code
- accessibility (a11y)
- screen reader accessibility
- keyboard accessibility
- theme switcher and/or dark/light mode
- internationalization (i18n)
- support different languages
- search engine optimization (seo)
- add a sitemap
- frontendchecklist stuffs
- progressive web apps?
- build as a static site
- publish to f-droid
- use webgpu for calculations (also investigate web workers)
- content api for offline uses
- disttint: see most related colors and compare different distancing methods
- allsvote: vote for which method is best by voting for which method you want the results to be calculated in... Maybe it should be called metavote?
- votegame: a game where you try to manipulate voting systems
- achievements: e.g. find an election that results in different baldwin and nanson results
- get the largest number of different candidates as winners
- individual subpages for each method
- voting service like votyvote
- make-your-own voting systems
- runoff
- drop_condition (e.g. all candidates with less than average copeland score, least of borda score, etc)
- win_condition (e.g. more than 50% of remaining first-choice votes)
- weighted positional
- vector constructor
- runoff
archive
- make
signed
method return the number of votes for and against each candidate- show marks on its graphic
- mark the negative and positive votes for
vfa
- input
- allow modification of the number for each voter
- on hover over voters, show their ballots
- allow other datasets (colors:xkcd, colors:culi, colors:html, cities)
- allow for CUSTOM voters
- useLocalStorage to save inputs. Also, add a reset button
- start keeping a changelog
- x-axis ticks: dynamic positioning
- x-axis ticks: don't overlap other ticks
- chart blocks: show the full name of current method + round number + winner(s)
- Build as static site
- fix SPA for gh-pages (https://github.com/rafgraph/spa-github-pages)
- Testing
- unit testing for each method
- Docs
- disttint page
- allsvote page