Inspiration
I run a micro-SaaS Fintech called CasParser, where we do data extraction on various Personal Finance sources and display the data in a usable (JSON, CSV, etc) manner. Recently we tried to hire someone online via platforms like Fivver/Upwork, and we realised that even if WE submit our own hire and use those platforms to pay, it would be very expensive for us.
So, I thought of building this solution, which uses the powers of web3, and the same submission rules, to provide a similar experience as those platforms with none of the fees (except for gas fees of course).
What it does
There are 2 key stakeholders:
- Bounty Setters
Bounty Solvers
Bounty Setters can: a. Set a bounty and set a bounty amount on the bounty. b. Look at solutions submitted to their bounty. c. Approve a solution, transferring the money to the solver. d. Reject a solution, removing it from the valid solutions pool.
Bounty Solvers can: a. Look at all available bounties, or all unsolved bounties. b. Look at solutions of a bounty (checking if their solution was accepted). c. Submitting a solution.
There's a possibility where solvers might submit a solution, however bounty setter goes AWOL. However, there's no way that the bounty setter can get back the bounty on setting a bounty. There's a fallback built in here. If the bounty setter goes AWOL, and there are solutions which are >14 days old, anyone can trigger a check which distributes the bounty amount among all solvers.
How we built it
We built the solution in Solidity in the Remix IDE. Although since the language is so new that there are no good tutorials online, we still managed to do a lot of trial & error through beginner tutorials and make something great.
Challenges we ran into
Solidity has various limitations we had to overcome. Including:
- Inability to have nested structs inside structs.
- Inability to return mappings with nested structs/mappings.
- Having a less than ideal IDE experience, poor type hinting, no code formatting, etc.
However, we were able to circumvent most of those and create a good experience.
Accomplishments that we're proud of
- Ability to have complex relations inbuilt via mappings (somewhat like a DB).
- Ability to store and transfer money between accounts.
- Complete usability and interactibility only via Smart Contracts (UI can be added but isn't necessary).
What we learned
- How to write safe code in Solidity.
- End-to-end deployment process of a smart contract.
- How rules inside of various freelance platforms (fivver, upwork) exist.
What's next for Web3 Bounties
- Creating a UI to make it more accessible to laypeople.
- Doing a soft launch among some creators and freelancers to test it out.
Built With
- ethereum
- remix
- solidity
Log in or sign up for Devpost to join the conversation.