Skip to content

A tool to incentivize developers to contribute to open source projects by rewarding them with bounties.

License

Notifications You must be signed in to change notification settings

WangWilly/Dounty

Repository files navigation

Dounty (coDe Bounty)

Dounty icon

A tool to incentivize developers to contribute to open source projects by rewarding them with bounties. Like the ticketing system in JIRA, but with bounties. Users open bounties for issues they want to see fixed on Github, and developers can claim them. Once the issue is fixed, the developer gets the bounty.

Case studies

Design

On-chain program

Client side

Browser extension (TBD)

Server side (Backend)

Run w/ docker-compose

./scripts/db-build-migration.sh
./scripts/be-build.sh

cd deployments
docker compose up -d

Setup

On-chain program

The rust toolchain is required to build the project. The following commands will install the rust toolchain and the required dependencies.

📌 Install instructions
# Install the rust toolchain
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Installing using Anchor version manager

# Install the Anchor version manager
cargo install --git https://github.com/coral-xyz/anchor avm --locked --force

# Install the build dependencies
sh -c "$(curl -sSfL https://release.anza.xyz/stable/install)"

# Check the version of Anchor
solana --version

# Install the latest version of Anchor
avm install latest

# Check the version of Anchor
anchor --version
📌 Common commands
solana config get # Get the current Solana cluster configuration
solana config set --url https://api.devnet.solana.com # Set the Solana cluster configuration
solana balance # Get the balance of the current wallet
solana airdrop 2 ~/.config/solana/id.json # Airdrop 1 SOL to the current wallet
solana address # Get the public key of the current wallet
solana keygen new --outfile ~/.config/solana/id.json # Generate a new keypair

solana transfer 1 [public-key] # Transfer 1 SOL to the specified public key
solana transfer --allow-unfunded-recipient 1 [public-key] # Transfer 1 SOL to the specified public key even if it's unfunded
solana transfer --allow-unfunded-recipient 1 [public-key] --from ~/.config/solana/id.json # Transfer 1 SOL from the current wallet to the specified public key even if it's unfunded

# https://docs.anza.xyz/cli/usage#solana-logs
solana logs --url localhost

# Initialize a new project
anchor init [new-workspace-name]

TODOs

  • Cryptocurrency agnostic payable
  • Chrome extension to detect issues on Github and open bounties
  • Mint a contribution/skill NFT for each bounty (can put to resume)
  • Mint community impact NFT for each donation
  • Analyze the impact of bounties on open source projects

MISC

Reading list