Tuesday, March 22, 2022

Ranked Choice vote app: User Stories

 So I was talking to our Tech Elevator instructor, Randy, about the possibility of building the Ranked Choice voting app for our final capstone project. With a few caveats, such as loss of ability to choose our own priorities, and the need for at least three other people to be interested in working on it, he says it could work. So here's a bunch of user stories to make up a proposal for the project!


I want to create a system that will help large groups of people make tough decisions about issues where there are lots of options! I've heard that ranked choice voting is a great method to do this, so let's use that.

Whenever an issue comes up and needs a decision, it will have an issue ballot created by a user who becomes the Issue Administrator (IA). The IA will word the question of the issue, and will provide some options for voters to choose from.

As the Master Administrator (MA), I reserve the right to veto or delete any issue, in case it conflicts with pre-existing conditions which would make it a moot point.

Both the MA and the IA should have the ability to edit the wording of the issue's question and options.

As a voter, I should be able to log into my personal profile, which will help me track my votes and refer back to them as needed.

As a voter, I should be able to select an issue to vote on from a list of all currently-active issues. Selecting this issue will show me its full description/question, and all currently-available options. I will choose my favorite of the options, then my second favorite, then my third favorite, and so on, until there are no more options that I would consider acceptable. I would then submit this ranked list as my vote on the issue.

As a voter, if I have an idea for an option that hasn't already been included on the issue, I should be able to submit a custom write-in answer. I would then be able to include it in my ranked vote, so that my write-in option can be in whatever position I feel appropriate.

As an IA, I should be able to review any write-in options that have been used in votes cast on my issue. If the write-in option is redundant or inappropriate, I can delete it. If it is a valid option that other voters may also desire, I can add it to the issue. If it is ambiguous, I can reword it before adding it to the issue. 

If a written-in option is unclear, as an IA I should have some method of reaching out to the voter who suggested it, so we can discuss the new option together. This could come in the form of an in-app messaging system, or could be as simple as the voters putting a contact method into their profile.

As an IA, I should be able to set a time limit on the active period of the issue, or leave it active until further notice, or close it after a certain number of votes have been cast on it.

As a voter, if a new option has been added to an issue I've already voted on, and the issue is still active, I should be able to update my vote so that it considers this new option. In fact, I should be able to update my vote anyway, because I might learn new information that could change my mind!

As a voter, I should be able to view the current results of an issue I have voted on. These should display anonymously, but will show the statistical preferences of all voters who have cast a vote on this issue.

As an IA, I should be able to tag my issue with filters that will make it easier for voters to find the issues that are relevant to them.

As a voter, I should be able to become an IA by proposing a new issue to the MA.

As an IA, I should not be able to administrate an issue created by a different IA, unless they give me permission to do so. I should only be able to administrate the issue that I created. I should be able to give permission to other voters to administrate my issue, thereby making them IAs for the issue I created. This will make it possible for us to have more coverage, so we can have a better response time when reviewing written-in options.

No comments:

Post a Comment

Schoolwork assignments incoming

These first few posts are part of this assignment:  "Throughout this course, you will create an Information Technology Blog with seven ...