In an effort to bring transparency, fairness, and truth to elections, we decided to build a platform to facilitate decentralized voting. As we're also interested in what smart contracts can offer, we thought this was a great first step into becoming blockchain developers.

What it does

VaaS is a platform for organizations to hold transparent elections on the Ethereum network.

How we built it

In order to simplify interacting with the Ethereum network, all transactions are executed from our server, which is hosted on Google App Engine. While anyone can read values from the smart contract, only the server has the private key required to commit transactions and cast votes. We wrote and tested the solidity smart contract locally using Ganache before deploying it onto the Kovan test network using web3 and truffle npm packages. The front end is a simple Vue.js app which interacts with our App Engine API.

Challenges we ran into

We had to learn how to use javascript promises effectively in order to execute transactions and read from smart contracts.

Accomplishments that we're proud of

We're happy that we have a working demo and we're so proud we were able to learn so much in such a short amount of time.

What we learned

  • How to write smart contracts using Solidity
  • How build a Node.js server and communicate with our client via post and get requests
  • How to utilize Javascript promises effectively

What's next for Voting-as-a-Service

  • Build out a platform where organizations can dynamically deploy smart contracts for their users
  • Add more authentication methods for other organizations
  • Add more measures to vote on
Share this project: