Inspiration
My project is inspired by web2 platform TaskRabbit but with improvements and extended scope in this web3 version.
What it does
EasyHire is the first fully decentralized platform to connect people in need of help with local Taskers. EasyHire allows any individual to create their profile and list down the task(s) that they are best at and their hourly rate for the task completion. Users can search for taskers in their local area and hire them.
- As a tasker, you can get paid to what you love, when and where you want.
- As a user, you can hire taskers based on your time, budget and need.
EasyHire Benefits (Web3 vs Web2)
- Scope extended to use platform for hiring in any area like smart contract developer, frontend developer, cleaning, handy services with ability to upload your resume on IPFS.
- Payments are made in crypto using Superfluid streams, so you pay/get paid for each second you worked. No guessing or recording time spent.
- Decentralized communication & notifications via Push Protocol
- Fast and hassle-free registration via smart contract on Polygon vs web2 version which can take up to 4 business days with additional step of documentation.
- OTP generation to start and stop the superfluid streams using Chainlink VRF.
How I built it
EasyHire Architecture
Smart Contract Using Remix smart contract is deployed on Polygon mumbai testnet https://mumbai.polygonscan.com/address/0xAc729AC887Cad2D5134D25d256416318af44E10b
IPFS/Filecoin
- All the tasker photos are stored on IPFS and the IPFS hash are stored on the table to display the images on runtime when the user searches for the tasker.
- The supporting documents are also uploaded to IPFS using Moralis saveIPFS() method. The link to these documents are available in the tasker profile display and users can click on them to view the content.
Chainlink VRF
- The One-time-password (OTP) is used to start and stop the superfluid payment service. This OTP is generated using Chainlink VRF V2 subscription menthod.
Push Protocol
- There is an Push Inbox tab in the dApp to integrate the UI for convenience.
- When the tasker creates the profile they are automatically prompted to 'Opt-in' the channel
- When the user first contacts the tasker they are automatically prompted to 'Opt-in' the channel
- Following is the flow of notifications that are sent by the dApp to have communication between the tasker and the user. a. When tasker creates their profile, a notification is sent to them as a confirmation once the smart contract transaction is successfully completed b. When a user clicks on 'Email tasker', a notification is sent to the tasker with the job description/details. c. Tasker can 'Confirm' or 'Decline' to the job offer. Both these events trigger a notification to the user. d. When the user starts the service from the dashboard an OTP is sent to the tasker e. When the user stops the service from the dashboard an OTP is sent to the tasker f. When the user gives rating to the tasker from their profile display, tasker gets a notification g. When the user add tip for the tasker, they get a notification
Superfluid EasyHire payment flow is achieved by integrating with Superfluid - Stream from frontend
- The payments are done in fDAIx super token
- From the 'My Dashboard', user can start the stream by clicking on 'Start Stream', this will initiate the flow from user to tasker. Before starting the flow dApp checks if there is certain amount of fDAIx balance for the user. If not, user is prompted with alert message.
- They can easily wrap their fDAI token to fDAIx token by going to the Superfluid Console right from the dApp.
- Once the stream starts, both the tasker and user can see their active streams from the console right from the dApp. The payment status on the dashboard is updated as 'Streaming'
- The Flowrate (wei/sec) is calculated and displayed dynamically to the user based on each tasker's hourly rate.
- From the 'My Dashboard', user can stop the stream by clicking on 'Stop Stream', this will delete the stream.
Database This dApp is built on Moralis boilerplate using features like moralis-react, web3, authentication, event logging and to store data off-chain for tasker profiles.
Accomplishments that I am proud of
- The idea creation, planning, development and executing it within few weeks.
- Did 'on-the-job' front-end learning to design my dApp
- Solo developer to build the dApp in a short span
What I learned
- Learned the new Chainlink VRF using subscription method
- Learned how to integrate with Push and Superfluid protocols
- Got more hands-on experience in building the frontend
What's next for EasyHire
- Deploy to mainnet
- Add payment in other tokens
Log in or sign up for Devpost to join the conversation.