
next-generation freelance ecosystem powered by blockchains
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
Table of Contents
Whiz is a blockchain-based global freelancing platform that offers verified high quality jobs and freelancers at low costs. Whiz does not charge commissions. You can save on what traditional freelance platforms charge as commissions for job matching. Whiz uses blockchains to process and log transactions, including reviews. This translates to authentic and immutable reviews, better quality jobs and freelancers, and cost savings.
Job agreements are written in smart contracts, coupled with payment escrow, onto the blockchain. When you enter a job agreement on Whiz, whether as a hirer or freelancer, the job scope is mutually defined and cannot be changed by either party. Payment is committed by the buyer, but locked away from either party into the smart contract until its fulfilment. Whiz does not have access to these funds at any point in time.
Key Benefits of Whiz:
- Access to Qualified Freelancers Globally
- Smart Contracts ensure Well-Defined Scopes & Payments
- Enjoy Zero Commission Fees, Only Pay For What You Need
In a nutshell, Whiz provides secure, traceable, reliable payments using smart contracts enabled via the blockchain. All your pain points with other freelancing platforms are well taken care off!
Whiz runs on a hybrid technology stack that employs the blockchain along with modern web technologies. The frontend client is built using HTML5, CSS3, and JavaScript. It is hosted on a web server and can be accessed via web browsers or installed on mobile devices as a progressive web application (PWA).
The backend components are hosted using a state-of-the-art serverless computing architecture by means of the MongoDB Atlas and MongoDB Realm services. A secured connection between the business functions in MongoDB Realm and the MongoDB Atlas database allows for the processing of information required for the web application to function. By adopting a serverless architecture, we further lower our overhead operating and maintenance costs resulting in significant efficiency gains.
Key Technologies Used:
We use web3.js to facilitate blockchain transactions, login and registration. You will need to have a Web3 compatible wallet installed on your browser and connected to the Polygon Testnet.
If you have not already done so, please install MetaMask wallet on your device.
You will need to be connected to the Mumbai Testnet on Polygon.
- Please refer to the following guide: Connect to Polygon's Testnet.
The following video shows an example of a completed workflow. Starting from the homepage, to the freelancer applying for and completing a job, followed by confirmation and payment.
WhizDemo.mp4
For more details, please refer to FAQ
These are the frontend pages and their related features.
# | Name | File | Description | Features |
---|---|---|---|---|
1 | Landing Page | index.html | The landing page to introduce users to our platform |
|
2 | Login Page | login.html | The login paged allows users to login to the platform using their metamask. Users whose metamask id is not registered, will be redirected to registration |
|
3 | Freelancer Registration Page | register-freelancer.html | The freelancer registration page allows a new user to create a freelancer account on the platform |
|
4 | Hirer Registration Page | register-hirer.html | The hirer registration page allows a new user to create a hirer account on the platform |
|
5 | Hirer Dashboard | dashboard-hirer.html | The hirer dashboard page allows a the hirer to view recommended freelancers, their jobs in progress, jobs open for application, completed jobs, and reviews |
|
6 | Freelancer Dashboard | dashboard-freelancer.html | The freelancer dashboard page allows a the freelancer to view the recommended jobs, jobs in progress, jobs applied for, completed jobs, and reviews |
|
7 | Create Gig Page | create-gig.html | The create gig page allows a hirer to post a job on the platform |
|
8 | Gig Search Page | gig-search.html | The gig search page allows a freelancer to view jobs on the platform |
|
9 | Gig Info Page | gig-info.html | The gig info page allows a freelancer to view the job details and apply for the job |
|
10 | Select Freelancer Page | select-freelancer.html | The select freelancer page allows a hirer to select a freelancer for the job |
|
11 | Contract Page | contract.html | The contract page allows the hirer to confirm the escrowing of funds after selecting the freelancer and initialise the smart contract |
|
12 | Complete Gig Freelancer Page | complete-gig-fl.html | The complete gig freelancer page allows the freelancer to confirm the completion of the job and leave a review for the hirer |
|
13 | Complete Gig Hirer Page | complete-gig-hr.html | The complete gig hirer page allows the hirer to confirm the delivery of the job and leave a review for the freelancer |
|
14 | Badges Page | badges.html | The badges page allows a user to view the badges they have earned and their current experience and progress towards being a WHIZard |
|
15 | Premium Features Page | premium-features.html | The premium features page allows a user to view the premium features available for purchase or in exchange for the WHIZ tokens they have earned |
|
16 | FAQ Page | FAQ.html | The FAQ page allows a user to view the frequently asked questions and answers |
|
17 | Freelancer Profile Page | freelancer-profile.html | The freelancer profile page allows a freelancer to view their profile |
|
18 | 404 Page | 404.html | The 404 page is displayed when a user tries to access a page that does not exist |
|
API endpoints to handle freelancer related functions.
Endpoint | Description | Parameters | Method |
---|---|---|---|
loginFreelancer | Login for freelancers | metamask | POST |
registerFreelancer | Registration for freelancers | email, metamask, country of residence, full name, country of issued id, languages, skills | POST |
viewFlSkills | Returns the details of a specific freelancer based on the freelancer id | Freelancer ID | POST |
viewFreelancer | Returns all freelancers | NA | GET |
updateFreelancer | updates a specified field for freelancer records that meet the requirements | metamask (or any other field but endpoint must be edited accordingly) | POST |
API endpoints to handle hirer related functions.
Endpoint | Description | Parameters | Method |
---|---|---|---|
createHirer | creates a new hirer record when a hirer registers | email, metamask, country of operations, company name, full name, country of issued id, skills required, industry, languages required | POST |
viewHirer | Returns details of specified hirer based on hirer ID | Hirer ID | POST |
loginHirer | Login for hirers | metamask | POST |
editHirer | updates a specified field for hirer records that meet the requirements | background img file (or any other field but endpoint must be edited accordingly) | POST |
API endpoints to handle job related functions.
Endpoint | Description | Parameters | Method |
---|---|---|---|
viewJobs | Returns all jobs with a status of open | NA | GET |
createGig | Creates a new gig | title, budget, description, deadline, skills required, location, hirer, hirer name, background, date created | POST |
jobInfo | Returns the details of a specific job | job ID | POST |
bidJob | applies for the job and adds the freelancer to the array of applicants | freelancer ID, job ID | POST |
confirmJob | confirms the job | job ID, freelancer ID, freelancer name | POST |
completeJob | marks the job as completed | job ID | POST |
appliedJobs | returns all jobs that the freelancer has applied for | freelancer ID | POST |
jobsinProgress | returns all jobs that the freelancer is currently working on | freelancer ID | POST |
completedJobs | returns all jobs that the freelancer has completed | freelancer ID | POST |
recommendedJobs | returns all jobs that is recommended to the freelancer | skills | POST |
hirerjobsopenforapplication | returns all jobs that the hirer has open for application | hirer ID | POST |
hirerjobsinProgress | returns all jobs that the hirer has with an assigned freelancer with a status of ASSIGNED or DELIVERED | hirer ID | POST |
hirercompletedJobs | returns all jobs that the hirer has with an assigned freelancer with a status of COMPLETED | hirer ID | POST |
API endpoints to handle review related functions.
Endpoint | Description | Parameters | Method |
---|---|---|---|
flReviews | Creates a new review | review ID, reviewer and reviewee metamask, ratings, comments, job details | POST |
getReview | Returns the details of a specific review | job ID | POST |
These are the smart contracts deployed to the Mumbai Testnet on the Polygon Blockchain. In order to add the tokens to your MetaMask wallet, please refer to: How to add unlisted tokens (custom tokens) in MetaMask.
An ERC-20 testnet token representing the USDC stablecoin.
Source File: USDCToken.sol
Deployed Address: 0xFAFD46f3671b1fcfd7906CAe158C3008c2fFc358
An ERC-20 native token used for issuing rewards for our platform.
Source File: WhizToken.sol
Deployed Address: 0xD2B44b2FF2D07F2b6fad9a728adf176B5639F87B
A smart contract for verified gig reviews to be stored on the blockchain.
Source File: ReviewsContract.sol
Deployed Address: 0xfb8362626ddE20BC9b8f4e323d49b52D89dD98c8
A smart contract to escrow funds, manage gigs, reviews, and issue rewards.
Source File: GigsContract.sol
Deployed Address: 0x9383fB4D8302a17044D34ffbA924a15d9C6Db292
If you have any further questions or comments, please feel free to reach out to any of our core contributors:
We would like to take this opportunity to thank the NUS School of Computing and NUS FinTech Lab for the experience of working on this exciting project!