Skip to content

Latest commit

ย 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Road to DevCon India

Road to DevCon 8: Workshops Edition

An interactive Web3 educational portal for Ethereum workshops, built for the Road to DevCon India campaign.

๐Ÿ“– Documentation โ€ข ๐ŸŽช DevCon 8 โ€ข ๐Ÿ”ง GRYD โ€ข ๐• @TeamGRYD


Overview

Road to DevCon 8: Workshops Edition is a full-stack Web3 educational platform designed to onboard engineering students into the Ethereum ecosystem. Built by GRYD as part of the Road to DevCon India campaign, this portal powers in-person workshops leading up to DevCon 8 in Mumbai (November 3-6, 2026).

The workshop covers Ethereum's core principles through the CROPS framework:

Letter Principle Description
C Censorship Resistance No entity can block valid transactions
R Resistance to Capture No small group can gain control
O Open Source All code is transparent and verifiable
P Privacy Users control what they share
S Security Code handles real value safely

Features

๐Ÿ“Š Presentations

5 slide decks that can be presented directly from the portal, covering blockchain fundamentals through to DevCon 8 participation.

๐Ÿ“ Anti-Cheat Quizzes

Server-side quiz engine with 400+ questions (100+ per topic). Each student gets 10 random questions with a 30-second hard timer. Features:

  • Server-side grading โ€” correct answers never reach the browser
  • Admin-signed scores โ€” prevents manual transaction forging
  • One attempt only โ€” enforced on-chain per wallet per quiz
  • Unique X usernames โ€” one registration per identity
  • On-chain scoring โ€” scores stored on Sepolia testnet

โš”๏ธ Workshop Quests

Two hands-on, guided tutorials where participants deploy real smart contracts:

  1. Message Board โ€” A censorship-resistant, open-source message board
  2. Private Voting โ€” A commit-reveal voting contract with security best practices

๐Ÿ† On-Chain Leaderboard

Multi-event leaderboard powered by QuizScores.sol smart contracts on Sepolia. Each event (e.g., university workshop) gets its own contract and leaderboard, switchable via a dropdown. Each event links to its Luma page. Events are configured in src/config/events.js โ€” no env var changes needed.

๐Ÿ”— Wallet Integration

MetaMask wallet connection with on-chain registration (name + X username permanently linked to wallet) and quiz score submission on Sepolia testnet.

Tech Stack

Layer Technology
Frontend Vanilla JavaScript, HTML, CSS
Build Tool Vite
Blockchain Ethers.js v6
Smart Contract Solidity ^0.8.19
Network Ethereum Sepolia Testnet
Serverless API Vercel Functions
Documentation Docusaurus 3

Getting Started

Prerequisites

Installation

# Clone the repository
git clone https://github.com/TeamGRYD/Road2DevCon.git
cd Road2DevCon

# Install frontend dependencies
npm install

# Install API dependencies
cd api && npm install && cd ..

# Copy environment config
cp .env.example .env

# Start with Vercel (includes serverless API)
npx vercel dev

Environment Configuration

Client-side (in .env file):

VITE_CONTRACT_ADDRESS=<deployed-QuizScores-contract-address>
VITE_RPC_URL=https://ethereum-sepolia-rpc.publicnode.com

Server-side (in Vercel Dashboard โ†’ Settings โ†’ Environment Variables):

