Inspiration

We decided to solve a problem that would affect everyone: voting. By including your face descriptor, it allows voting officials to authenticate each vote, by making sure a human has completed the vote, and their name and face match a name and face that was already on file.

What it does

The user is first onboarded to simulate data already owned by the US government (face, full name). After the user signs up, they will sign in and then provide their face to be verified with previously taken photos. After verification, the user vote along with their face descriptors are added to a blockchain. The user can then see the current voting poll, validate their own vote, and validate the blockchain as a whole.

How we built it

React written in TypeScript Tensorflow.js with face-api.js CockroachDB GCP Cloud Functions Firebase Authentication Firebase Hosting Python Flask with custom BlockChain And most of all, no sleep!

Challenges we ran into

Working remotely was the largest roadblock when creating this project. In such a short amount of time, in a brand new team, it was an adjustment. Overall, after about halfway, we hit our stride and were able to work better together.

Accomplishments that we're proud of

We are proud of how diverse the tech stack, and how we were able to cover many categories.

What we learned

There were a lot of things that each of us learned during this Hackathon:

  • For the front end, we used a styling library called TailwindCSS that we used to implement our HTML and CSS
  • We also used a library called un-stated next as our main state management tool for our react app. This reduced the workload significantly compared to some of the other state management tools, such as Redux or Flux.
  • We learned how to use Tensorflow facial recognition works and how we can integrate it with a react front end.
  • Lastly, we learned to create a Blockchain on python and host it on a flask server, exposing various endpoints to interact with.

What's next for BrickChain Voting

BrickChain voting being a proof of concept has lots of potential to grow. In continuation of the project we would like to elaborate on these two aspects of the project: Authentication: Use FBI DB to access people's government licenses and validate users.

Blockchain: Add more to the blockchain aspect of the project as it was built only to support few instances. We would like to further add ways to mine and do a proof-of-concept for not just the voters' own chain but the whole blockchain of voters in an entire region.

Built With

Share this project:

Updates