A mobile app for secure voting using the Helios protocol and INRIA’s Belenios voting library.
Install
npm install
npx pod-install # for iOS
npm run re:start # or use the VSCode plugin
npm start
Features
Belenios integration
- Generate trustee keys on device
- Encrypt ballot on device
- Tally election on device
- Verify result on device
Architecture
- Every events must be signed by an authorized identity
- Events
- Election creation. From election organizer
- Ballot emission (adding a new voter identity). From election organizer
- Ballot filling. From voter
- Running a main public pod
UI/UX
- Resuts as a pie chart
- Inspect the progress of an elections (how many empty/filled ballots)
Translations
Nice to have
- Extract rescript-belenios
- Extract rescript-sjcl
Documentation
TODO
There is no good documentation yet. You can find some outdated informations here
sequenceDiagram
participant Guardians
participant Election
participant Voters
Guardians->>Election: Create
Voters->>Election: Vote
Guardians->>Election: Tally
Voters->>Election: Verify
Some of the code is annotated in a literate programming style:
main | models |
---|---|
Core | Event |
State | |
. | |
. |