consuldemocracy / consuldemocracy

Consul Democracy - Open Government and E-Participation Web Software
https://consuldemocracy.org
GNU Affero General Public License v3.0
1.42k stars 1.1k forks source link

Participatory Budgeting Update with Ideas Phases, Approval Voting, More #2920

Open devinbalkind opened 5 years ago

devinbalkind commented 5 years ago

There are hundreds of participatory budgeting programs active around the world and many of them have small variations in how they’re organized.

The purpose of the following contribution is to make it possible for Consul-based system to support the type of PB processes organized by the Participatory Budgeting Program, a US-based nonprofit that designs and executes dozens of PB processes throughout the US.

The main differences between Consul’s existing PB functionality and the functionality needed to support PBP processes are: An “idea collection” phase at the beginning of the process where anyone can post ideas. A closed “projects” phase where only approved users can post potential projects. An “approval voting” process where users can vote for a maximum number of projects. The ability to limit which projects users can vote for depending on their address.

After the initial “informing” phase, we will add two new phases: ideas collection and project development.

New Idea Collection Phase Ideas collection allows users to submit ideas for a particular heading. Ideas are like “projects” but asking for less information so they are easier to create. We’re using the same database table as projects and hiding fields in the frontend and backend.

An option will be including allowing anyone to submit an Idea, including users that have not yet registered. If this “guest mode” is enabled, unsigned-in users will be allowed to click “post an idea” and then on that form, will be required to submit their name and email address before posting. This will generate an email to them asking them to confirm their account.

More info: https://github.com/ziyan-junaideen/consul/tree/feature/2-ideas

New Project Development Phase Project development phase simply turns off the ability for people to submit ideas but doesn’t activate the ability for them to submit projects via the front end. In this process, projects can only be posted from the backend.

Project proposals will be developed in committees of volunteers and submitted by administrative users via the backend.

More info: https://github.com/ziyan-junaideen/consul/tree/feature/2-ideas

Approval Voting The current Consul PB module only allows for “knapsack” voting in which each project has a price, and people can vote for as many projects as they want as long as the total cost of those projects in below that price. Approval voting limits the amount of votes someone can cast, no matter the price of the project. The maximum amount of votes is often limited on a per district basis.

We’re creating an option that allows the administrator of the PB process to select whether they want to use knapsack or approval voting. If they select approval voting, they can determine how many votes a user can cast on a district by district basis.

More info: https://github.com/consul/consul/pull/2845

Assign Users to Districts for Voting Currently, users can vote in any districts they like. The only control the system offers is the ability to limit how many districts a user can vote in.

Our system would invite users to select their district through a few different methods. They could select it through a drop down menu, by clicking on a map, or by inputting their address. Once a district is selected, the user’s ballot will only display projects in their district.

More info: https://docs.google.com/presentation/d/1TzgPyFgetsZcnG7Z-h9ykONYw2DMp3veiwr8L44LnW0/edit?usp=sharing

Expanding My Account to Accommodate District and Other Information Our process requires collecting additional information about users beyond what Consul currently supports. We need to know (a) their full name, (b) birthday and (c) district. We also offer them the ability to receive alerts via their phone, so we need to collect and verify (d) phone numbers as well.

As such, we’re proposing some design changes to the My Account page and the ability for admin to activate/deactivate different information facets.

More info: https://docs.google.com/presentation/d/1TzgPyFgetsZcnG7Z-h9ykONYw2DMp3veiwr8L44LnW0/edit?usp=sharing

ziyan-junaideen commented 5 years ago

About the changes Devin has described above w.r.t. ideas posting, I think some screen grabs might help understand the flow we have implemented.

Changes w.r.t. budget

Budget Ideas

Volunteer role

Admin budgets list view - sections for ideas posting admin budgets

Admin edit budget - post idea as guest and 2 new phases (btw why not make the phase select, select the current phase?) post as guest

/budgets under ideas posting budget - under ideas posting

Post new idea form (the volunteer button will create a volunteer role for the user) new-idea

Post new idea email new idea mail

Post new idea form for guest users. Users will follow the usual process to setup the password. post as guest new new user mail

Admin - budget ideas, a different table column structure and ability publish or remove from published list with checkbox. The export also reflects the updates. manage ideas for budget