This project is an attempt to create a robust, automated, secured E-voting System using Ethereum Blockchain technology.
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.
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.
- Behance - Seecured Logo
- Ubuntu - Linux Distribution for Development
- Solidity
- Dart
- JavaScript
- Html & Css (Styling and Markup)
- liteserver - Lightweight development for web sync
- gh-pages - Github hosting service
- Truffle - Development framework
- NodeJs - Run time environment
- MetaMask - Self-hosted wallet
- Bootstrap - Potent front-end framework for UI
- Solidity - High-level language for implementing smart contract
- Remix Ethereum - Smart contract IDE and debugger
- Flutter - SDK for building high-performance crossplatform application
- Android Studio - IDE for development
- Ganache - Personal local Blockchain for Ethereum development
- Infura - Running Ethereum node with an API key
- Go Ethereum - Geth - Running Ethereum full node
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
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/ |
- After installing the node package manager, make sure you have added it to the environment variables if you are using windows OS
- Make sure to check your node package manager version by typing the following command
npm -v
- Refer to the cloned project folder using your terminal and run
npm install
- Run
npm run dev
to run the web app on lite server
- 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
- Associate Professor Abeer Hamdy
- Associate Professor Mostafa Salama