E-voting Blockchain is a decentralized voting application built on blockchain technology. This project aims to provide a secure, transparent, and tamper-proof platform for conducting elections. Leveraging blockchain ensures that votes are immutable and verifiable, making the system resistant to fraud and manipulation.
- Blockchain-based Voting: Ensures votes are stored on a decentralized ledger for transparency.
- Security: Each vote is encrypted, ensuring confidentiality and integrity.
- Transparency: The blockchain ledger is accessible and verifiable by all participants, preventing vote tampering.
- Anonymity: Ensures the voter's identity is kept confidential.
Before running this project, ensure you have the following installed:
Follow these steps to set up and run the project locally:
-
Clone the repository: git clone https://github.com/MekdadGhazal/E-voting-Blockchain.git cd E-voting-Blockchain
-
Install dependencies: 2.1Backend (Laravel) Dependencies: composer install
2.2Frontend (Node.js) Dependencies:
npm install
- ** Set up Environment Variables: ** Copy the ".env.example" file to ".env": cp .env.example .env
Then update the .env file with your database credentials and other configurations: DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=your_database DB_USERNAME=your_username DB_PASSWORD=your_password
-
Generate application key: php artisan key:generate
-
Run database migrations:
php artisan migrate
- Serve the Application: Run the Laravel server: php artisan serve
The application will be available at: http://localhost:8000
Running the Blockchain Network Set up the blockchain network: Make sure the blockchain node is running, and that the necessary blockchain smart contracts are deployed.
Interact with the blockchain:
Use the front end to cast votes. Each vote is recorded in the blockchain ledger. Monitor blockchain transactions: You can view blockchain transactions using tools like Ganache or MetaMask to ensure the integrity of the voting process.
Usage Casting a Vote: Users can log in and securely cast their votes. Blockchain Ledger: Votes are written to the blockchain, ensuring they cannot be altered or deleted. Election Results: Results are available after the voting period ends and can be publicly verified on the blockchain. Contributing If you would like to contribute to the project, please fork the repository and submit a pull request. Make sure to follow the coding guidelines and write relevant tests for your changes.
License:
If there are specific blockchain platforms (e.g., Ethereum, Hyperledger) or frameworks used for the smart contracts, we can add those details.
You can replace placeholder sections like your_database, your_username, etc., with the actual project details.