Giter Site home page Giter Site logo

rmveera / eligere Goto Github PK

View Code? Open in Web Editor NEW

This project forked from unipisa/eligere

0.0 1.0 0.0 89.38 MB

Eligere is a web based software designed to support configuration and run of remote digital elections. Based on ElectionGuard SDK it is designed to be clean transparent and easy to use.

License: MIT License

C# 72.31% HTML 26.97% CSS 0.52% JavaScript 0.20%

eligere's Introduction

Eligere

Eligere is a software intended as a contribution to digital democracy community in the belief that voting software should be open source. The software in this repo has been already used for casting more than ten thousand votes by 4.5k voters in University elections.

The software has been initially inspired as a web interface to use ElectionGuard SDK for implementing secure ballot boxes. The project has deviated into a system to support the full election process including the formation of electoral lists.

The codebase still needs heavy polishing and not all the features are yet exposed through the web interface.

We will keep updating this repository to make this project a successful contribution to an open democratic process.

Status of the project

The system is based on two independent services implemented using .NET core 5.0 that interact through encrypted messages: one is called Election System (EligereES) and the other Voting System (EligereVS). The former is responsible to support the creation and management of multiple elections (as of today we supported as much as 95 simultaneous elections), identify users, and generate voting tickets (digitally encrypted) used to access the voting system and proceed to vote as an anonymous user. The separate administration of the two system allows to enforce anonymous voting.

Currently we used Microsoft Identity to identify users, though the system is easily extensible with other authentication schemas. Identification of remote voters is performed through calls that are provided through web links, and the system attempts to balance the recognition process across a large number of operators (as of today we identified 1600 voters in a single day).

There are several changes to improve robustness and easy of install of the system, the final goal is to provide a containerized version that can be executed starting from public repositories so that it is possible to reduce internal attacks and ensure, as much as possible, the tracking between source code and binaries.

The ballot box implemented by the Voting System will be containerized first so that it will be possible to spawn multiple secure boxes simultaneously. Secure ballots will be also used to support (possibly remote) votes from assemblies for deliberation.

What Eligere is and what it is not

Eligere has been designed to be as clean as possible to help code inspection. We favored declarative programming patterns to ensure that semantics of operations does not depend only by the system itself. Security is not only based on encryption techniques, procedures and processes are also crucial to ensure a secure voting process. Every design decision has been conceived to favor anonimity and compartimentalization of rights and privileges.

The focus of Eligere is to target the voting process (to form electoral lists and polling commissions) and safely (and anonymously) collect votes and providing counts. The specific rules of an election are out of the scope of the system in order to ensure simplicity of the system, key to the crucial tenet of being readable.

The system is focusing on the processes and relies on external open source projects for core security primitives.

Contribute to the project

Please feel free to contact us on GitHub to contribute to the project. We will promote an open development process through pull requests. Over time we will promote the formation of a board responsible for PR approval to ensure that the coding tenets needed to ensure the proper quality of the project.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.