An electronic voting system based on Blockchain technology for the Presidential Election of Sri Lanka.
There are 3 users of the system.
- Election Commissioner
- Election Official
- Voter
The functions of each user are as follows.
Election Commissioner-
- Candidate Registration/Management
- Official Registration/Management
- Get Election Results
Election Official-
- Voter Registration
- Start Election Server
- Join Election Server
Voter-
- Login
- Cast Vote
The main focus of this system is the voting process. The voting process integrates Blockchain technology to securely store the votes. The central MySQL database stores all the user data (voter details, official details, candidate details). The votes are verified using the NIC of the voter and then encrypted and stored in the Blockchain. A copy of the Blockchain is written to the storage of each client connected to the Blockchain Network at the end of an election. An overview diagram of the voting process is shown below.
- Apache NetBeans IDE 12.0
- JDK-8
- MySQL
Import the database file 'slelection2022.sql' from MySQL.
Edit the connection string in blockchainvotingsystem/SqlConn.java (line 21).
try
{
Class.forName("com.mysql.cj.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/slelection2022?useLegacyDatetimeCode=false&serverTimezone=UTC","root",""); //Connection String
return conn;
}