Welcome to the Freelance Job Marketplace, a decentralized platform built on the Aptos Blockchain. This marketplace allows clients to post jobs and freelancers to apply, accept, and complete tasks, all while securely managing payments using smart contracts on Aptos. Enjoy a transparent, secure, and decentralized experience.
- Live Demo: Freelance Marketplace
- Smart Contract Explorer: Aptos Explorer
- Job Posting and Management: Clients can post, view, and manage jobs, tracking their progress and status.
- Freelancer Interaction: Freelancers can browse available jobs, accept tasks, mark jobs as completed, and receive payments.
- Blockchain-Powered Payments: Payments are managed securely through smart contracts on Aptos, ensuring trust and transparency.
- Progress Tracking: Jobs display real-time status updates, such as assigned, in progress, and completed.
- Wallet Integration: Easily connect your Aptos wallet (e.g., Petra Wallet) to perform all interactions on the blockchain.
Ensure the following are installed:
- Node.js: v16 or higher
- npm: v7 or higher (comes with Node.js)
- Aptos Wallet (e.g., Petra Wallet) for transactions
cd freelance-marketplace
npm install
Create a .env
file in the root directory with the following:
VITE_MODULE_ADDRESS=0xaf12ecd9cf6578db88443a384a2d028e67ecda31cf0f441072d22201da3c0072
VITE_APP_NETWORK=testnet
Update the module address if you deploy the contract to a new address.
npm run dev
The app will be available at http://localhost:5173.
To deploy the smart contract:
-
Install Aptos CLI.
-
Update the Move.toml file with your wallet address:
- Add you Wallet Address from Petra here
job_addrx = "0xca10b0176c34f9a8315589ff977645e04497814e9753d21f7d7e7c3d83aa7b57"
- Add your Account addr here for Deployment
my_addrx = "af12ecd9cf6578db88443a384a2d028e67ecda31cf0f441072d22201da3c0072"
-
Create your new Address for Deployment
aptos init
-
Compile and publish the contract:
aptos move compile aptos move publish
- Click "Connect Wallet" to link your Aptos wallet (e.g., Petra).
- This allows you to post jobs, apply for tasks, and receive payments securely on the blockchain.
- Post a Job: Enter job details such as description, payment amount (APT), and deadline.
- View and Track Jobs: Navigate to the My Jobs section to see all jobs posted and track their status.
- Browse Jobs: View available jobs that haven't been assigned to freelancers.
- Apply for Jobs: Choose a suitable job and click "Apply for Job" to accept it.
- Complete Jobs: Once done, click "Complete Job" to notify the client.
- Receive Payments: Upon completion, payments will be processed and transferred in APT as per the smart contract.
- Job statuses include available, in progress, and completed.
- Clients can monitor job progress and see if tasks are accepted or finished.
- Freelancers can view jobs they've accepted and track their own progress.
npm run dev
: Start the development server locally.npm run build
: Build the project for production.npm test
: Run unit tests (if configured).
- React: For building the user interface.
- TypeScript: For type-safe JavaScript.
- Aptos SDK: For blockchain interactions.
- Ant Design / Tailwind CSS: For modern UI and responsive design.
- Petra Wallet Adapter: For connecting the Aptos wallet.
- View All Jobs: Displays a list of all available jobs on the platform.
- View Jobs by Client: Shows jobs posted by a specific client address.
- View Jobs by Freelancer: Displays tasks accepted or completed by a freelancer.
- View Job by ID: Provides detailed information about a specific job.
- Smart Contracts: Handle payments and job statuses directly on the blockchain.
- No Middlemen: Payments are processed directly between clients and freelancers.
- Progress Tracking: Both parties can track job statuses and payments in real-time.
- Wallet Connection Issues: Ensure the Aptos wallet extension is installed and active.
- RPC Rate Limits: Use private RPC providers like Alchemy to avoid limits.
- Transaction Errors: Confirm the wallet has sufficient balance and permissions.
If deploying to Vercel, follow these tips to avoid RPC request limits:
- Use third-party RPC providers (e.g., Alchemy, QuickNode).
- Implement request throttling to reduce load.
- Use WebSockets for real-time updates on job statuses and payments.
The Freelance Job Marketplace provides a decentralized way for clients and freelancers to collaborate securely, with payments managed directly on the Aptos blockchain. This transparent and user-friendly platform ensures trust and efficiency, making it easy to post, accept, and complete jobs without intermediaries. Start your journey today!