AIM
The primary aim of Etherballot is to provide a voting platform where voters can cast their vote safely and securely using blockchain to provide consistency and integrity to the voting process ensuring complete transparency. Etherballot aims to create a secure voting platform using blockchain. It ensures that votes are kept safe and consistent, and the process remains transparent.This helps improve democracy by making voting more reliable and accessible to everyone.
INTRODUCTION
Etherballot is centered around voting mechanisms, utilizing Solidity for smart contract implementation to ensure a secure and transparent electoral process. Etherballot represents a pioneering endeavor to revolutionize the democratic process through the fusion of blockchain technology and voting mechanisms. At its core, Etherballot is driven by a commitment to transparency, security, and inclusivity in elections. By harnessing the power of blockchain, Etherballot aims to establish a voting platform where each ballot is securely recorded, immutable, and transparent, ensuring the integrity of the electoral process.
With a focus on both theoretical understanding and practical application, Etherballot endeavors to equip individuals with the knowledge and tools necessary to navigate the complexities of blockchain technology. Through exploration of concepts like NFTs, smart contracts, and Web3 integration, Etherballot not only provides insight into the innovative potential of blockchain but also empowers users to actively participate in shaping the future of democratic governance. The project leverages blockchain technology to enhance security, transparency, and user engagement.
METHODOLOGY
Our journey with Etherballot commenced with laying a strong foundation in web development by delving into the basics of HTML, CSS, and JavaScript. This initial step allowed us to understand the fundamentals of web technologies, providing us with the necessary groundwork to dive deeper into more complex frameworks and languages.
Building upon this foundation, we then did diligent research and deep dives into blockchain technology, Solidity, ReactJS, and Web3 tools, predominantly Metamask. We invested considerable time immersing ourselves in the intricacies of these technologies, exploring their capabilities, and identifying how they could synergize to create a robust voting platform. Through extensive literature review, online courses, and collaboration with experts in the field, we gained a comprehensive understanding of blockchain's potential in revolutionizing traditional voting systems.
Following this thorough research phase, we meticulously planned and designed Etherballot, envisioning its architecture and functionality down to the smallest detail. Our planning phase involved intricate discussions, where we mapped out the smart contract structure, user interfaces, and authentication mechanisms with different people working on the front end and back end. We prioritized not only technical aspects but also focused on user experience, striving to create a platform that was intuitive, accessible, and secure. By meticulously planning each aspect of Etherballot, we set ourselves up for success in the implementation phase, with a clear roadmap guiding our development efforts.
IMPLEMENTATION
During the implementation phase, our team methodically executed our plans, translating our ideas into tangible code and interfaces. We commenced by setting up our development environment, installing the necessary dependencies for React and Solidity development. This involved configuring tools, libraries, and frameworks such as Hardhat and Sepolia to ensure seamless integration and collaboration within our team.
Next, we focused on establishing the Web3 Metamask connection, a crucial step in facilitating interaction between our application and the Ethereum blockchain. This integration enabled users to securely authenticate and participate in the voting process using their Metamask wallets. With our environment set up and the Metamask connection established, we proceeded to dive into coding, starting with the creation of basic smart contracts for user authentication using Solidity. These contracts formed the foundation of Etherballot's security infrastructure, establishing trust and integrity in the voting process.
Concurrently, we turned our attention to crafting frontend components for user authentication using React. Leveraging SHADCN templates, we meticulously designed interfaces that were both visually appealing and highly functional, aiming to create a seamless user experience that instilled confidence in voters while navigating the platform. As we progressed to the main features implementation phase, we tackled role-based authentication using Solidity smart contracts and developed user interfaces for creating and managing polls. This involved integrating complex logic and data structures to support various voting scenarios, from simple polls to multi-tiered elections. Throughout the implementation phase, we maintained a collaborative approach, regularly sharing progress updates and seeking feedback to ensure alignment with our objectives and stakeholders' expectations.
Finally, to make our app accessible to users, we deployed it using Vercel. This allowed us to quickly and easily deploy our application to the web, making it available for users to access and participate in the voting process.
RESULTS
Our hard work paid off when we successfully created Etherballot—a voting platform using blockchain technology. It turned out even better than we hoped! We made sure it was super secure and transparent, much more than old-fashioned voting systems. Plus, we made it easy for people to use, with interfaces that were simple to understand and navigate. We added a cool feature where different users have different levels of access, depending on their role in the system.
To make sure Etherballot worked perfectly, we tested it a lot and made improvements wherever needed. We wanted it to be reliable and work well for everyone who used it. And it worked! People who tried Etherballot really liked it, which made us feel great about the work we put into it. It showed us that using blockchain in voting can really make the process fairer and more democratic.
Provided below are a few snapshots of how the final website looks.
Figure 1: Post-Voting page on the final website
Figure 2: Active Elections page
CONCLUSION
To conclude, Etherballot is a groundbreaking blockchain-based voting platform that embodies the power of collaboration and innovation. Through meticulous research, planning, and implementation, we've showcased the transformative potential of blockchain technology in redefining the electoral landscape. With its user-friendly interface, robust features, and commitment to security and transparency, Etherballot promises to revolutionize how elections are conducted. By providing a trustworthy platform for expressing choices, Etherballot aims to make voting more inclusive and democratic. As we look ahead, we're excited to witness the impact Etherballot will have on future voting systems and beyond.
References
Shadcn. (n.d.). Shadcn UI Templates. Shadcn. https://ui.shadcn.com/
React. (n.d.). React - A JavaScript library for building user interfaces. React. https://react.dev/
CryptoZombies. (n.d.). CryptoZombies - Learn to code games on Ethereum. CryptoZombies. https://cryptozombies.io/
Solidity. (n.d.). Solidity - Ethereum Smart Contract Programming Language. Solidity. https://soliditylang.org/
Project Expo Meet Link : https://meet.google.com/vsq-xgea-yiq
Project Mentees :
Ahan Halder
Shanjiv A
Dhruva Vinod
Report prepared on May 6, 2024, 8:59 p.m. by:
Report reviewed and approved by Aditya Pandia [CompSoc] on May 9, 2024, 10:49 p.m..