This platform leverages Web3 technologies to create a decentralized data labeling and crowdsourced task system. Users can submit tasks with descriptions and images and offer rewards in SOL, while workers can complete these tasks to earn SOL. The system integrates with Phantom Wallet for secure and seamless Solana blockchain interactions.
- Connect to Phantom Wallet for signing and transactions.
- Submit tasks with descriptions and images.
- Set bounties in SOL for task completion.
- Workers can accept tasks and earn SOL upon completion.
- Secure backend for handling on-chain transactions.
- Node.js and npm installed.
- Phantom Wallet browser extension.
- Solana CLI and wallet setup.
- PostgreSQL database.
- AWS CLI configured with AWS services.
Navigate to each project directory and install the required dependencies:
# Install backend dependencies
cd backend && npm install
# Install user frontend dependencies
cd user-frontend && npm install
# Install worker frontend dependencies
cd worker-frontend && npm install
To start the backend server, navigate to the backend
directory:
cd backend
tsc -b
node dist/index.js
To submit tasks, first navigate to the user-frontend directory and start the frontend application:
cd user-frontend
npm run dev
Connect your Phantom Wallet using the "Connect Wallet" button on the UI. Fill in the task description in the provided input field. Upload the required images using the file upload interface. Submit the task along with the SOL payment by following the UI prompts.
Workers can access and complete tasks by navigating to the worker-frontend directory and starting the frontend application:
cd worker-frontend
npm run dev
Connect your Phantom Wallet using the "Connect Wallet" button on the UI. View the list of available tasks and accept one that you wish to work on. Complete the task according to the provided instructions. Request payouts for your completed tasks through the UI interface.
Backend Provide the RPC API endpoint and parent wallet addresses in the user.ts and worker.ts files within the backend/src directory.
For user.ts: const PARENT_WALLET_ADDRESS = 'YourParentWalletPublicKeyHere';
For worker.ts: const PARENT_WALLET_ADDRESS = 'YourParentWalletPublicKeyHere';
Remember to replace 'YourParentWalletPublicKeyHere' with the actual public key of the parent wallet that will be used to receive and send SOL.