Please find below the git repositories composing the CHVote platform source code and documentation.
Protocol core
Protocol core
Set of backend applications running the core of the voting protocol. It includes the Control Components and the Bulletin Board applications.
Protocol model
Defines the models for the CHVote protocol that are needed outside of the protocol itself.
Protocol client
Angular library exposing the CHVote algrotihtms to be used by the voting client.
Software as a Service applications
PACT
Web application used to validate privileged actions on the system.
Vote Receiver
Web application used by the voters to cast and confirm votes.
VRUM
Web application used to record and check the usage of the voting rights.
Backoffice
Web application used to setup elections and votations.
Standalone applications running on offline computers
U-Print
Standalone application dedicated to the printers designed to generate and visualize the voting material.
U-Count
Standalone application dedicated to the election officers designed to decrypt the ballots and to compute the tally of the votes.
CHVote Prover
Standalone application dedicated to the election board designed to run the universal verification checks.
Shared libraries
chvote-interfaces-legacy
Library providing an API to consume and generate the eCH XML files needed in the electronic voting scope. This is the legacy version of the library still used in the CHVote components (migration to the new version was planned in the next release while the project has been stopped).
chvote-model-converter
Library supplying the conversions of eCH models into internal models used for the chvote-protocol and conversely.
jackson-serializer
Library for serializing & deserializing objects between JSON and Java.
file-namer
Library providing utility classes for generating a file name following a common design pattern.
chvote-common-theme
This project supplies the UX elements common to all CHVote Angular frontend applications.
chvote-fx-common
Common library supplying shared JavaFx-related stuff for CHVote projects.
chvote-crypto
Shared library supplying crypto primitives to be used for the CHVote projects.
chvote-interfaces
New version of the library providing an API to consume and generate the eCH XML files needed in the electronic voting scope. Not yet used in CHVote components.
Documentations
Technical documentation
Common technical documentation for the CHVote projects.
Functional documentation
Functional requirements and release notes (documents in French only).
Web pages
The source code of the gitlab.io web pages.
Infrastructure
Docker images
Images used to build and run the applications.