Inspiration

We are a part of the Blockchain Technologies Club at California State University, Fullerton. We wanted to learn how to build, deploy, and interact with decentralized applications on the Ethereum blockchain. Additionally, we are graduating this fall and following our graduation, we wanted to pass on board member roles. Current members are capable to vote with their own cryptocurrency, TuffixToken, to elect their board members.

What it does

Our application allows users to vote on a decentralized election.

How we built it

We leveraged the Hardhat blockchain development suite to drive our project. We utilized its local blockchain environment, and wrote a deployment script in JavaScript to send our compiled smart contracts to the local chain. We then built a front end using svelte to interact with the local chain. In the website, we use ethers.js, a library to assist with interacting with smart contracts. Our transactions utilized TuffixToken, our own Ethereum token. We can then send transactions which cast our votes to the contracts on the blockchain. Overall, this project was built through the cohesion of web development, smart contracts, and cryptocurrency.

Challenges we ran into

We had trouble deploying the contract to the local chain, and signing transactions with ethers and metamask.

Accomplishments that we're proud of

We are proud that we were successfully able to deploy the smart contracts to the local blockchain as well as interact with it programmatically with JavaScript. We were also able to successfully write unit tests for our smart contracts with the chai test suite. Lastly, we were able to combine our efforts utilizing each team members strengths to create one cohesive project.

What we learned

One of our teammates had not coded a smart contract before, and we were able to provide experience and background to Blockchain development. We learned common mistakes that are easy to make with local blockchain development to avoid them next time. For example, ensuring the chainID is set properly in both our test environment and metamask configuration.

What's next for TuffyVotes

We would like to allow the user to start their own elections, and style our website more with CSS.

Built With

Share this project:

Updates