proj-amendableCode-listOfAndroidVotingApps

quappomobile

scheduling

main

new votes, completed votes, new created votes, participated votes (i.e. polls you've already voted in), settings ===

new votes

first screen: title, location, checkbox: automatic notification. btns: prev/next. next screen: contact list. btn: find contact by selecting an alphabetic letter, prev/next. next screen: select an unselect days from a calender. next: for each day, enter a list of possible times (free text entry). each possible time is its own text entry field. btns: pluses and minuses next to the text entry fields that make new text entry fields appear or disappear, prev/save. ===

your vote screen

next to each option (times for the same day are together; days separated by


s and the date labels on the upper left of each date's section), a clickbox; clicking on it cycles through: green check, red x, yellow O ("mb"). btns: select all (cycle thru all), reset, save. vote status screen: a 2D table, rows are ppl, cols, are dates/times, entries are votes; btn: "initiator" which, when pressed by the vote owner, brings up a context menu: complete voting, cancel voting.

method

sends sms to contacts with link to quappo website. votes also have a deadline, but i didnt see how to set it.

UI impression

feels hard to understand.


quick poll free

send sms to a list of ppl from contacts, tally responses

note on market: "currently does not work on android 2.0"

main

4 tabs: create poll (menu: new poll, edit poll, load poll, delete poll, close app, options), send to (menu: add individual, send poll to all, close app, options), results (menu: send results to voters, clear results, load poll, close app, options), help.

Send poll to all

 Review screen, says "review message then click the Send btn",  text entry field fith poll sms "do you like mint chocolate chip ice cream? send the word VOTE followed by a number: 1=Yes, 2=No", below it says, "the poll will be sent to:", below a list of phone #s (not contact names!); btn: Send.

method

notification icon, text: "QuickPoll? received a new vote". bug: doesn't process received vote everytime (). anyone can send a response to a poll, not just the ppl you sent it to. votes silently accepted, from the voters' POV.

UI impression

feels convenient.


GeoPoll

polls linked to nearby locations

main

ur location, as a name (russell dr, la jolla, ca 92037, usa) set location, 1 poll nearby, add poll, login, top users, settings. menu: open gloe.

1 poll nearby

list with a gray box with a number in it on the left, and the poll Q on the right. click on Q: poll options, each with a # (number of supporters) on the left in a gray box, sorted in descending order by # of supporters. click on option: confirmation dialog (ok/cancel)

add poll

dialog box with text entry box for poll question. btns: add option, cancel. add option: dialog box with text entry box for new option. btns: add option, done; press back btn cancels.

method

config option for radius of "nearby".

UI impression

feels convenient, altho the main menu is weird.


Moderator

forum with voted comments

there are topic series, within which there are topics, within which there are posts. each person can vote "yes" or "no" to each post. each post can also have "replies" (which are not new posts).

UI impression

feels hard to understand at first (the help is bad), but then ok


selectricity anywhere

not an android app; but you can use the selectricity sms interface from any phone with sms: http://selectricity.org/about/anywhere . but this does not provide a way to send an invitation to vote to the voters via SMS. i havent tried it yet.


Handy Poll

main

tap screen to create poll.

tap

title, question, keyword (all req'd). btn: next. options (text entry fields; as you click on the last option, a new, blank text entry field pops up below it); btns: back/next. respondents (text entry field; SMS to: type, i.e. autocomplete on alpha, but # is allowed too; when you autocomplete, it look like "me <123-456-7899>, "), reply instructions ('please reply KEYWORD number to cast your vote'), btns: back/save. poll preview dialog box: "Poll preview: each Q will take # SMS for # respondent for a total of # SMS. Your respondent will receive the following SMS:\n\nquestion\n1. option 1\n2. option 2\nPlease reply KEYWORD number to cast your vote"; btn: proceed, cancel).

new main screen

now main screen has a list view with the title of the poll as an item. btn: in top right corner, a picture of a question mark. click on poll: the SMS message of the poll, below four large btns with icons and names: Edit, Delete, Disable, Report. Editing deletes old results. Report has two tabs, Chart (pie chart) and Detail (labeled bar graph).

method

votes silently accepted, revotes silently discarded.

UI impression

feels clunky and corporate (partially b/c of the license dialog popup at the beginning).


Polls

doesnt work

main

three tabs: drafts, open, closed. one menu item throughout: New Poll. Drafts: list of drafts. one list item is "Do a new poll >>>". Open, Closed: list of polls.

New poll

screen with title "poll editor"; text entry box surrounded by green background, with the word "voters" to the left, in the text entry box is, in light gray, the text "Touch to edit Voters List"; when you touch it, instead of entering text, you go to another screen "Voters" (see below); below that, text entry box surrounded by red background with the word "Question" to the left, in the text entry box in light gray "Type your question here" -- that goes away when you start typing in it; below that, a text entry box on black with a "plus" button to the left (all of the text entry boxes on the page are left-aligned) in the text entry box in light gray "Type choice here and touch +". You enter a poll option there and then touch plus. menu on that screen: save draft, delete draft, remove choice (grayed out), poll options (a new screen with three radio options: 'internet voting' (everyone gets a web link to the poll), 'sms voting' (sms voters only vote via sms, email voters only via web link), 'sms voting (unlimited)' no list of voters, no intivation to vote (i.e. the user must transmit voting instructions thru some other channel) -- votes taken via sms), open poll (does not work until a voter list has been entered, a question has been entered, and at least two options have been created -- note: the second option is not considered to be entered until you press the + to create a third option, which is confusing.

Voter list

two tabs: Voters List and Select from Contacts. Voters list tab has a list; first item is "Add voter manually", then a list of voters. "add voter manually" gives a dialog with two text entry fields, phone number and email. emails are validaded, i.e. blah@blah doesnt work but blah@blah.com does. Can long press on a voter to get a context menu with a single item, Remove voter -- if you select it you get (annoyingly) a dialog "are you sure?" with btns yes, no. Select from Contacts tab is a tree view (expandable list) where the top level list is populated with your contacts (sorted correctly, i.e. case-insensitively). if you expand a contact you get a list of phone numbers and email. i think mb only "mobile" phone nums are shown?. click on a number to add it to the Voters list. back button or menu->Done saves.

open poll confirmation

At the top it says, "Feel free to edit the voter notification textx before pressing the Ok button (scroll down please)." Below, "E-Mail Subject:" and below that a text entry box with this in it: "A friend is doing a survey and has a question for you". Below that "E-Mail Body:" and below that a text entry box with "Hi, I need your opinion; please click below to see my question. Thanks. Below that "SMS text (max 83 characters):" and a text entry box which is disabled (not editable; grayed out) with "question\n1. option 1\n2. option 2\n\nVote by replying to this SMS, with the text POLL_NUMBER<space><option> for example:3 1". below that, "1 SMS message will be sent". Below that 2 btns, Ok, Cancel.

Results

available as a piechart. top left is poll name, pie chart (with ppl who didnt answer called "absentees"), # votes cast, "electorate" size, opened time, permalink (http link). menu->See details for a non-piechart view. menu->add voters (doesnt let u remove voters who have already been invited to vote), menu->close poll, menu->email results.


CloudList?Share/sync a list over the network


My design

two tabs: "create poll", "results"

create poll

if there is already an open poll, then a message "there is already an open poll -- do you want to create a second poll to run simultaneously?" if so, then dialog box with keyword text entry field

question

list of choices (options) (text entry fields); start with two; btn at bottom, "add new choice";

voters list (as SMS to: input, but mb later emails are allowed too)

btn at bottom, "start poll".

menu -> poll invitation details menu -> delete choice (dialog, "which one?" with spinner) menu -> save poll, load poll

create poll -> poll invitation details

(non-anonymous polls will by default announce this) (multiple SMSs are allowed)

create poll -> menu -> options

accept uninvited voters? y/n, def n "anonymous?" y/n, def y keyword (default VOTE) Voting method modifiable.

results

results

question (spinner; to select previous polls)

tab: pie chart tab: detailed results (non-anonymous polls only; each person who voted and who they voted for; menu item; sort by name, sort by vote; if anonymous, just says, "poll was anonymous so there is no information about who voted for what")

menu->forget this poll ("r u sure")? menu->forget all old polls ("r u sure")?

polls -> an open poll

btn: close poll and send results to voters

menu: edit poll, cancel poll (dialog: 'r u sure? poll will be cancelled and current poll results will be erased') (they do the same thing except edit poll puts it back into new poll)

settings (ubiquitous menu option)

automatically send results to voters when poll is closed? y/n def y

notify upon

help (ubiquitous menu option)

Method

keyword is case-insensitive

using webservice, allow email

No notify icon or running in background; just a broadcast receiver for SMS. no broadcast receiver if no open poll

blocks revotes

accepts the choice number in incoming votes, i.e. "VOTE 3"

mode where new suggestions can be added by voters, causing a broadcast to all (makes sense only if u can revote)

mode where voters can send a comment that will be included in the detailed report???

method for anonymity: each voter generates an unsecret code. they pass this code to a random (or non-random, it doesnt matter) voter. each person (or, rather, phone) who receives a code randomly (or non-randomly, it doesnt matter) decides whether to pass it on to some other random voter, remembering the history of all the codes they passed. now, to vote, you send the code you decided to keep, along with your vote, to the person who sent you your code. they consult their history, and pass the vote backwards. the same vote/code may pass thru a given node multiple times, that's fine b/c the node has its history. the key is that you dont know if the guy passing you the code with its vote is the final voter, or just an intermediate node passing it along. as you pass along the codes and their votes, you also remember which vote was associated with which code, and at which point. at some point, the codes have all gotten passed back to the nodes which created them. now every creator node publically reveals its code and the associated vote. each node check to make sure that: (a) it got to vote, (b) the number of revealed codes is the same as the number of nodes, and (c) the announced code-vote associations dont mismatch any code-votes pairs that passed thru it.

Results

Text by default. Button to send to end voting and send to voters. Pie chart tab. details to include: opening time, # of voters, # votes cast. *report on who voted for what


Anonymous voting idea

The problem: you have a bunch of voters. They desire to hold a poll where everyone knows the results of the poll, but no one knows who voted for what. Each voter knows who all of the other voters are. The voters can reliably send private messages to each other; but the recipient of a private message knows who sent the message to them. There is a reliable public channel. No more than some small fraction of the voters will disobey the protocol. the objective is just to detect vote tampering, not prevent it or fix it or detect who was doing the tampering.

a solution, i think:

each voter creates a ballot with a unique ballot ID. they pass this ballot to someone else. a person receiving a ballot can either vote it and give it back to the person who gave it to them, or pass it on to someone else. no one may vote more than once. each person keeps a log of everything they do. if they get a voted ballot back from the person they gave it to, they consult their log to see who gave them that ballot, and then they pass it back to the person who gave it to them, remembering which vote was on the ballot. eventually, all the votes make their way back along their paths. now everyone publically reveals the vote which is on the ballot that they created. each person checks that (a) they voted, (b) there is no mismatch between the votes that were on any ballots that they saw, and the votes announced for those ballots, (c) every ballot that they passed on came back thru them, (d) the right number of total votes was announced. if any of these checks fail, this is announced, and a misvote is declared. voters are instructed not to otherwise share the information in their logs with others.

explanation: privacy: if someone passes you a voted ballot, you don't know if they voted it themself, or if they passed it to someone else, so you can't attribute the vote on that ballot to them. validity: if anyone tries to vote more than one ballot, there won't be enough ballots for everyone else, which will be detected when someone didn't get to vote. If anyone tries to change the vote on a ballot, the others who have seen the ballot will know and will announce this.

some flaws: (a) in general, if someone alters a vote, then only the people who were further along the line will protest -- this may be a small number, giving everyone the information that one of those people cast the original vote. so, if the person who gave you a ballot that you voted then alters your vote, you can't protest without revealing that you were the one who cast that vote, b/c if you protest then only one person will be protesting (you). this can be ameliorated by only voting if you trust the person who gave you the ballot. (b) any voter can cause a misvote

in detail:

when i say a voter "somehow decides" or "somehow chooses", i mean that it doesnt matter how a voter decides or chooses (as long as they dont do so in a way that is predictable by an enemy; so, uniform random choices are the simplest way):

data structures:

Ballot Creation Phase: each voter creates exactly one ballot, with their own address as the "ballot ID". this does NOT mean that this voter will cast their vote using this ballot; it is merely a way of creating unique ballot IDs. each voter somehow chooses a different voter and sends the ballot that they created to that voter, logging this. that is, they get out their log for this ballot's ID, and in the first entry they put the address of the person they sent the ballot to in the To: field.

Scrambling Phase: upon receiving an unused ballot, each voter logs who sent it to them. they do this by getting out their log for that ballot ID, and appending a log entry with the "From:" set to the person who sent them the ballot. sometime after receiving a ballot, each voter somehow decides whether to use that ballot to cast a vote, or whether to pass it on, and if passing it on, whom to pass it on to. no voter is permitted to cast more than one vote. each voter logs what they did with each ballot; if they passed it on, they log the person they gave it to under "To:" in their log entry; if they voted with it, they leave "To:" blank, and fill in the "Vote:" in the log entry.

Voting Phase: after voting a ballot, a voter returns it to the person who sent it to them, and marks the current log entry for that ballot as Done (i.e. they look at the last log entry for that ballot, send the ballot back to the person in the From: of that log entry, and then change the log entry's "Done" to True). the voter remembers that they have voted.

Descrambling Phase: after upon receiving a voted ballot, each voter sends it back along the line, logging this. that is, they find the log corresponding to that ballot's ID, they find the last entry of that log which is not yet marked "Done", they verify that the person who gave them the voted ballot was the person in the To: of that log entry, they put the vote recorded on the ballot into the Vote: field of that log entry, they send the ballot back to the person in the From: of that log entry, and they change that log entry's Done to True.

Announcing Phase: upon receiving a voted ballot that has completed its backwards path (that is, upon reciving a voted ballot for which the last un-Done log entry has a blank From: field), a voter publically announces the ballot's ID and the vote on it ("ballot announcement").

Ballot Verification Phase: upon hearing a ballot announcement, each voter looks at its log for that ballot, and verifies that (a) there are no entries in that log which are not marked Done, (b) there are no entries in that log which have a Vote: which is differen from the announced vote. if verification fails, they publically declare a misvote.

Voter Verification Phase: upon hearing one ballot announcement for every ballot, a voter check to make sure they voted, and if so, publically reports it ("i voted" announcements); if not, they publically declare a misvote.

Completion: when no misvotes have been declared, and each voter declared "i voted", the vote completed successfully.


Amendable code UI

{} means parts that change depending on group sz on web, tabs are at top, current tab is larger font/bold

Main

how to form network of group members?

tabs? or button menu? tabs when 5 or less

news, ownership, influence, forum, officers, delegate, council, court(s)

ownership only shown if there is ownership, influence only shown if not one-person-one-vote; delegate, council only shown if they exist

news

4 tabs: announcements and personal news proposal results proposals misc news

ownership

amount of "stock" u own, amount of incentive "stock" you are currently awarded, total. buy/transfer "stock".

influence

(should have a way to display seeds) (not present if one-person-one-vote)

"AC allows different people to have different voting strengths, or "influence". AC contains an optional system for allowing different people to have different voting strengths, or "influence". This tab shows you how much influence you have, and allows you to "give" a proportion of your influence to other people. Giving influence does not decrease your own influence.

Your current influence: #% Your current voting strength (includes "stock": #%

list of triplets of items; on left, a person's name, in middle, a text entry box with a number; on right, text %". the last item is "add new person", which brings up a choose person dialog. long click on a person to bring up a context menu with "delete person". when you edit a person's number, it renormalizes by decreasing all of the other numbers proportionately

pie chart

Forum

"The forum is where all group members can make proposals and vote on them directly. You can also delegate your Forum votes to others."

Officers

tabs: tribune, ceo, eeo, elects

Officers:Tribune

"The {senior} Tribune is the leader of the group. The office is similar to Chairman of the Board in a corporation. Tribunes makes sure that the other officers are following the rules. They are elected by the members."

Officers:CEO

"The CEO {and the EEO} execute{s} the proposals which have been adopted by the group. {The EEO is in charge of external affairs, and the CEO is in charge of everything else.} They are selected by the Elects{ and the Delegates}."

Officers:EEO

(when the EEO exists:)

same UI as the CEO

Officers:Elects

(when they exist) "The commission{s} of Elects participate in voting on proposals, and {they/along with the Delegates}, choose most of the officers. Elects are elected by the members. The subcommission of Elects, external affairs handles external affairs."

Delegate

(when they exist) "In larger groups, people can form "constituencies". Each constituency chooses a "delegate". The delegates form a committee that has the same powers as the committee of Elects (see Officers). {In very large groups, the delegates themselves form constituencies and elect higher delegates.}"

Council

(when they exist) "In larger groups, people can optionally be asked to be assigned to discussion groups called Cross Councils. Each Council may cast votes, but only on topics where there is a rough consensus between the members of the council."

Intro help ubiquitous menu item

AC is a new democratic system for group decision-making. It includes a method for selecting officers and for voting directly on issues. For more information, see XXX


fd keywords: vote poll democracy