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.git
cd
to theblockchain-client
folder.- Run
npm install
andnpm run build
in theblockchain-client
folder. - Run
./bin/run start --config=config/custom_config.json
to start the blockchain client.
cd
to thedapp-frontend
folder.- Run
npm install
to install dependencies. - Run
npm run dev
to 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 command
section 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
recipientAddress
and1481248200000000
as thetokenID
. Using this payload:{ "recipientAddress": "<YOUR LSK address>", "tokenID": "1481248200000000", "amount": "4000000000", "data": "" }
-
Submit the request.