2

I'm working with a model government simulation for fun over on reddit. I was wondering if there is a way that I could improve anonymity of votes and ensure that all votes are legitimate. This is the way that we currently do things:

  • A voting form and spreadsheet are created in Google Docs
  • People vote in the poll (which includes asking for their reddit name) and then post in the reddit comments to let us know that they voted.
  • We compare the number of votes at the end to the number of comments in the thread and check to make sure that the numbers match and that for each username in the spreadsheet, there is one comment in the thread.

This has some really obvious problems. For one, the spreadsheet has to be owned by a single person and could be manipulated by the spreadsheet owner. Additionally, by having users enter their username into the form, we can verify that they voted, but it basically tosses anonymity out the window since the person who owns the spreadsheet can see how everyone voted. Lastly, verifying that the votes are accurate can take a really long time for longer votes. We don't have a quick and easy way of verifying the results do not have duplicate votes, votes from unverified users who were just given the link to the google docs form. Lastly, we can't audit this process. If they were to release the spreadsheet to verify that the election was done properly, we would just end up having everyones votes released.

Is there a better system to make our voting system more anonymous, but still be able to easily verify votes through their reddit username or other info.

2

This really boils down to how much programming knowledge that you have as well as whether or not you want to host this onto a database and / or whether you want to to store them into a file, costs may vary with this.

There is, an alternative with using Google spreadsheets and that you can tick the option "Do not capture email addresses" .. This should allow you to do the anonymous entries acceptable. Source: Google - Answers

They basically state that:

You have created the form in Google Apps for your company domain. You should have unchecked the option that e-mail addresses should be captured.

See 1, i.e. "If you use Google Apps, you can choose to record the email addresses of people who fill out your form. To do this, select the checkbox next to 'Automatically collect respondent's yourdomain.com username' while you create the form. Survey recipients will see a message at the top of the form explaining that their username will be collected automatically."

For the duplicate entries, you can use the following formular: =countif(A:A,A1)>1 source: highlight cell if value duplicate in same column for google spreadsheet

This will then hightlight all of the entries that contain duplicate values.

I hope this helps you.

EDIT:

You are probably better to use a database for this task. This could be fairly simple, providing that you have a domain of some sort and just host it on a single page. Essentially, what would happen is:

  1. You would ideally create a single form on a page, asking for the persons username that they want to vote for.
  2. If you wanted to capture the name of the user, you can, you can also check for duplicate entries using a small sql query and then ignore any entries that were made.
  3. At the end of the process, run queries, this can be used to select counts, distincts etc..

ANOTHER APPROACH:

Carry on using the methods that have been described, through Google Forms / Spreadsheet. At the end of the process, download the data that you have collected into a CSV form, create a local database (sql, mongoDB etc..), import the data into the database and then perform your queries. This will save you time AND if you are tracking their usernames will also allow you to perform distinct queries etc.. This would essentially solve a lot of your problems and make this process more efficient.

Not the answer you're looking for? Browse other questions tagged or ask your own question.