Skip to content
This repository has been archived by the owner on Apr 23, 2023. It is now read-only.
/ Seecured Public archive

Blockchain Based E-voting Decentralized Application

Notifications You must be signed in to change notification settings

AmrAhmedA/Seecured

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Blockchain Based E-voting Decentralized Application

This project is an attempt to create a robust, automated, secured E-voting System using Ethereum Blockchain technology.

Why Ethereum?

Ethereum is a platform for Smart Contracts that provides the following:

  • A public communication channel (i.e. its peer to peer network).
  • All communication is authenticated (i.e. transactions are signed by the voter's Ethereum address)
  • An immutable public ledger to store the voting information (i.e. eligibility white list, voting keys and votes).
  • Economic majority must reach consensus on a program's execution.

Types of accounts in Ethereum

What is this project about?

This is a full stack web application(frontend + backend) + crossplatform mobile application(android & ios).                        

The architecture is somewhat similar to the well known old 2 tier "client-server" model where "server" is replaced by "distributed p2p platform". From the point of view of an application programmer it is client-server where the server is a local or remote Ethereum node exposing RPC interface.

Election Stages

Election Process

Project Logo

Prerequisite

Operating System

  • Ubuntu - Linux Distribution for Development

Programming and Scripting Languages used

  • Solidity
  • Dart
  • JavaScript
  • Html & Css (Styling and Markup)

Code Editor

NPM dependencies used

Web Application Prerequisites

Mobile Application Prerequisites

  • Flutter - SDK for building high-performance crossplatform application
  • Android Studio - IDE for development

Running Local Blockchain

  • Ganache - Personal local Blockchain for Ethereum development

Running on live node

Web application

Installation Guidelines

To begin working on the project for development purposes, open your command (Windows) or terminal (Linux) and clone the project through the following command

git clone https://github.com/AmrAhmedA/Seecured

Install Dependencies

Dependencies Site
Node Package Manager (NPM) https://nodejs.org/en/download/
Ganache https://www.trufflesuite.com/ganache
MetaMask https://metamask.io/download.html
Flutter SDK https://flutter.dev/docs/get-started/install/windows
Vscode (Code Editor) https://code.visualstudio.com/
  1. After installing the node package manager, make sure you have added it to the environment variables if you are using windows OS
  2. Make sure to check your node package manager version by typing the following command npm -v
  3. Refer to the cloned project folder using your terminal and run npm install
  4. Run npm run dev to run the web app on lite server

Future work

  • Enhancing the application client-side by using SPA framework (React or angular)
  • Integration with paper-based voting
  • Enhancing registration phase
  • Adding Extra functionalities for impaired individuals to participate in the voting process

Supervised by

  • Associate Professor Abeer Hamdy
  • Associate Professor Mostafa Salama