Why ValidWorks?
Freelance jobs are becoming increasingly popular. However, current platforms that serve as a marketplace for such freelance gigs takes a huge cut from the transaction for both parties and might serve as a hindrance for developers to take up freelancing as a career. ValidWorks is the answer to this problem. It is a fully decentralised solution to allow freelancers and clients to have full control over their gigs as well as how they want to structure their pricing, while leveraging on the power of blockchain to allow a trustless and seamless transaction.
How does it work?
To prevent users from scamming on the site, we at ValidWorks pioneered a unique escrow mechanism that gives both the buyers and sellers a peace of mind during the transaction.
- The seller would first list a gig
- Prospective buyers would first link up with the seller
- After both party comes to a consensus on the details of the gig, the buyer would place an order.
- The buyer would send a payment to the smart contract along with a small deposit.
- After the gig is completed, the payment would be released to the seller and the deposit would be returned back to the buyer.
- Frontend: react.js
- Backend: Moralis, erdjs for communication with the smart contract
- Payment gateway: Elrond smart contracts
In the project directory, you can run:
A test user is created in development mode. test:password
yarn start // Runs the app in development mode
tarn test // Launches the test runner in interactive watch mode
yarn build // builds the app for production to the build folder
Frontend
- Login
- Dashboard
- Stats on the website
- My Orders
- View the gigs that I have ordered
- My Gigs
- View the gigs that I have posted
- Reviews
- Marketplace
- Explore new gig postings
- Category page
- Sub category page
- Searching of gigs
- Filtering of gigs
- User Profile
- Selection of skill sets
- Linking elrond wallet to the account
- Edit Profile
- Uploading of profile photo using IPFS
- View Profile
- User ACL (only allow the editing of the profile by the current authenticated user)
- Password reset when the user forgets the password
- Gig page
- Posting of a gig
- Viewing of a gig
- Gig ACL (only allow the editing of the gig by the one who posted)
- Ordering of a gig
- Setting of deadline
- Deposit into a gig
- Confirmation of a gig
- Claim payment
- Cancelling of a gig
Backend
-
Database needed
- User (username, email, password, bio, erdaddr, emailVerified)
- Category (name, imageUrl)
- SubCategory extends Category (name, categoryId, imageUrl?)
- Gig extends SubCategory (title, price, subCategoryId, description, sellerId)
- Order extends Gig (gigId, buyerId, sellerId, txHash, status)
-
Addition Database
- Pricing extends Gig // For different pricing tiers depending on the complexity of the gig
Current problem faced
- Redirection through a promise
- Linking wallet to account
- "Kickstarter" for community projects
- ValidWorks token