I rewrote our voting script to be consistent with new programming skills learned in the last two years. The script now uses mySQL instead of a flat text file, builds the input form dynamically instead of using a static HTML file, and provides live results to admins. I provided a way to dynamically select among different voting methods.
The script currently supports two: plurality and approval. Plurality is conventional voting: each voter gets one vote per office. Approval voting permits the voter to cast as many votes as desired. I may build other, more complex voting schemes in the future, especially to provide instant-runoff capability. For example, preference voting permits voters to rank candidates and also perhaps distribute points to different candidates.
As typical, I did not build forms for election setup, since it is so easy for the tech admin to use a SQL admin tool to set up the election. It’s just the lowest priority for me but more important once I have moved on.