Inspiration

The inspiration for this idea came from a recent survey on decrease of open source contributions. Based on the survey data, out of the 84% of developers who "actively" contribute to open source projects, only about one-third contribute code more than once a week. Therefore, more developers would spend more time contributing code if they were fairly compensated for work. From the survey, we can see there is a clear appetite among contributors to work more on open source (especially with the new GitHub sponsor feature).

What it does

A web application which allows users to connect their GitHub account and Hedera Hashgraph account (currently only on testnet). Owners of an open source project can assign active issues to different contributors and link a points value (in tinybar) to it. When the issue is completed, the owner can execute a transaction on the Hedera blockchain to compensate the contributor. Once consensus is reached and the transaction is successful, the issue is closed. Project managers can also use this app to improve their team's productivity with crypto incentives.

How I built it

The application is build with a React frontend and an Express/Node.js backend server. I have used GitHub OAuth for connecting user's accounts and to grant access to the authenticated GitHub REST API. I have used a Supabase database for storing contract information and Hedera credentials. Finally, I used the Hedera JavaScript SDK to connect to the Hedera Hashgraph blockchain to create new accounts and execute transactions (currently on testnet).

Challenges I ran into

  • Setting up the GitHub OAuth workflow
  • Learning to use JWT for cookie-based authentication
  • Learning about Hedera blockchain and building a DApp on the network
  • Learning about Supabase and its JavaScript SDK (really cool PostgreSQL Firebase alternative)

Accomplishments that I'm proud of

  • Added some basic styling with Bootstrap and Tailwind CSS
  • Successfully implemented a feature to execute transactions on the Hedera blockchain
  • Enabled GitHub automation through REST API

What I learned

JWT authentication, Hedera Hashgraph, Supabase, and GitHub OAuth.

What's next for Campiege

  • Improve UI/UX with custom mobile-responsive design
  • Add functionality for automated closing issues after merging pull requests
  • Deploy on Hedera mainnet

Built With

Share this project:

Updates