/juvenal

Universal web-based election verifier

Primary LanguageTypeScriptMIT LicenseMIT

Juvenal: The universal election verifier

License Dependencies badge Build Coverage status Community chat

Juvenal: The universal election verifier screenshot gif

juvenal is an universal election verifier for the web browser. It is voting system agnostic, and allows anyone to verify an election record of multiple voting systems. The proofs verification is implemented in juvenal-lib.

It enables the verification of election ballots, tallies, and proofs generated by multiple voting solutions. It has been developed independently by the nVotes Online Voting team and is written in TypeScript. It also includes a command line verifier. It currently only supports verifying ElectionGuard. Work for supporting Helios Voting is in the works.

WARNING: This software is in development and is incomplete and most probably contains bugs. Please do not use in production..

Building

This is a TypeScript project and uses the standard TypeScript toolchain. Install dependencies with:

yarn

Then you can build the project into javascript to the build/ directory with:

yarn build

Development

In the project directory, you can run:

yarn start

Runs the app in the development mode. Open localhost:3000 to view it in the browser.

The page will reload if you make edits. You will also see any lint errors in the console.

Contribute

There are multiple ways to contribute:

Security dependencies update

You can run yarn audit to find security dependencies that need to be updated. You can also run yarn run yarn-audit-fix to try to update the dependencies to a secure version. Afterwards, you should try to do a yarn build and test with yarn start to ensure everything is still working.