Develop a Voting System Smart Contract

This project is designed to enhance and consolidate your blockchain development skills. It's a hands-on project that provides you with a practical learning experience and an opportunity to apply your knowledge in a blockchain development context.

For this project, you will create a smart contract implementing a basic voting system with the following requirements:

  • It manages only two candidates: “BOB” and “ALICE.”

  • It keeps a tally of the number of votes each candidate has received.

  • It avoids double voting.

  • It allows an EOA to vote for its preferred candidate.

  • It can return the winner candidate only when a total of 10 votes are cast.

Task by task, all the requirements will be addressed and the final smart contract will be tested to prove its correctness.