/FYP-Pallier

Three-way secure voting service

Primary LanguageJavaScriptApache License 2.0Apache-2.0

sElect 0.0.8

sElect implements a Three-way Secure and Verifiable E-Voting system, in which voters remain anonymous, including to whom the voter elects, using these technologies.

  • Paillier homomorphic encrpytion.
  • Database decentralization and distribution.
  • Magic

Technology

sElect uses a number of open source projects to work properly:

  • Handlebars- View engine used for templating pages server-side.
  • node.js - evented I/O for the backend.
  • Express - fast node.js network app framework.
  • jQuery - duh.

Installation

sElect requires node.js v4+ to run.

Install the dependencies and devDependencies and start the server.

$ cd FYP-Paillier-Voting\Server
$ npm i
$ npm run dev

For production environments...

$ npm install --production
$ npm start

Development

sELect uses Nodemon + Concurrently for quick development. Make a change in your file and instantanously see your updates! In order to change ports for severs independently open webserver.js, authverifier.js, and authcount.js and modify these:

server.listen(3000, '0.0.0.0', () => {
    console.log("... listening on: " + server.address().address + ":" + server.address().port)
})

Todos

  • Write test cases and pen-test.
  • Add process environment variable to set ports simultaneously.
  • Optimize mobile views.
  • Add more Todos.
  • Restructure Database for voting validation.
  • Add encryption server-side.
  • Refactor and Complete authcount and authverifier.
  • Add check tally for admin page.
  • Setup Node-Mailer.
  • Add password for admin.
  • Database Optimizations.
  • Documentation.
  • Build on the shoulders of giants.
  • Update to-do list.

License

  • Apache License, Version 2.0

Credit

  • Mohammed Mardini - Maintainer/Developer.
  • Bassel Rawda - Developer/Contributer.
  • Dr. Nassar - Developer/Reporter.