GithubHelp home page GithubHelp logo

naklecha / decentralized-voting-system Goto Github PK

View Code? Open in Web Editor NEW
94.0 5.0 39.0 16.42 MB

Secure Electronic Voting using Azure Blockchain

License: MIT License

JavaScript 4.12% Python 49.07% CSS 12.94% HTML 33.87%
vote election azure-blockchain aadhaar-api candidate election-process cast proposals verification codefundo

decentralized-voting-system's Introduction

decentralized-voting-system

A decentralized voting system where a user can walk into a government authorized center (Ex- banks, telecom companies etc.) and cast their vote using the proposed portal.

LINK TO DEMO ON YOUTUBE: https://www.youtube.com/watch?v=tCVSpcgiodM

NOTE: All diagrams are made by me and appropriate credits must be given before copying it.

Key Advantages

  • No VoterID required as a user's validity (age: 18+) is determined dynamically using the Aadhaar API
  • Secure vote by Azure blockchain and biometric authentication (using pre-existing Aadhaar database)
  • Reduced cost during election process
  • Shorter wait times as it is decentralized
  • A vote can be cast from anywhere in the country
  • Highly scalable design
  • Efficient election system in which the portal can be up for days together, in turn increasing voter turnout
  • Portal front end can provide useful information on the candidate and can aid in their decision making (display promises, proposals etc.)

A Vote's Story

A user will walk into a government authorized center and complete his/her biometric verification. Once the verification is complete the user will be taken to a web-based portal (developed by me) where he/she will be presented with the voting options. The portal then sends the information of the user's vote (encrypted) to backend (developed by me) where the data will be decrypted and the vote's transaction from the user to the candidate will take place using the Azure blockchain service. The candidate with the most votes is elected. During each election time the users are that are voted are logged which will make sure only one transaction can be made by the user during the whole election process.

Workflow Diagram

WORKFLOW

Voting System Workflow

During the election time the admin will initiate the election. When the election is initiated the candidate list is sent to the front end of the portal (which is setup at govt. authorized locations). The front end can display useful information on the candidate and can aid in their decision making (display promises, proposals etc.). The encrypted vote along with the user information is sent to the initiate vote method at the backend. This initiate vote method calls the account validation method which validates the user using the Aadhaar API and make sures that the user has not voted yet. If the user validation is successful then the vote cast method is called, which sends the vote as a contract to the Azure Blockchain Service.

NOTE: At the end of the election, the candidate with the most votes is elected.

PORTAL WORKFLOW

Technologies

  • Azure Blockchain
  • Aadhaar API service (for biometric authentication)
  • Python (to communicate with blockchain and for backend and frontend API calls)
  • Truffle (provides tools to create and test smart contracts)
  • Ganache (to create private blockchain network for testing on localhost)
  • Flask (web framework)
  • Docker (deployment of portal on the cloud)

ENABLED BY

Author

decentralized-voting-system's People

Contributors

naklecha avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

decentralized-voting-system's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.