Final Project Report - A4 - Online Voting System Using Blockchain Technology
Final Project Report - A4 - Online Voting System Using Blockchain Technology
REPORT SUBMITTED
BY:
Bachelor of Technology
In
Information Technology
Bachelor of Technology
In
Information Technology
CERTIFICATE
This is to certify that the Project Synopsis entitled, Voting System submitted by Sohom Das, Manshi
Shubham, Asmita Chakraborty, and Soumyadip Bhattacharya from B. P. Poddar Institute of
Management and Technology, is a record of future Project work will be carried out by them under
my
supervision and guidance and will be worthy of consideration for the award of the degree of Bachelor
of Technology in Information Technology of the Institute.
(Signature of HOD)
(Signature of the Supervisor)
Dept. of Information Technology
Dept. of Information Technology
Date:
5. Activity chart 8
6. Introduction 9
7. Literature review 10
8. Theory 17
9. Software requirements 23
10. Proposed system 28
11. Results & Discussions 45
13. References 48
DEPARTMENTAL MISSION:
DEPARTMENTAL VISION:
Developing competent professionals in Information Technology, who can adapt
to constantly evolving technologies for addressing industrial and social needs
through continuous learning.
6
Online Voting System Using
Blockchain Technology
7
Abstract:
Building a secure electronic voting system that offers the fairness and privacy of
current voting schemes, while providing the transparency and flexibility offered
by electronic systems has been a challenge for a long time. In this Report, we
evaluate an application of blockchain as a service to implement distributed
electronic voting systems. The Report proposes a novel electronic voting system
based on blockchain that addresses some of the limitations in existing systems
and evaluates some of the popular blockchain frameworks for the purpose of
constructing a blockchain-based e-voting system. In particular, we evaluate the
potential of distributed ledger technologies through the description of a case
study; namely, the process of an election, and the implementation of a
blockchain-based application, which improves the security and decreases the
cost of hosting a fair election. The blockchain is said to be an emerging,
decentralized, and distributed technology that promises to enhance different
aspects of many industries. Expanding electronic voting into blockchain
technology could be the solution to eliminate the present concerns in the
electronic voting system.
8
Activity chart:
9
Introduction:
The focus of our report is to develop an e-voting system using Blockchain as the
core technology and address the key issues such as voter anonymity, vote
confidentiality and end-to-end verification. These challenges form the
foundation of an efficient voting system preserving the integrity of the voting
process. In this report, we present our efforts to explore the use of the
blockchain technology to seek solutions to these challenges.
10
Literature review:
PAPER 1: Implementation of Secure Voting System
using Blockchain.
a. AUTHOR: Dipali Pawar, Pooja Sarode, Shilpa Santpure, Poonam Thore
Department of Computer Engineering JSPM’s Imperial College of
Engineering and Research Pune, India Prof. Pravin Nimbalkar
Department of Computer Engineering JSPM’s Imperial College of
Engineering and Research Pune.
b. PUBLISHED BY: India International Journal of Engineering Research &
Technology (IJERT) http://www.ijert.org ISSN: 2278-0181
IJERTV9IS060974 (This work is licensed under a Creative Commons
Attribution 4.0 International License.) www.ijert.org Vol. 9 Issue 06,
June-2020.
c. SUMMARY: To carry out a national election a certain e voting system
should ensure many of the security requirements. They can be listed as the
voting system should not be traceable. The voting system should ensure
whether the voter’s vote was counted & proof of vote should be provided.
Voting systems should not enable a single entity to control systems. Only
eligible individuals are allowed to participate in voting. The Election
system should not be expensive. Depending on the role, the election
system should provide limited access to participants. The use of
blockchain Technology in the E-Voting system can meet all the above
needs as a blockchain is tamper proof and non-alterable.
Key features of Blockchain:
• HIGH AVAILABILITY
• VERIFIABILITY
• TRANSPARENCY
• IMMUTABILITY
• DISTRIBUTED LEDGERS
• DECENTRALIZED
• ENHANCED SECURITY
11
procedure. Admin will able to see if someone tampered with the vote and
he will take necessary action against it.
• THE USER OR VOTER MODULE : In this module User or voter will
be able to see the names of all electing Candidates and vote the candidate.
c. SUMMARY :
Blockchain technology offers a decentralized node for online voting or
electronic voting. Recently distributed ledger technologies such as
blockchain were used to produce electronic voting systems mainly
because of their end-to-end verification advantages. Blockchain is an
appealing alternative to conventional electronic voting systems with
features such as decentralization, non-repudiation, and security
protection. It is used to hold both boardrooms and public voting. A
blockchain, initially a chain of blocks, is a growing list of blocks
combined with cryptographic connections. Each block contains a hash,
timestamp, and transaction data from the previous block. The blockchain
was created to be data-resistant. Voting is a new phase of blockchain
technology; in this area, the researchers are trying to leverage benefits
such as transparency, secrecy, and non-repudiation that are essential for
voting applications. With the usage of blockchain for electronic voting
applications, efforts such as utilizing blockchain technology to secure
and rectify elections have recently received much attention.
Core Components of Blockchain Architecture :
These are the main architectural components of Blockchain:
• NODE: Users or computers in blockchain layout (every device has a
different copy of a
complete ledger from the blockchain);
• TRANSACTION: It is the blockchain system’s smallest building block
(records and details),
12
which blockchain uses;
• BLOCK: A block is a collection of data structures used to process
transactions over the
network distributed to all nodes.
• CHAIN: A series of blocks in a particular order;
• MINERS: Correspondent nodes to validate the transaction and add that
block into the
blockchain system;
• CONSENSUS: A collection of commands and organizations to carry
out blockchain
processes.
13
• AVAILABILITY AND MOBILITY : During the voting period, voting
systems should always be available. Voting systems should not limit the
place of the vote.
• ACCESSIBILITY AND REASSURANCE : To ensure that everyone
who wants to vote has opportunity to avail the correct polling station and
it must be open and accessible for the voter.
• RECOVERABILITY AND IDENTIFICATION : Voting systems can
track and restore voting information to prevent errors , delays and
attacks.
• VOTERS VERIFIABILITY : Verifiability means that processes exist
for election auditing to ensure that it is done correctly. Three separate
segments are possible for this purpose: (a) uniform verification or public
verification that implies that anybody such as voters, governments, and
external auditors can test the election after the declaration of the tally; (b)
transparent verifiability against a poll, which is a weaker prerequisite for
each voter to verify whether their vote has been taken into account
properly .
b. SUMMARY :
Extensive research has been done on electronic voting systems that
enable voters to vote at their convenience using a mobile phone,
computer or any other electronic device. Still, none of these technologies
have been incorporated on a larger scale due to inherent security
threats/concerns that these systems might pose to the integrity of the
voting process. In this paper, they discuss the electronic voting system
using blockchain , a secure and robust system that ensures anonymity of
the voter, transparency, and robust functioning. The blockchain is a
digital platform for digital assets. It consists of a continuously growing
list of records known as blocks that are linked and secured using
cryptography. Major usage of Blockchain has been in all cryptocurrency
transactions, mainly Bitcoin . However, they are increasingly being used
in a number of other applications because of their inherent resistance to
14
modification to the transaction/block/whole distributed ledger
– Blockchain.
The entire system is divided into two sub-system :
● REGISTRATION SYSTEM : A voting registration System is
developed using Html/Css front-end and SQL back-end which
contains the user's personal details already stored for eg:One can
consider this as an Aadhar database. A biometric device would be
used for validation purpose.If the user is a valid user then he/her is
handed a hash code /address which is used as a credential for login
into the voting machine.
15
PAPER 4: Blockchain Enabled Online-Voting System
a. AUTHOR : Akhil Shah, Nishita Sodia, Shruti Shah, Soumi Banerjee,
Madhuri Chavan Ramrao Adik Institute of Technology Mumbai
University Navi Mumbai, India.
c. SUMMARY :
They are proposing a system which has greater accessibility as it is an
android application and possesses greater security as authentication,
authorisation and verification. In this system the voter/user has to first
register themselves using a registration form available within the android
application and once the registration form is being submitted, an entry is
being made in the centralized database. After the registration the user can
log into the application and be a part of the polling process. The user with
its valid credentials can log into the system and verify them by entering
the one-time-password which is valid for a limited period of time. Once
the user is logged into their respective account the dashboard contains all
the information which is retrieved from the centralized database. After the
user logs into the account the user is being authenticated using fingerprint.
Each account is provided with a single token which he will use to cast a
vote, casting of vote will take place by transferring the token from the
respective user account to the candidate’s wallet. A web application is
being developed to measure the majority of votes which has the details
about the total number of voters, the number of votes cast and the
percentage of votes cast. Only one vote can be casted from one account
and once a vote is being casted from an account the account is disabled
from the current voting process.
PROPOSED METHODOLOGY :
● BLOCKCHAIN
● ETHERIUM
● HASHING
● REGISTRATION MODULE
● LOGIN MODULE
The login screen is being displayed wherein if a person is a new user the
person can register itself with the application and if the user is an existing
one they can login with valid user-id and password and thus login for the
16
further process. The user will sign in to the credentials in the
authentication module and after which credentials will be checked and the
user will only be able to access the dashboard after the verification has
been completed. The first process in the dashboard is the OTP
Verification. Once the user is verified then the user is authenticated with
their fingerprint only after which the voter wallet is generated and a token
is provided to the voter which will be used to cast their vote. The votes are
casted by transferring the token from the voter’s wallet to the respective
candidate’s wallet.
They have deployed an online-based blockchain voting framework in this
project where smart contracts are used to allow secure and cost-effective
elections while preserving the secrecy of the voters. Compared with
previous research, they have shown that the blockchain technology
provides a new opportunity for democratic countries to move from the
pen and paper election scheme and paperless direct-recording electronic
voting machine (DRE) to a more cost-effective and time-efficient election
scheme, thus mounting the security measures of the current scheme and
offering new accessibility.
17
Theory:
Blockchain is a technology that is rapidly gaining momentum in the era of
industry 4.0. With high security and transparency provisions, it is being widely
used in supply chain management systems, healthcare, payments, business, IoT,
voting systems, etc.
Why do we need it?
Current voting systems like ballot box voting or electronic voting suffer from
various security threats such as DDoS attacks, polling booth capturing, vote
alteration and manipulation, malware attacks, etc, and also require huge amounts
of paperwork, human resources, and time. This creates a sense of distrust among
existing systems.
Some of the disadvantages are:
● Long Queues during elections.
● Security Breaches like data leaks, vote tampering.
● Lot of paperwork involved, hence less eco-friendly and time-
consuming.
● Difficult for differently-abled voters to reach polling booth.
● Cost of expenditure on elections is high.
Solution:
Using blockchain, the voting process can be made more secure, transparent,
immutable, and reliable. How? Let’s take an example.
Suppose you are an eligible voter who goes to a polling booth and casts a vote
using EVM (Electronic Voting Machine). But since it’s a circuitry after all and
if someone tampers with a microchip, you may never know that your vote
reaches the person for whom you voted or was diverted into another candidate’s
account.
Since there’s no tracing back of your vote. But, if you use blockchain- it stores
everything as a transaction that will be explained soon below; and hence gives
you a receipt of your vote (in the form of a transaction ID) and you can use it to
ensure that your vote has been counted securely.
18
Now suppose a digital voting system (website/app) has been launched to digitize
the process and all confidential data is stored on a single admin server/machine,
if someone tries to hack it or snoop over it, he/she can change candidate’s vote
count- from 2 to 22! You may never know that a hacker installs malware or
performs clickjacking attacks to steal or negate your vote or simply attacks the
central server.
To avoid this, if a system is integrated with blockchain- a special property called
immutability protects the system. Consider SQL, PHP, or any other traditional
database systems. You can insert, update, or delete votes. But in a blockchain
you can just insert data but cannot update or delete. Hence when you insert
something, it stays there forever and no one can manipulate it- Thus name
immutable ledger.
But Building a blockchain system is not enough. It should be decentralized i.e if
one server goes down or something happens on a particular node, other nodes
can function normally and do not have to wait for the victim node’s recovery.
So a gist of advantages are listed below:
● You can vote anytime/anywhere (During Pandemics like COVID-19
where it’s impossible to hold elections physically
● Secure
● Immutable
● Faster
● Transparent
19
Diagram 2: blockchain voting process
20
It enables you to conduct trustworthy transactions without the
involvement of a third party; these transactions are traceable and
irreversible.
Solidity
Solidity is an object-oriented programming language created specifically by the
Ethereum Network team for constructing and designing smart contracts on
Blockchain platforms.
It's used to create smart contracts that implement business logic and
generate a chain of transaction records in the blockchain system.
It has a lot of similarities with C and C++ and is pretty simple to learn
and understand. For example, a “main” in C is equivalent to a
“contract” in Solidity.
21
Diagram 3: compiling process of smart contract
Byte Code
Bytecode is the information that our Solidity code gets “translated” into. It
contains instructions to the computer in binary. Bytecode is generally compact
numeric codes, constants, and other pieces of information. Each instruction step
is an operation which is referred to as “opcodes,” which are typically one-byte
(eight-bits) long. This is why they’re called “bytecode”—one-byte opcodes.
Every line of code that is written gets broken down into opcodes so that the
computer knows exactly what to do when running our code.
In the Ethereum world, the bytecode is actually what gets deployed to the
Ethereum blockchain. When we deploy to an Ethereum network and confirm the
transaction using a browser-based wallet like Metamask, we can actually see the
bytecode that gets deployed.
ABI
ABIs are application binary interfaces. They define the methods and variables
that are available in a smart contract and which we can use to interact with that
smart contract. Since smart contracts are converted into bytecode before they get
deployed to the blockchain, we need a way to know what operations and
22
interactions we can initiate with them, and we need a standardized way to
express those interfaces so that any programming language can be used to
interact with smart contracts. While JavaScript is the most commonly used
language for interacting with smart contracts (mainly because JavaScript is a
frontend browser language and we often use frontend web pages to interact with
smart contracts), you can interact with a smart contract using any coding
language as long as you have the ABI for that smart contract and a library to
help you communicate with any one node to give you an entry point into the
Ethereum network.
Web3.js
Web3 is a collection of JS libraries that lets you interact with an Ethereum node
remotely or locally. Simply, it provides us with an API to use so we can easily
work with the blockchain. Web3 works as a wrapper for JSON RPC to connect
to a remote or local Ethereum node with either a HTTP or IPC connection.
Web3 is basically a connection between the Ethereum blockchain and your
smart contract.Behind the scenes, Web3 uses JSON RPC. RPC is used in many
different types of programming languages.
React.js
23
Software requirements:
Following software are needed for the development of E-Voting system using
Blockchain:-
Remix IDE:
Remix IDE (Integrated Development Environment) is a web application that can
be used to write, debug, and deploy Ethereum Smart Contracts.
Remix IDE is generally used to compile and run Solidity smart contracts.
Below are the steps for the compilation, execution, and debugging of the smart
contract.
Step 1: Open Remix IDE on any of your browsers, select on the New File and
click on Solidity to choose the environment.
Step 2: Write the Smart contract in the code section, and click the Compile
button under the Compiler window to compile the contract.
24
Step 3: To execute the code, click on the Deploy button under Deploy and Run
Transactions window.
Step 4: After deploying the code click on the method calls under the drop-
down of deployed contracts to run the program, and for output, check to click
on the drop-down on the console.
Step 5: For debugging click on the Debug button corresponding to the method
call in the console. Here you can check each function call and variable
assignments.
25
Vs Code IDE:
Visual Studio Code (famously known as VS Code) is a free open source text
editor by Microsoft. VS Code is available for Windows, Linux, and macOS.
Although the editor is relatively lightweight, it includes some powerful features
that have made VS Code one of the most popular development environment
tools in recent times.
The VS Code user interface allows for a lot of interaction compared to other text
editors. To simplify user experience, VS Code is divided into five main regions:
26
MetaMask Wallet:
MetaMask is a cryptocurrency wallet that enables users to access the Web 3
ecosystem of decentralized applications (dapps). MetaMask is a browser plugin
that serves as an Ethereum wallet, and is installed like any other browser plugin.
Once it's installed, it allows users to store Ether and other ERC-20 tokens,
enabling them to transact with any Ethereum address.
Though it might seem complicated to beginners, MetaMask is one of the simpler
Ethereum wallets and dapp browsers to use, and can be set up in a couple of
minutes in most cases.
To use MetaMask, you will need either Chrome, a Chromium-based browser
such as Brave, or Firefox.
First, you’ll need to download and install the official Metamask extension (also
known as a plugin or add-on) for your chosen browser. For most people, this is
theGoogle Chrome extension or the Firefox addon.
Once installed, you should see the splash screen. Click the ‘Get Started’ button
to begin creating your Ethereum wallet using MetaMask.
27
Ganache:
Ganache is a personal blockchain for rapid Ethereum and Corda distributed
application development. You can use Ganache across the entire development
cycle; enabling you to develop, deploy, and test your dApps in a safe and
deterministic environment.
Ganache comes in two flavors: a UI and CLI. Ganache UI is a desktop
application supporting both Ethereum and Corda technology.
28
Proposed system:
Level 0 DFD:
Level 1 DFD:
29
ER Diagram:
Data Dictionary:
Voters:
Attribute name Description Datatype Constraint
30
Name Name of contestant string Not null
31
Smart Contract:
The solidity smart contract for the authentication of user and admin is:-
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
contract loginsignup{
address owner;
uint signupnumber;
uint loginnumber;
string employeeloginnumber;
constructor() { //constructor setting the owner address at the time
of deployment
owner = msg.sender;
}
modifier onlyAdmin() { //a modifier that will identify admin
only require(msg.sender == owner);
_;
}
struct
user{ uint
voterid; string
password;
string mobileno;
bool hassignedup;
}
mapping(uint => user) users;
function signup(uint _voterid,string memory _mobileno, string memory
_password1, string memory _password2) public{
require(users[_voterid].hassignedup==false);
if(keccak256(abi.encodePacked(_password1))
== keccak256(abi.encodePacked(_password2))){
users[_voterid].password=_password1;
users[_voterid].mobileno=_mobileno;
users[_voterid].hassignedup=true;
signupnumber=_voterid;
}
else{ signupnumb
er=0;
}
}
function getsignupnumber() public view returns(uint)
{ return signupnumber;
}
32
require(users[_voterid].hassignedup==true);
if(keccak256(abi.encodePacked(users[_voterid].password))==keccak256(abi.encode
Packed(_password))){
loginnumber=_voterid;
}
else{ loginnumbe
r= 0;
}
}
function getmobilenumber(uint _voterid) public view returns(string memory){
return users[_voterid].mobileno;
}
function getloginnumber() public view returns(uint)
{ return loginnumber;
}
struct employee{
string eid;
string password;
}
33
function getsignupnumber() public view returns(uint): will return the voter
id if signup is successful else will return 0
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
contract election
{ address owner;
uint pollcount=0;
uint public candidatecount=0; //number of verified candidates
uint public nominationcount=0; //number of nominated
candidates bool public publishresult=false;
string public topic=""; //topic of the poll
uint totalvote=0; //total no of votes
34
uint256 votes;
bool hasverified;
bool
hasnominated;
}
mapping(uint256 => candidate) public candidates; //mapping each candidate
with id
35
function start_poll()public onlyAdmin{ //function to start the voting
phase
polls[0].start =true;
polls[0].end=false;
}
36
function has_votted(uint _voterid) public view returns(uint){ //function to
check id voter has already voted or not
if(voters[_voterid].hasvoted==true){
return 1;
}
else{ retu
rn 0;
}
}
37
}
publishresult=false;
topic="";
for(uint i=0;i<totalvote;i++){
voters[idvoterid[i]].hasvoted=false;
voters[idvoterid[i]].hasnominated=false;
}
totalvote=0;
candidatecount=0;
nominationcount=0;
}
}
38
function acceptcandidate(uint id) public onlyAdmin: function to accept
candidates upon verification only by admin
function reset() public onlyAdmin: function to reset all the variables so that
new vote can be started
Dependecies:
"dependencies": {
"@auth0/auth0-react": "^1.12.0",
"@testing-library/jest-dom": "^5.16.5",
"@testing-library/react": "^13.4.0",
"@testing-library/user-event":
"^13.5.0", "apexcharts": "^3.36.3",
"firebase": "^9.22.0",
39
"react": "^18.2.0",
"react-apexcharts": "^1.4.0",
"react-avatar": "^5.0.3",
"react-dom": "^18.2.0",
"react-minimal-pie-chart": "^8.4.0",
"react-multilevel-dropdown":
"^4.0.0", "react-phone-number-input":
"^3.2.23", "react-router-dom":
"^6.4.2",
"react-scripts": "5.0.1",
"web-vitals": "^2.1.4",
"web3": "^1.8.0"
},
Connecting Metamask with React Application:
We will get the ABI and Address from Remix IDE after compiling and
deploying the Smart Contract in out local Ganache Network of Block Chain.
40
User Interface:
1. Main home page:
2. User Login/Signup:
41
3. User Login page:
42
Fig 14: OTP verification while login
43
8. Admin Home page:
44
11.User Voting page:
12.Result page:
45
Conclusions:
First we have built the Smart Contract. Our Smart Contract is written in Solidity
language and it is deployed in the local blockchain network called Ganache
using Remix IDE. Then we have Developed the Frontend using React.js in Vs
Code IDE.
We have Used Web3.js for connection between the smart Contract and Frontend
using the ABI and Address of the deployed Contract. Now we are ready with a
Fully functional Electronic Voting System using Block-chain. This system have
been designed for supporting multiple candidates in a poll. Everything of the
poll can be controlled by the Admin. Every User need to provide their mobile
number and that will be verified by OTP at the time of sign up and while login
users have to provide the OTP sent to their registered mobile numbers. The
implementation result shows that it is a practical and secure e-voting system,
which solves the problem on forgery of votes during e-voting.
Eligibility - Allowing only registered voters to vote, with each such voter voting
only once:All eligible users are required to register using government-issued
voterid to assert their eligibility. In addition to this, our system implements
strong authentication mechanism using finger printing technology to assert that
only authorized voters can access the system.
Receipt Freeness - Voters should be unable to prove to a third party that they
voted in a particular way: The proposed system enables a voter to vote as per
their choice and creates a cryptographic hash for each such event (transaction).
This is important to achieve verifiability i.e. to verify if a certain vote was
included in the count. However, possession of this hash does not allow to extract
information about the way voter has voted.
Convenience - Voters must be able to vote easily, and everyone who is eligible
must be able to vote: The system has been implemented using a user-friendly
web based interface with the voting process requiring minimal input from the
46
user. Furthermore, the overall process is integrated which enables the user to
interact with it in a seamless manner.
The analysis presented above highlights the performance of the proposed system
with respect to the specific requirements of e-voting. It also highlights the
significance of defining characteristics of blockchain and their profound role in
achieving the cornerstones of an efficient e-voting system. Therefore, we believe
the work presented here makes significant contribution to the existing
knowledge with respect to the application of blockchain technology to achieve a
secure digital voting system.
47
Limitations and Future Proposal:
Electronic voting has been used in varying forms since 1970s with fundamental
benefits over paper based systems such as increased efficiency and reduced
errors. With the extraordinary growth in the use of blockchain technologies, a
number of initiatives have been made to explore the feasibility of using
blockchain to aid an effective solution to e-voting. This report has presented one
such effort which leverages benefits of blockchain such as cryptographic
foundations and transparency to achieve an effective solution to e-voting. The
proposed approach has been implemented with Multichain and in- depth
evaluation of approach highlights its effectiveness with respect to achieving
fundamental requirements for an e-voting scheme. In continuation of this work,
we are focused at improving the Security and Authentication system. Integrating
blockchain-based voting systems with secure digital identity solutions can
further enhance the authentication and verification of voters. Mobile
applications can be developed to provide a user-friendly interface for casting
votes securely from smartphones. As blockchain technology continues to evolve,
ongoing research and development efforts should focus on addressing
scalability, energy efficiency, and user experience challenges. Innovation in
consensus algorithms and blockchain interoperability can further improve the
suitability of blockchain for online voting systems. Future modifications can
focus on improving the scalability and interoperability of blockchain-based
voting systems to accommodate a larger number of participants and integrate
with existing election infrastructure seamlessly.
48
References / Bibliography:
https://core.ac.uk/download/pdf/155779036.pdf
Blockchain Enabled Online-Voting System | ITM web of
Conferences (itm-conferences.org)
Sensors | Free Full-Text | Blockchain for Electronic Voting System
— Review and Open Research Challenges (mdpi.com)
IRJET-V6I9209.pdf
[PDF] Decentralized Voting Platform Based on Ethereum Blockchain
| Semantic Scholar
Blockchain based e-voting recording system design | IEEE
Conference Publication | IEEE Xplore
https://www.tutorialspoint.com/solidity/index.html
https://remix-ide.readthedocs.io/en/latest/
https://www.freecodecamp.org/news/developing-an-ethereum-
decentralized-voting-application-a99de24992d9/ etc..
49