rdancer / blockchain-voting-demo

Blockchain Voting Demo: A Solidity-based Ethereum project demonstrating a secure and decentralized token voting system

Home Page:https://blockchain-voting.rdancer.org/

Repository from Github https://github.comrdancer/blockchain-voting-demoRepository from Github https://github.comrdancer/blockchain-voting-demo

Blockchain Voting Demo

A Solidity-based Ethereum project demonstrating a secure and decentralized token voting system

logo

Executive Summary

Blockchain Voting Demo is a demonstration project showcasing a blockchain-based voting system using Ethereum and Solidity. This project serves as a proof of concept for implementing a secure and transparent voting mechanism on the blockchain. It's particularly relevant for organizations looking to integrate blockchain technology for decision-making processes.

Functionality

  • ERC-20 Token Creation: Custom tokens representing voting power.
  • Voting Mechanism: Tokens are used to cast votes on various proposals.
  • Decentralization and Security: Leveraging blockchain for a transparent and secure voting process.

Similar Real-Life Use Cases

  • Corporate Governance: Facilitating shareholder voting in corporate decision-making.
  • Community Decisions: Enabling decentralized voting in community-driven projects.

Technical Overview

Technology Stack

  • Smart Contract Development: Solidity
  • Blockchain Platform: Ethereum
  • Testing Framework: Truffle
  • Deployment and Interface: Remix

Contract Features

  • ERC-20 Token Contract: Details like token name, symbol, and total supply.
  • Voting Contract: Mechanics of casting and counting votes.

Security Measures

  • Best practices to prevent common vulnerabilities in smart contracts.

Testing and Deployment

  • Testing strategies for smart contracts.
  • Instructions for deploying on an Ethereum test network.

Interface Description

  • Interaction between the user interface and smart contracts.

Installation and Usage

Installation Steps

TODO

  1. Clone the repository: git clone https://github.com/rdancer/blockchain-voting-demo.git
  2. Install dependencies: npm install
  3. Set up the environment.

Usage Guide

  1. Ethereum Wallet Setup:

  2. Acquire Test Tokens:

    • Open the Blockchain Voting Demo web interface.
    • Click on the “Connect Wallet” button to link your Ethereum wallet with the demo. Approve the connection when prompted by your wallet provider (e.g., MetaMask).
    • After connecting, locate and click the “Request Token” button in the interface.
    • This action will automatically credit a set number of test tokens to your wallet for use in the demo.
    • The token balance will be displayed on the demo interface, confirming the successful transaction.
  3. Viewing Voting Proposals:

    • Access the list of active proposals on the demo’s main page. Each proposal details what you're voting on.
  4. Casting Your Vote:

    • Select a proposal to vote on.
    • Choose your stance (e.g., Yes, No, Abstain).
    • Use your tokens to cast the vote. More tokens mean a stronger vote.
  5. Checking Voting Results:

    • After voting, view the current standings for each proposal.
    • Results are updated in real-time as votes are cast.
  6. Finalizing Votes:

    • Once the voting period ends, final results are tallied and displayed.
    • Tokens used for voting are reset or returned as per the demo’s configuration.

Notes

  • This demo runs on Ethereum test networks; no real ETH is required.
  • The demo is for showcasing blockchain voting mechanisms; it's not for official or real-world voting purposes.

Contributing to Blockchain Voting Demo

Contributions to this demo project are welcome. Hit me up if you'd like to colab. The work is permissively licensed, so feel free to fork it and use it for your own purposes.

About

Blockchain Voting Demo: A Solidity-based Ethereum project demonstrating a secure and decentralized token voting system

https://blockchain-voting.rdancer.org/

License:MIT License


Languages

Language:JavaScript 100.0%