sealed-vote-web
Overview
Sealed.vote is a browser-based application relying on homomorphic encryption allowing for ranked-choice voting with ranking choices from 1 to 10 in a way such that nobody, including the server, can know what the individual choices were! Only the result is publicly known. If it sounds like magic, you might enjoy reading up on what homomorphic encryption is and how it works. Detailed explanation on how voting works is available here.
In addition to this repository, there is a also an open-source server component. Both the frontend and server component rely on threshold-elgamal, which is a modern, TypeScript cryptographic library written specifically for this project.
Technologies used (frontend)
- TypeScript
- React
- Redux Toolkit & React-Redux
- Material-UI
- Webpack & Babel
- ESLint & Prettier
Running the frontend project
Requirements
To run sealed-vote-web, you will need the following prerequisites installed on your system:
- Node.js
- npm
Launching the application
To get the project up and running on your local machine, follow these steps:
- Clone the repository:
git clone https://github.com/Tenemo/sealed-vote-web.git
- Navigate to the project directory:
cd sealed-vote-web
- Install dependencies:
npm install
- Start the development server:
npm start
Building for production
npm run build