Skip to content

ixgnoy/pollingapp_x

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pollingapp_x

Empowering secure, transparent elections for everyone.

last-commit repo-top-language repo-language-count Visitors


🛠️ Built with the tools and technologies:

JSON Markdown npm JavaScript GNU Bash React Bootstrap React Ethers Bootstrap IPFS Chainlink


🔍 Introduction

This is a Web3-based decentralized voting application built with Ethereum, Solidity, Hardhat, React, and IPFS. It allows users to securely cast votes through a smart contract deployed on the Ethereum blockchain. IPFS is used to store immutable records and assets off-chain, and Oracle integration supports real-world event validation on Layer 2.

🧱 Tech Stack

Frontend: React, JavaScript, Bootstrap
Blockchain: Solidity, Hardhat, Ethereum (RPC)
Off-chain Storage: IPFS
Oracle: Chainlink / L2 Oracle Protocols
Smart Contract Deployment & Testing: Hardhat
Wallet Integration: MetaMask / Web3-compatible wallets

✨ Features

  1. Admin and Voting Panels
  2. Smart Contract-based vote casting
  3. Event listening for VoteCast
  4. Off-chain IPFS-based voter proof archival
  5. Oracle-integrated real-world data validation
  6. L2 interoperability and gas optimization
  7. Secure, transparent election process

📦 IPFS Integration

What is IPFS?

IPFS (InterPlanetary File System) is a distributed system for storing and accessing files, websites, and data in a peer-to-peer network.

Why use IPFS in this DApp?

  1. Decentralized file storage
  2. Permanent, tamper-proof data
  3. Cryptographic hashes for integrity
  4. Reduces gas by storing large data off-chain

Use cases in this project:


1. Store candidate's party image
2. Retrieve and display IPFS content via https://ipfs.io/ipfs/{CID}

Example flow:

  1. Admin uploads a manifesto PDF or campaign media to IPFS. (For example, candidate's party's logo)
  2. IPFS returns a content hash (CID)
  3. CID is stored in the blockchain smart contract
  4. Frontend fetches the file via public IPFS gateways

🛰️ Layer 2 Blockchain Oracle Integration

What are Oracles?

Oracles bridge the gap between on-chain and off-chain data. They fetch, verify, and relay external data (like timestamps, identity checks, or event triggers) into smart contracts.

Why Oracle + L2?

  1. Lower gas fees (via L2 solutions like Arbitrum/Optimism)
  2. Real-world conditional logic (e.g., “voting closes 10 minutes after real-world event X”)
  3. External API or timestamp validation
  4. Resilience and scalability

Use cases in this project:

  1. Fecth and dispalay the logo image of the candidates' party

🗺️ Architecture Diagram

Demo (with Updated UI from my teammate

https://youtu.be/sZ1Um2xzPls