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
- Enhancing the application client-side by using SPA framework (React or angular)
- Adding Extra functionalities for impaired individuals to participate in the voting process
- Associate Professor Abeer Hamdy
- Associate Professor Mostafa Salama