Skip to content

An Ethereum based Voting app. connects to the Ethereum Ropsten test network.

Notifications You must be signed in to change notification settings

Vaishnav-Kanhirathingal/BlockChain-VS

Repository files navigation

BlockChain-VS

About -

app-icon

This app is a block-chain based voting system app which uses the ethereum's ropsten testnet to perform transactions.

AS OF 13-04-22, THIS PROJECT IS FUNCTIONAL.

Files used for contract interaction are -

This file is responsible for all the main transactions -

app/src/main/java/com/kenetic/blockchainvs/contract_classes/VoteContractDelegate.kt

This contract accepts multiple votes. (auto-generated) -

app/src/main/java/com/kenetic/blockchainvs/contract_classes/contract_auto_generate/ContractAutoGenTesting.java

This contract does not accept multiple votes. (auto-generated) -

app/src/main/java/com/kenetic/blockchainvs/contract_classes/contract_auto_generate/ContractAutoGenOriginal.java

This file contains the function encoders for state changing functions. These were generated to counter faulty web3j functions which were unable to perform state changing transactions on the Test-Net servers -

app/src/main/java/com/kenetic/blockchainvs/contract_classes/AlternateTransactionHandler.java

This file is a test class which automates the signup process -

app/src/androidTest/java/com/kenetic/blockchainvs/ExampleInstrumentedAlternateTransactionHandler.kt

Contract code -

The link to the repository with the contract and the generated wrappers are here

Sample screen shots / Guide -

Sign up screen -

Here, the user can sign up using their email and phone number. This page is for demo purpose only, programatically it doesn't create an account remotely yet. However, it does store the details locally.

Login Screen -

this is the login screen, use the regustered email and password to login to the account. The sign Up process is discussed later on.Login can also be done using fingerprint if the option is enabled.

The main screen's side menu -

here, you can find the options for the account settings such as Log In, Log Out, Sign Up, Remove Account, Switch Account. Below this you will find the Contract Interface. This will be discussed later on.

The Contract Interface -

This page requires you to be signed in. Sign-in in can be done using either the regisered email and password, or your fingerprint of enabled. Once signed in, you can Access the entire solidity contract which has already been set up in the ropsten test network. Transactions that require a fee will ask for fingerprint verification. The Add Me To Voter's List is a test option only. Performing that action would independently change your account's status to that of one that has performed votiing.

Transaction Receipt -

performing a transaction also requires a fingerprint. Once that is done, the user can thenwait for the transaction to be performed. Once that is done, a receipt is genarated.

Receipt database -

Once the receipt is generated it is stored into the app's database. It can then be viewed from the app's mainscreen whenever required.

Ropsten results -

This is the transaction receipt generated by the etherscan website after the transaction is complete.