Skip to content

scrutin-app/scrutin

Repository files navigation

Deploy status Translation status

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 run bbs # run the bulletin board server
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

on Hosted Weblate
Translation status

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 Ballot
StateEffect Trustee
. Identity
. Election