Code Monkey home page Code Monkey logo

learningpath-hackathon-etharg's Introduction

Learning Path : Eth Argentina 2024

Taikai Page

Learning Path is a gamified learning platform designed to address the challenge of identifying and rewarding builders for their contributions in blockchain protocols. It leverages blockchain technology to provide transparent, immutable records of user achievements and quest metrics, ensuring open and verifiable progress tracking.

The platform incentivizes users to learn about blockchain technologies through interactive challenges, including multiple-choice quizzes, real-time oracle-validated responses, and timed competitions.

Administrators can configure various challenge types and reward pools, allowing protocols to identify talented builders while fostering an ecosystem where learning, contribution, and rewards are interconnected. By offering tangible incentives and community recognition, Learning Path delivers engaging education to users, helps protocols discover and nurture talent, and promotes their technology.

This innovative approach contributes to expanding knowledge and aligning incentives within the blockchain ecosystem, all while maintaining a transparent and decentralized record of user accomplishments and quest performance.

  • Devrels authenticate using Zupass and it's ZK Proof Verifier
  • ERC20 Token named PATH as a contribution metric for contributors
  • Challenge system to reward users with ETH for burning PATH earned in challenges
  • Different types of challenges that award users with ETH in different ways

How it works

Users will first connect their existing wallets to the platform, where afterwards there will be options available to enter as a contributor, and play challenges in exchange for rewards in PATH, or Devrels in charge of the setup will authenticate with a verified Zupass Proof.

DevRels will be assigned a Zupass Ticket, which they will require to authenticate with to enter. Only those with a valid ticket will provide the proof that will be verified via the frontend using Zupass's authenticate package ZuAuth. This package verifies using ZK that the proof provided is actually from Zupass and has a valid Ticket ID, which was issued to the DevRel / Admin.

Once authenticated, DevRels/Admins will be able to create challenges so users can collect PATH. Along with these challenges, they will create and fund Pools that will serve as bounties for users to burn earned PATH. These challenges and bounties are created on a Firebase database and on chain using Smart Contracts written in Solidity and deployed on the desired network, in this case Scroll Sepolia test network.

Regular users will be able to play these challenges that will consist on different types of modules, such as on chain Multiple Choice trivia, a voting scheme using MACI, and more.

Tech Stacks

Frontend uses the following tech stacks:

Smart Contracts are built with:

  • Hardhat for contract deployment & contract verification

Implementation Details

For Zupass Tickets, a Pipeline was created on Zupass' PodBox for ticket issuance to DevRels / Admins that will create platform content.

The following smart contracts were created:

  • ChallengeFactory: Factory contract that creates new challenges, based on different configuration types set by the admin.
  • PathToken: ERC20 Token that will serve as platform currency. PathToken also keeps track of the historic amount of PATH a user obtained, even after burning of PATH.
  • PoolPrizeFactory: Factory contract that creates different types of pool prizes.
  • PoolPrize: A Pool funded by the deployer, which can have different types of reward logics. At the moment, only a Pool Prize (set amount per claim) is available, but the idea is to include different types of Pools such as a Quadratic or Pre-Determined types.
  • API3PriceFeed: Oracle using API3 to consult current ETH value in USD
  • API3PriceFeedExtended: Extension of Price Feed above, serving as a conversion contract for other currencies, such as Argentinian Pesos.
  • PriceConsumerV3: Oracle using Chainlink to consult current ETH value in USD

Unfortunately the API3 and Chainlink cound not be used as we experienced problems when calling readDataFeed function calls. For some reason the contract transaction got held up on confirmation.

Verified Smart Contracts

ChallengeFactory PathToken PoolPrizeFactory PoolPrize

Quickstart

To get started, follow the steps below:

Learning Path Github

Frontend

  1. Navigate to frontend and install dependencies
cd frontend/
npm install
  1. Start NextJS app:
npm run dev

App will run on localhost:3000

Smart Contracts

  1. Navigate to contracts folder and install dependencies
cd contracts/
  1. Install Dependencies
npm install
  1. Copy the .env.example file and name it .env Make sure to fill in the values for each var on the created env file
cp .env.example .env
  1. To deploy smart contracts, run
npm run deploy:network

Network sent must be configured in hardhat.config.js file on contracts folder

Product Design

Design System:

Design System


Userflows:

Figjam with Userflows


UI Design:

Admin Onboarding UI

Admin Multiple-Choice Challenge Setup

Admin Pool Prize Setup UI

Player Onboarding UI

Player Multiple-Choice Game UI

Player Prize Pool Claiming UI


Prototypes:

Admin Onboarding Prototype

Admin Create Multiple-Choice Challenge Prototype

Admin Create Prize Pool Prototype

Player Onboarding Prototype

Player Multiple-Choice Game Prototype

Player Claim Pool Prize Prototype


Pitch Decks:

Pitch Deck Spanish

Pitch Deck English

Video Demo

Watch the video Pitch Video

learningpath-hackathon-etharg's People

Contributors

benbarahona avatar procyondeveloper avatar

Watchers

 avatar Denilson Barahona avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.