A quantum voting system utilizing quantum superposition and entanglement for secure and private voting
Q-Vote simulates a secure voting process using quantum computing, with future plans for blockchain integration and a user-friendly web interface. This project uses Qiskit to simulate quantum voting and lays the groundwork for secure, private voting systems of the future.
graph TD
A[Client Browser] -->|Request| B[Flask Web Server]
B -->|Render| C[index.html]
B -->|Vote| D[Voting Simulation]
D --> E[Classical Voting]
D --> F[Quantum Voting]
E --> G[Collect Votes]
G --> H[Identify Winner]
F --> I[Quantum Circuit]
I --> J[Amplitude Encoding]
J --> K[Apply Gates]
K --> L[Measurement]
L --> M[Interpret Results]
H --> N[Check Ties]
M --> N
N --> O[Final Winner]
O --> P[Generate Plot]
P --> Q[Base64 Image]
D --> R[JSON Response]
Q --> R
R -->|Response| A
subgraph Classical Logic
E
G
H
end
subgraph Quantum Logic
F
I
J
K
L
M
end
subgraph Result Processing
N
O
P
Q
end
- π§βπ¬ Quantum Voting using Qiskit
- π³οΈ Multiple Voters Simulation
- π Voting Results Visualization with histograms
- π οΈ Planned Improvements:
- Blockchain integration for vote immutability
- User-friendly web interface for voting More voting options and candidate choices.
To run Q-Vote, ensure you have the following installed:
- π Python 3.x
- π» Qiskit (install via pip)
- Clone this repository:
git clone https://github.com/vigneshs-dev/Q-Vote.git
- Navigate into the project directory:
cd Q-Vote
- Create a virtual environment:
- On Windows:
python -m venv venv
- On macOS/Linux:
python3 -m venv venv
- Activate the virtual environment:
- On Windows:
.\venv\Scripts\activate
- On macOS/Linux:
source venv/bin/activate
- Install the required dependencies:
pip install -r src/requirements.txt
- Run the quantum voting simulation:
python .\src\app.py
The output will start Flask Server which will run on http://127.0.0.1:5000
git clone https://github.com/vigneshs-dev/Q-Vote.git
- Navigate into the project directory:
cd Q-Vote
- Build the docker image:
docker build -t qvote .
- Run the in a docker container:
docker run -p 5000:5000 qvote
We welcome contributions! Here's how you can contribute:
- π Implement blockchain integration for immutability.
- π Develop a web interface for a better voting experience.
- π Optimize quantum circuits for efficiency.
- βοΈ Write unit tests for code reliability.
This project is licensed under the MIT licensed. See the LICENSE file for details.
- π» Qiskit β The quantum computing SDK used in this project.
- π Contributors and community members β Thank you for your valuable feedback and suggestions.