Variable Description
ADMIN_PRIVATE_KEY Admin wallet private key (signs quiz scores)
ADMIN_ADDRESS Admin wallet address
JWT_SECRET Random 32+ character string for session tokens
RPC_URL Sepolia RPC URL (default: https://ethereum-sepolia-rpc.publicnode.com)

โš ๏ธ Security Note: Server-side variables must NOT have the VITE_ prefix. Never store private keys in .env files that are committed to version control.

Note: The portal works for presentations and quests without a deployed contract. The contract + API are only needed for quiz scoring and the leaderboard.

Project Structure

Road2DevCon/
โ”œโ”€โ”€ index.html                 # Entry point (nav, footer, meta)
โ”œโ”€โ”€ style.css                  # Global styles and DevCon theme
โ”œโ”€โ”€ package.json               # Frontend dependencies (Vite, Ethers.js)
โ”œโ”€โ”€ vercel.json                # Vercel routing configuration
โ”œโ”€โ”€ .env.example               # Environment template
โ”‚
โ”œโ”€โ”€ contracts/
โ”‚   โ””โ”€โ”€ QuizScores.sol         # On-chain quiz scores (anti-cheat)
โ”‚
โ”œโ”€โ”€ api/                       # Vercel Serverless Functions
โ”‚   โ”œโ”€โ”€ package.json           # API dependencies (ethers, jsonwebtoken)
โ”‚   โ”œโ”€โ”€ lib/
โ”‚   โ”‚   โ”œโ”€โ”€ jwt.js             # JWT session management
โ”‚   โ”‚   โ””โ”€โ”€ questions.js       # 400+ questions with correct answers
โ”‚   โ””โ”€โ”€ quiz/
โ”‚       โ”œโ”€โ”€ start.js           # Serve random questions (no answers)
โ”‚       โ”œโ”€โ”€ answer.js          # Grade answers server-side
โ”‚       โ””โ”€โ”€ complete.js        # Sign score with admin key
โ”‚
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ main.js                # Page rendering and routing
โ”‚   โ”œโ”€โ”€ router.js              # Hash-based SPA router
โ”‚   โ”œโ”€โ”€ slides.js              # Presentation slide engine
โ”‚   โ”œโ”€โ”€ quiz.js                # Quiz engine (server-backed, 30s timer)
โ”‚   โ”œโ”€โ”€ leaderboard.js         # Multi-event on-chain leaderboard
โ”‚   โ”œโ”€โ”€ wallet.js              # MetaMask wallet + registration
โ”‚   โ”œโ”€โ”€ abi.js                 # QuizScores contract ABI
โ”‚   โ”œโ”€โ”€ config/
โ”‚   โ”‚   โ””โ”€โ”€ events.js          # Event definitions (name + contract address)
โ”‚   โ””โ”€โ”€ data/
โ”‚       โ”œโ”€โ”€ presentations.js   # 5 presentation content sets
โ”‚       โ”œโ”€โ”€ quizQuestions.js   # Quiz metadata (NO correct answers)
โ”‚       โ””โ”€โ”€ workshopQuests.js  # Quest step-by-step guides
โ”‚
โ”œโ”€โ”€ public/
โ”‚   โ””โ”€โ”€ images/                # Logos, hero images, icons
โ”‚
โ”œโ”€โ”€ docs/                      # Docusaurus documentation site
โ”‚   โ”œโ”€โ”€ docusaurus.config.js
โ”‚   โ”œโ”€โ”€ docs/                  # Markdown documentation
โ”‚   โ””โ”€โ”€ static/                # Documentation assets
โ”‚
โ””โ”€โ”€ .github/
    โ””โ”€โ”€ workflows/
        โ””โ”€โ”€ deploy-docs.yml    # GitHub Pages deployment

Smart Contract

The QuizScores.sol contract stores participant quiz scores on-chain with anti-cheat protections:

  • Separate registration โ€” name + X username permanently linked to wallet
  • Admin-signed scores โ€” ECDSA signature verification prevents score forging
  • One attempt per quiz โ€” hasAttempted mapping enforces single attempts
  • Unique X usernames โ€” case-insensitive uniqueness check
  • Nonce replay protection โ€” prevents signature replay attacks
  • Batch reads โ€” efficient leaderboard queries with pagination

Deploy to Sepolia

  1. Open remix.ethereum.org
  2. Create QuizScores.sol and paste the contract code
  3. Compile with Solidity 0.8.19+
  4. Deploy via "Injected Provider - MetaMask" (Sepolia network)
  5. Pass your admin wallet address as the constructor argument
  6. Copy the contract address to your .env file

See the Smart Contract Documentation for full API reference.

Documentation

Comprehensive documentation is available at:

wiki.road2devcon.quest

Includes:

  • Portal overview and setup guide
  • Full presentation content with further reading
  • Step-by-step quest walkthroughs
  • Smart contract API reference
  • Anti-cheat quiz system architecture
  • Curated learning resources

Running Docs Locally

cd docs
npm install
npm start

Building for Production

npm run build

The production build is output to dist/. Deploy to Vercel for full functionality (frontend + serverless API).

Contributing

Contributions are welcome! Areas where you can help:

  • Documentation: Fix typos, improve explanations
  • Translations: Help translate content for Indian languages
  • New Quests: Design additional hands-on tutorials
  • Quiz Questions: Add more high-quality questions to the pool
  • UI/UX: Improve the portal's design and accessibility
  • Bug Reports: Open an issue if you find something broken

License

This project is open source under the Apache License 2.0.

Credits

Built for DevCon 8 Mumbai ๐Ÿ‡ฎ๐Ÿ‡ณ with ๐Ÿ’— by GRYD

About

A community initiative on the occasion of DevCon Mumbai to educate next-gen of engineering students about web3 through pure hands-on deep dive of @ethereum dev tools, builder paradigms & practical cypherpunk quests on the 5 pillars of CROPS ft. lean Ethereum roadmap.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages