Skip to content

Ronit26Mehta/Election2024

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Decentralized Secure Voting System

Traditional voting systems face challenges related to security, transparency, and potential fraud. A blockchain-based voting system can address these issues by providing a secure, transparent, and auditable platform for elections. This solution leverages distributed ledger technology, cryptographic techniques, and user-friendly interfaces to facilitate the entire voting process while ensuring voter privacy and anonymity.

Key Features:

1. Secure Digital Identity Verification

Implement a robust digital identity verification process for voters to prevent unauthorized access. Utilize cryptographic techniques to ensure the integrity and authenticity of voter identities, enhancing the overall security of the voting system.

2. Blockchain for Tamper-Proof Voting

Utilize a blockchain to establish a decentralized and tamper-proof ledger for recording votes. Assign a unique identifier to each voter and record votes transparently and immutably. Employ cryptographic encryption to secure the transmission of votes from the voter to the blockchain, ensuring the integrity of the entire process.

3. User-Friendly Interfaces

Develop intuitive and user-friendly interfaces for both voters and election administrators. Provide step-by-step guidance to voters, ensuring a seamless and accessible voting experience. User interfaces should prioritize simplicity and accessibility for a diverse range of users.

4. Public Access and Transparency

Enable public access to the blockchain, allowing independent audits of the voting process. Implement transparency features that empower anyone to verify the accuracy of results while maintaining the privacy of individual voters. This ensures a high level of trust in the integrity of the election.

5. Independent Verification

Empower independent parties, such as election observers or auditing agencies, to verify election results directly from the blockchain. This feature enhances the credibility of the election process by allowing external entities to confirm the accuracy of results independently.

project workflow

Admin operations:

1.the admin workplace would compromise of the panel and powers to perform operations like verification, Add candidate , registartion and also allows a admin to vote and get the results as such. the admin when logged in inside the Election2024 portal would be provided with a such interface. WhatsApp Image 2024-03-10 at 07 04 05_d1965e7e as seen ethereum smart contract allows for verification and validation of the user into the website. 2.after the admin gets logged inside the election2024 website he can host an election of his own basis on needs for the admin whenever when required and also end it when he desires generally doing this ensures access to perform this operation only through admin. accessing the admin operation would be possible by the private key: WhatsApp Image 2024-03-10 at 07 33 21_5310d526 after using this key the admin can then continue the operation of his choice as such one of them being conducting voting and endding the session as such : WhatsApp Image 2024-03-10 at 07 04 22_4591a6f0 3. After this another major factor of each elections are candidates a simple and mordern user interface allows the admin to verify and approve only legit candidate to run for an election as such. this ensures transparency as such and make this system more secure. Interface to add candidate: WhatsApp Image 2024-03-10 at 07 05 54_346bd1a1 a list of candidates approved to stand by admin: WhatsApp Image 2024-03-10 at 07 08 12_c2186230 4.Approval of each voter is important this is ensure by admin by checking each details as such and verifying whether the user is legit or not. if he is legit then he would be allowed to vote or else he wont be given permission to do so . an example of type of user who wouldnt be eligble for voting is given below: WhatsApp Image 2024-03-10 at 07 09 39_15cec6b2 the interface would have each request at its sight and when the request is approved which would be done by admin this would ensure the independent verification of each user. IMG-20240310-WA0011 the above image shows amount of request of voters which has come to him in order to vote are approved by admin by looking at each profile. this approval ensure only legit users to vote.

  1. As seen the admin can end a particular election when he needs doing it ensure verfication of each vote and stored in the blockchain and a protected election from each tampering one in ballot system as such.this ensures every election to be started smoothly and end with all process being safe and secure. when the admin needs the end of a election he would have the power to do so as such. At his dashboard he can perform operations to end it then he would be provided with a msg regarding the election has ended. IMG-20240310-WA0016 after ensuring the msg has reached to the admin then he can ensure to have a glimpse of result by using the access to it which will provide him the name of winner: IMG-20240310-WA0017

User Operations:

  1. The general user would have a lesser number of operations available in compare to admin. A general user would be able to login into his account and then cast his vote. he would be provided the option to cast vote and get access to the result pane as such whenever it will be declared . this login access can be done for the user portal through either the private key or general key as such this would allow the user to login inside the election 2024 and make votes. Incase of scenario of general user as such he would be given three major section when he logged into the portal as such. this would include a part of section for register , entering vote and the result section. the part of regsitration is given to the user below here: IMG-20240310-WA0007 this details would play a vital role as such beacause the admin have to approve each voter before enterring the vote for the to ensure the verification as such. here the portal of the admin can give us glimpse a differentiation between legitimate and illigitamate users as such: IMG-20240310-WA0012 this would bring us with tamper proof voting and ensuring the election to work and move soundly as such.
  2. After once a user gets approved by the admin for voting he can then cast his vote for the candidates who are standing in the elections as such. this cast of votes will only be unlocked when the verification process is completed by admin and then a user can enter his votes. he would be given a list from which to vote as such. this voting would ensuring transparency and public access as such and which will help to store each vote respone with being manipulated. the ui which a voter would see on the screen when he is in voting boot section and if he is not verified the buttons would be disabled: IMG-20240310-WA0010 the ui a voter would see on the screen when he is in voting boot section and if he is verified the button would be enabled: IMG-20240310-WA0014
  3. Once the user has cast his vote the button would disabled by itself as such and after that he would be given a pop up to see the results as soon as the results are declared as such and this would ensure him to get the notification whenever the result are declared and provided to him at earliest. IMG-20240310-WA0014

Setting up the development environment

Requirements

Getting the requirements

  1. Download and install NodeJS

    Download and install NodeJS from here.

  2. Install truffle and ganache-cli using node packager manager (npm)

    npm install -g truffle
    npm install -g ganache-cli
  3. Install metamask browser extension

    Download and install metamask from here.

Configuring the project for development

  1. Clone this repository

    git clone https://github.com/arlbibek/dVoting.git
    cd dVoting
  2. Run local Ethereum blockchain

    ganache-cli

    Note: Do not close ganache-cli (the blockchain network needs to be running all the time)

  3. Configure metamask on the browser with the following details

    New RPC URL: http://127.0.0.1:8545 (use port: 7545 for ganache gui, update it in the file:truffle-config.js as well)

    Chain ID: 1337

  4. Import account(s) using private keys from ganache-cli to the metamask extension on the browser

  5. Deploy smart contract to the (local) blockchain network (i.e ganache-cli)

    # on the dVoting directory
    truffle migrate

    Note: Use truffle migrate --reset for re-deployments

  6. Launch the development server (frontend)

    cd client
    npm install
    npm start

    If you encounter error during npm install, please note that you might need to install Microsoft Visual C++ Redistributable packages from learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist (here is the direct download link for X64: aka.ms/vs/17/release/vc_redist.x64.exe)

Conclusion

By incorporating these features, a decentralized secure voting system can revolutionize elections, addressing concerns related to security, transparency, and fraud. The use of blockchain technology and cryptographic techniques ensures a robust and trustworthy platform that upholds the principles of democracy while embracing innovation.

About

ACM-Hackathon(runner up of LOC 6.0)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published