Skip to content

CptDat9/Seminar-Voting-Dapp

Repository files navigation

Seminar Voting DApp

Overview

In an era where DeFi, DeGov, and other blockchain technologies are rapidly evolving, staying ahead of the curve is essential. For blockchain and DeFi development teams, organizing seminars and presentations on emerging technologies is a critical practice. It fosters knowledge sharing, encourages innovation, and ensures the team stays updated with the latest trends. This product addresses the pressing need for a structured and transparent way to manage and evaluate seminars. By integrating blockchain technology, it enables the storage and management of seminar data, facilitates fair and tamper-proof voting, and incentivizes speakers through rewards such as NFTs and soulbound tokens (SBTs). This system not only boosts engagement in presenting new technologies but also helps teams stay competitive in this fast-paced industry.

Seminar Voting DApp is a decentralized platform designed to bring transparency and fairness to the evaluation and recognition of seminars and speakers. By integrating blockchain technology, the platform ensures secure, tamper-proof voting and rewards contributors with NFTs and soulbound tokens (SBTs).

Team Members

  • Đoàn Xuân Công Đạt - Project Lead/ Developer
    Contact: hoadd.hd4@gmail.com | Discord: datt9355
  • Nguyễn Ngọc Trung - Developer
    Discord: emsifauz
  • Nguyễn Tùng Dương - Developer
    Discord: teddy314

Project Description

What does your project do?

The DApp allows users to:

  • Vote for seminars and speakers in a decentralized, secure, and privacy-focused manner.
  • Reward speakers with Seminar NFTs (ERC-721), where each NFT represents a seminar, and metadata includes details such as seminar title, description, and ownership by the speaker.
  • Provide Certification SBTs (ERC-1155) as non-transferable tokens to recognize exceptional contributions.
  • Store metadata such as seminar details and certificates on IPFS for transparency.

Problem Solved

The DApp addresses the lack of transparency and trust in centralized voting systems by offering a decentralized solution that ensures fairness, prevents tampering, and respects user privacy.


Features

  1. Decentralized Voting System:
    • Whitelist-based voting for authorized users with controlled vote limits per round.
    • Enhanced privacy potential with Oasis Sapphire or integration with Polkadot’s governance tools.
  2. Seminar NFTs and Certification SBTs:
    • Seminar NFTs (ERC-721) serve as digital representations of seminars, owned by their respective speakers.
    • Certification SBTs (ERC-1155) are unique, non-transferable tokens minted to reward outstanding contributions.
  3. Admin Functionalities:
    • Create and manage voting rounds.
    • Add seminars and whitelist users for participation.
    • Mint and distribute Seminar NFTs and Certification SBTs as rewards.
  4. IPFS Integration:
    • Decentralized storage for seminar slides and additional metadata.

Technical Stack

  • Languages and Frameworks: Solidity, Solidity, React + Vite, Javascript, Charka UI (Lib).
  • Blockchain:
    • Deployed on BNB Testnet for testing and validation.
    • Future integration planned with Oasis Sapphire for privacy-focused voting or Polkadot via Moonbeam/Astar for decentralized governance.

Architecture

The application consists of:

  • Smart Contracts: Handle voting, whitelist permissions, and rewards using Solidity.
  • Frontend: A basic UI built with React.js for interacting with smart contracts.
  • Decentralized Storage: IPFS for immutable metadata storage.

How It Works

  1. Admin Actions:

    • Create and configure voting rounds.
    • Add seminars and whitelist users for participation.
    • Mint Seminar NFTs and Certification SBTs as rewards for winners and contributors.
    • View results, remove voters, or remove admins (restricted to the Owner).
    • Identify voters who did not participate in voting for seminars or speakers.
  2. User Actions:

    • Participate in voting during active rounds.
    • View detailed Seminar NFT information by ID (e.g., speaker, description, metadata, URI).
    • Set a name.
    • Remove their votes.
  3. Data Storage:

    • Seminar and certificate metadata are securely stored on IPFS.

Challenges Faced and Solutions

  • UI Design: The frontend, while functional, requires improvements in usability and aesthetics. Enhancing the user experience is a priority for better engagement.

  • Gas Optimization: Efficient smart contract design is critical to minimize gas costs, especially for voting and minting processes, ensuring scalability on EVM-compatible networks.

  • Privacy Concerns: Integrating privacy-focused networks like Oasis Sapphire can help mask voter identities, balancing transparency and confidentiality.

  • Upgradeable Contracts: Using OpenZeppelin's upgradeable contract framework allows seamless updates and feature expansions without redeploying the entire contract.

  • Data Decentralization: Storing seminar metadata on IPFS ensures a decentralized, tamper-proof system for managing critical data.

  • Permission Management: Implementing a robust whitelist system ensures only authorized users can vote while maintaining the flexibility to update permissions dynamically.

  • Deployment: Deploying on Binance Smart Chain (BSC) Testnet with future compatibility for other EVM-based chains ensures wider accessibility and scalability.


Future Development

  1. UI Enhancements: Revamp the frontend for a more polished user experience.
  2. Cross-Parachain Voting: Enable voting across Polkadot parachains for broader ecosystem integration.
  3. Polkadot Native Standards: Transition to RMRK NFTs and Polkadot-specific SBTs for enhanced functionality.
  4. On-Chain Governance: Adopt Substrate-based tools for decentralized management of seminars and voting processes.
  5. Privacy Integration: Implement solutions like Oasis Sapphire for anonymous voting.

Submission Details


Apology and Commitment to Improvement

We sincerely apologize for deploying and testing our contract on BSC TestNet. Out of habit, we unintentionally conducted this project on that network, which unfortunately rendered it incompatible with the Westend Asset Hub.

Additionally, when we attempted to deploy the contract on remix.polkadot.io, we encountered an error indicating that the contract was too large. Unfortunately, this issue arose very close to the submission deadline, and with our final exams for the semester approaching (we are all second-year university students), we were unable to allocate sufficient time to split the contract into smaller components to meet the size requirements.

We deeply regret the inconvenience caused and kindly ask for your understanding. Should we have the opportunity to proceed to the next round, we assure you that we will rebuild the project with greater care and precision.


Acknowledgments

Special thanks to:

  • Open-source libraries and frameworks used in development.
  • Mentors and community members for their guidance and support.

Using D-app

Admin's screen:

image

Add voter:

image

Remove voter:

image

Add and Remove Voting Round:

image

Mint Seminar:

image

Add Admin:

image

Voting Round Detail:

image

Unvoted list:

image

Show Result:

image

Create Certification:

image

Manage Certification:

image

Remove admin:

image

Set name:

image

Choose Final Winner:

image

Voter's screen:

image

Vote for seminar:

image image

Vote for speaker:

image

Set name:

image

Remove vote for seminar:

image

Remove vote for speaker:

image

Seminar details:

image