We were inspired by the idea of a distributed organization. We wanted to create a platform that allows people to hire programmers to work on their projects, without ever needing to interact with them directly.
What it does
Go to this link for a demo, we didn't set up https, so we couldn't post it in the links sections: http://ec2-54-87-63-68.compute-1.amazonaws.com:8080/
We targeted open source projects as our initial use case, and we built a system where owners of open source projects can post features they need help with on the website with a small cryptocurrency reward as an incentive. We integrated DAI coin as a stable store of value to handle these transactions.
A use case of this would be: say that Bob is a owner of an opensource repository for an image recognition project. He wants to improve the training rate of his algorithm, but he needs help. So, Bob goes to JagerHub and makes a new bounty. To make a new bounty, he connects a metamask account to his browser, fills out the create bounty form on the Dapp, his metamask sends the contract the reward, and then he adds our webhook forwarding url to his repositories webhooks.
Now, Richard, a ML expert, sees Bob's bounty on the Dapp and thinks he can help! He goes to the linked repo, clones it, and gets started coding! After weeks of work, Richard thinks he is done and opens a pull request on Bob's project. He adds the pr-tag that Bob defined in the bounty (which would look something like [ABCD]) in the title, and his wallet id in the body of the PR. After going back and forth over the changes, Bob decides to merge Richards PR into his project. Because he set up the webhook link, github sends a request to our express server, who then sends a request to the JagerHub smart contract. The Smart contract uses Chainlink oracles to verify the validity of the pull request, and rewards Richard with the Dai Bob sent to the JagerHub contract at the start.
How we built it
We built the contract using solidity and truffle. We tested and deployed it on the Kovan test network. The front end of our project is built in React with Redux, and is webpacked with an express server. We have no database, and store all of our data on the smart contract as bounty objects. However, we do have one server side api call for setting up the github webhook forwarding.
Challenges we ran into
This was the first time my partner Parker, and I have built a block chain application. We had a lot of fun doing it, but the documentation was sparse and hard to read.
What we learned
We learned a lot about blockchain in general and developing a smart contract. We also looked deep into how chain link and the oracles work. We learned to use blockchain development tools like truffle, web3.js, ethers, and the metamask api.
What's next for JagerHub
1.) We would like to expand our usecase to private repositories on github. 2.) Fix our oracle integration 3.) Better UI/UX design 4.) Add test cases to our approval pipeline 5.) Add Kleros integration (a distributed court system on ethereum) for payment disputes 6.) Automatically create branches when creating a bounty 7.) Improved notification system 8.) Add human readable url