Project Description This is a JavaFX-based blockchain voting system designed to provide a secure and transparent platform for conducting elections. The system utilizes blockchain technology to ensure that all votes are securely recorded, immutable, and verifiable. It also features voter authentication to prevent unauthorized voting.
- Blockchain-Backed Voting: Each vote is securely stored as a block in a blockchain.
- Voter Authentication: Voters are required to log in with a valid voter ID before casting their vote.
- Proof of Stake (PoS): A simplified version of PoS is used for block validation.
- Decentralization Ready: The project is designed to simulate decentralized voting nodes.
- JavaFX for the user interface
- Java for backend and blockchain logic
- Hashing Algorithms for securing vote data
- Proof of Stake (PoS) for block validation
- Java Collections for blockchain storage
Follow the steps below to set up and run the project on your local machine.
- Java 8 or later
- IntelliJ IDEA (or any Java-supported IDE)
- JavaFX SDK installed and configured (for JavaFX projects)
1 Clone the repository: git clone https://github.com/adityaanikam/BlockChain-Voting-System.git
2 Configure JavaFX in your IDE:
- If using IntelliJ IDEA:
- Go to File -> Project Structure -> Libraries -> + (Add JavaFX library).
- Add the path to your JavaFX SDK.
3 Run the project:
- After setting up the JavaFX library, you can run the project in your IDE.
- The main entry point of the application is the VotingApp class.
How to Use Voter Registration
- When the application starts, voters can either register using their voter ID or log in directly if already registered.
- A voter registration form is available where users can enter their voter ID to register themselves.
Voting Process
- Enter a valid voter ID to log in.
- Select a candidate from the list of available candidates.
- Cast your vote, which will be recorded as a block in the blockchain.
- After casting the vote, a success message will be displayed.
Blockchain Structure
- Every vote is stored in a blockchain block.
- The system checks if the chain is valid and immutable after every vote.
- A simple Proof-of-Stake (PoS) consensus is used to validate blocks.
This project is licensed under the MIT License - see the LICENSE file for details.
If you'd like to contribute, please fork the repository and submit a pull request. We welcome all improvements and suggestions!
#Acknowledgments
- Inspired by blockchain technology and its potential to revolutionize secure voting.
- JavaFX documentation and community resources for the GUI implementation.
For any queries, suggestions, or contributions, feel free to reach out to me:
Email: adityanikam033@gmail.com