Welcome to the Blockchain-Based Voting System project! This repository is part of the Winter of Blockchain 2024 open-source initiative, aimed at creating a secure and transparent voting system leveraging blockchain technology.
The Blockchain-Based Voting System is designed to provide a decentralized, tamper-proof method for conducting elections. By utilizing blockchain technology, this system ensures that votes are recorded transparently and immutably, preventing fraud and enhancing trust in the voting process.
Decentralization: Votes are recorded on a distributed ledger, eliminating the need for a central authority.
Transparency: All votes are visible on the blockchain, ensuring transparency.
Security: Blockchain's cryptographic features ensure that votes cannot be altered once they are recorded.
Anonymity: Voter identity is kept confidential, ensuring privacy.
Scalability: The system is designed to handle large-scale elections efficiently.
Backend: Solidity (Smart Contracts)
Blockchain Platform: Ethereum
Frontend: React.js
Database: IPFS (InterPlanetary File System)
Development and Testing: Foundry
Version Control: Git
Before you begin, ensure you have the following installed:
Foundry
Git
Clone the repository:
git clone https://github.com/ishita-43/Blockchain-Based-Voting-System.git
cd Blockchain-Based-Voting-System
Compile the smart contracts:
More info in Readme of Foundry_Contracts:
cd Foundry_Contracts/
forge compile
Deploy contracts to local Blockchain (Anvil):
forge script script/Deploy.s.sol:DeployWithData --fork-url http://localhost:8545 --private-key <PRIVATE_KEY> --broadcast
Install dependencies in frontend folder:
cd frontend/
npm install
Run the app:
npm run dev
Open the application in your browser:
Navigate to http://localhost:3000 to view the app.
We welcome contributions from the community! To get started, please follow these steps:
Fork the repository on GitHub. Create a new branch for your feature or bugfix.
git checkout -b feature/your-feature-name
Commit your changes with clear and descriptive messages.
git commit -m "Add feature/your-feature-name"
Push your branch to GitHub.
git push origin feature/your-feature-name
Create a Pull Request against the main branch of this repository. Contribution Guidelines Ensure your code adheres to the project's coding standards. Write tests for your code and ensure all tests pass. Provide detailed descriptions in your pull requests. Respect the code of conduct. Issues If you find any bugs or have feature requests, please open an issue on GitHub. Be sure to provide as much context as possible.
For any questions or discussions, feel free to join the Winter of Blockchain 2024 Discord server or reach out to the project maintainer:
Ishita- GitHub (https://github.com/ishita-43) We look forward to your contributions and hope you enjoy working on this project! 🤗