You are on page 1of 23

Decentralized Voting System

Application

Presented by: Professor:


Michel Bechara Dr. Joanna Moubarak
Imad Boustany
Charbel Howayek

M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.
Plan
1 Objectives

2 Introduction

3 Technical Environment

4 Website Development

5 Android Development

6 Impact & Conclusion

M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.
Objectives
Research Blockchain Why are we decentralizing the
Technologies voting system?
• Transparency
• Security
Develop a Decentralized • Accessibility
Voting System Web Page
• Privacy

Develop a Decentralized
Voting System Android
Application

M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.
Introduction
Fault
Tolerance

Distribution Security

Autonomy
Ethereum

Blockchain
M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.
Introduction
Mining
Level

Block Header

Merkle Tree

M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.
Consensus

Proof of Work - Mining Proof of Stake - Minting

M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.
Why Ethereum?

Ethereum Hyperledger Fabric

Encryption Encryption
Public Private
Permissionless Permissioned

M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.
Technical Environment

M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.
Website Architecture

M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.
Website Development
Infura
Infura is a collection of full nodes on the Ethereum network that enable
developers to connect to these nodes through its interface

M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.
Website Development
Rinkeby
• An Ethereum Test Net
• Uses Testing Ether that can be acquired
for free
• Used by developers to test their applications
before deploying them

M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.
Website Development
Smart Contracts DataBase
Model a Contract: ID, Name, Address

Keep track of the number of contracts

Add new elections (contracts)

Remove old elections

Issue an event

M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.
Website Development

Model a Candidate: ID, Name, Gender, Votes

Keep track of voters

Manage votes:

Voter Eligible?
Valid Vote?
-> Store Voter
Smart Contract -> Increment Vote Number
-> Issue an Event

M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.
Website Development
Web3.js
• Develop websites that interact with the Ethereum Blockchain.
• Make requests to an Ethereum Node with JSON-RPC to read/write data

Web3 Interface

JSON-RPC

M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.
Website Demonstration
Android Application Development
Specifications:
• Users can Login to their wallet using:
- Private Key
- 12 words Mnemonic Phrase
• New Users can create a wallet
• Admin can create multiple elections and delete them
• Users can vote only once in the same election
• Admin can create/delete/modify candidates

M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.
Android Application Development
Welcome Screen:
• Login to wallet with Private Key/Mnemonic
• New Users can create a wallet
- 0.005 Ether transferred to their new address
• Save Login information
• Login users directly every time they open the app

M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.
Android Application Development
Central Wallet
Holds over 30 Ethers

0.005
Ether

Create Private Key


12 Words MNEMONIC

User Wallet

M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.
Website Development
Smart Contracts DataBase
Model a Contract: ID, Name, Address

Keep track of the number of contracts

Add new elections (contracts)

Remove old elections

Issue an event

M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.
Android Application Development
Model a Candidate

Add/Remove a Candidate

Modify a Candidate

Keep track of voters

Manage votes:

Voter Eligible?
Valid Vote?
-> Store Voter

Smart Contract -> Increment Vote Number


-> Issue an Event

M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.
Android Application Development
Generate .bin Generate
.sol .j
.abi
Web3.j Web3.j

Web3 Interface

JSON-RPC

M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.
Android Application Demonstration
Impact & Conclusion
Security

Decentralization

Transparency

New Job Opportunities

Time Saving
M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.

You might also like