Skip to content

A quantum voting system utilizing quantum superposition and entanglement for secure and private voting

License

Notifications You must be signed in to change notification settings

vigneshs-dev/Q-Vote

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Q-Vote πŸ—³οΈ

A quantum voting system utilizing quantum superposition and entanglement for secure and private voting

Quantum Voting meets Blockchain!

πŸš€ Project Overview

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.

πŸ—οΈ Architecture

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
Loading

✨ Features

  • πŸ§‘β€πŸ”¬ 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.

βš™οΈ Tech Stack

πŸ“‹ Requirements

To run Q-Vote, ensure you have the following installed:

  • 🐍 Python 3.x
  • πŸ’» Qiskit (install via pip)

πŸ“¦ Installation

Locally

  1. Clone this repository:
git clone https://github.com/vigneshs-dev/Q-Vote.git
  1. Navigate into the project directory:
cd Q-Vote
  1. Create a virtual environment:
  • On Windows:
python -m venv venv
  • On macOS/Linux:
python3 -m venv venv
  1. Activate the virtual environment:
  • On Windows:
.\venv\Scripts\activate
  • On macOS/Linux:
source venv/bin/activate
  1. Install the required dependencies:
pip install -r src/requirements.txt
  1. 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

Docker

git clone https://github.com/vigneshs-dev/Q-Vote.git
  1. Navigate into the project directory:
cd Q-Vote
  1. Build the docker image:
docker build -t qvote .
  1. Run the in a docker container:
docker run -p 5000:5000 qvote

πŸ›  Contributing

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.

πŸ“„ License

This project is licensed under the MIT licensed. See the LICENSE file for details.

❀️ Acknowledgments

  • πŸ’» Qiskit – The quantum computing SDK used in this project.
  • πŸ™Œ Contributors and community members – Thank you for your valuable feedback and suggestions.

If you find this project helpful, give it a star ⭐!

About

A quantum voting system utilizing quantum superposition and entanglement for secure and private voting

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published