Create a Drupal Ethereum based most simple voting contract
Blockchain based anonymous voting has a lot of challenges and there are various approaches to enable that. It might be worth doing a deeper research into existing voting solutions, but I think there is one very simple approach with might fit well into Drupal architecture, while keeping things as simple as possible on the backend-, smart-contract- and user-interaction side.
Non-anonymous voting
Non anonymous voting is simpler to implement, as you don't require to hide current votes during the voting period from others (which is generally hard to do on Ethereum).
The general user story for this might be:
I have a organization of known users and wont to let them vote publicly provable on a set of options. Imagine I work for an NGO which want to decide which projects to found (e.g. once per year). People can submit project proposals and after a initial review and selection my Website editor should be able to start a voting on a set of projects.
Our Members will read the project proposals on our website and vote on them using the Ethereum blockchain as a proof layer.
Contract side
(research for existing similar solutions)
Allow users to vote on a fixed number of options (e.g: "entity hashes")
1-n votes per user
User may change his vote
A fixed, deployed expire date, when voting is closed
Any kind of permission hook, so that we can limit users allowed to submit a vote (e.g based on a registry)
Drupal side
Voting interface: Create a vote field which can be added to entities. Enabling the user interaction. Maybe based on a view so that you can have one page to put your votes and submit at once using Metamask
Smart contract deployment from Drupal.
The UX challenge is to let an Editor curate a bunch of nodes and deploy a voting contract on this easily.
Create a Drupal Ethereum based most simple voting contract
Blockchain based anonymous voting has a lot of challenges and there are various approaches to enable that. It might be worth doing a deeper research into existing voting solutions, but I think there is one very simple approach with might fit well into Drupal architecture, while keeping things as simple as possible on the backend-, smart-contract- and user-interaction side.
Non-anonymous voting
Non anonymous voting is simpler to implement, as you don't require to hide current votes during the voting period from others (which is generally hard to do on Ethereum).
The general user story for this might be:
I have a organization of known users and wont to let them vote publicly provable on a set of options. Imagine I work for an NGO which want to decide which projects to found (e.g. once per year). People can submit project proposals and after a initial review and selection my Website editor should be able to start a voting on a set of projects. Our Members will read the project proposals on our website and vote on them using the Ethereum blockchain as a proof layer.
Contract side
Drupal side