Pollify is a decentralized voting application using the Lisk SDK, where users can create and participate in various polls and elections.
User Registration: Users can create accounts on the DApp using their Lisk account.
Poll Creation: Registered users can create polls by specifying the title, description, options, and expiration date. These polls are stored on the sidechain.
Voting: Users can participate in polls by casting their votes. Each user's vote is recorded on the sidechain using their Lisk address.
Results Display: Real-time poll results are visualized in pie charts.
Security: Ensures that the voting process is secure and transparent by leveraging blockchain technology. Prevent double voting and ensure anonymity.
Expiration and Closing: Polls automatically close and results are finalized when the specified expiration date is reached.
The project requires:
- Node.js: 18.0
- npm: >= 8.1.0
Clone the repository using the following command to include the dapp-frontend and blockchain-client submodules:
git clone --recurse-submodules https://github.com/joshDamian/lisk-voting-dapp.gitcdto theblockchain-clientfolder.- Run
npm installandnpm run buildin theblockchain-clientfolder. - Run
./bin/run start --config=config/custom_config.jsonto start the blockchain client.
cdto thedapp-frontendfolder.- Run
npm installto install dependencies. - Run
npm run devto start the application.
PS: The blockchain client should be running before starting the frontend application.
You need some LSK to create polls and vote on
Pollify
While the blockchain client is running;
-
Copy your LSK address from the account tab on
Pollify -
Visit http://localhost:4005
-
Scroll to the
Invoke commandsection and selecttoken_transfer
-
Enter this passphrase into the passphrase input:
guitar extend virtual giggle absorb hamster destroy bone sun gap fire penalty document rocket arrive eternal flight diet clarify inflict draw fruit usage mean
-
Enter the request payload as shown in the picture, using your copied LSK address as
recipientAddressand1481248200000000as thetokenID. Using this payload:{ "recipientAddress": "<YOUR LSK address>", "tokenID": "1481248200000000", "amount": "4000000000", "data": "" } -
Submit the request.

