- Demo: https://nvotes.github.io/juvenal
- Source code documentation: https://nvotes.github.io/juvenal/doc
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..
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
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.
There are multiple ways to contribute:
- Submit bugs and help us verify fixes as they are checked in.
- Create Pull Requests implementing new features.
- Create Pull Requests implementing proofs verification for a verifiable voting system not yet supported.
- Review source code changes.
- Use the discord channel to engage with the community.
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.