SkillSnap is a blockchain-powered platform where users can post tasks and get them completed by skilled individuals in their local area. Think of it as a decentralized TaskRabbit with crypto payments, location-based matching, and smart contract automation.
- 🔗 Blockchain Integration: Smart contracts on Ethereum for secure, trustless transactions
- 🗺️ Location-Based Matching: Interactive maps to find tasks near you
- 💼 Skill Categories: Digital services, physical tasks, consulting, and more
- 🔐 Wallet Integration: Connect with MetaMask, WalletConnect, and other popular wallets
- 💰 Crypto Payments: Automatic escrow and payments in ETH
- ⭐ Reputation System: Build trust through completed tasks and reviews
- 📱 Responsive Design: Works seamlessly on desktop and mobile
skillsnap/
├── smart-contracts/ # Solidity smart contracts
│ ├── contracts/
│ │ └── SkillSnap.sol # Main contract
│ ├── test/ # Contract tests
│ ├── scripts/ # Deployment scripts
│ └── hardhat.config.js # Hardhat configuration
├── frontend/ # React + Vite frontend
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Application pages
│ │ ├── config.js # App configuration
│ │ └── App.jsx # Main App component
│ ├── public/ # Static assets
│ └── package.json # Frontend dependencies
└── README.md # This file
- Node.js (v16 or higher)
- npm or yarn
- MetaMask or another Web3 wallet
git clone <your-repo-url>
cd skillsnapcd smart-contracts
npm installCreate .env file:
PRIVATE_KEY=your_private_key_here
INFURA_API_KEY=your_infura_key_here
ETHERSCAN_API_KEY=your_etherscan_key_hereCompile and test contracts:
npx hardhat compile
npx hardhat testDeploy to testnet:
npx hardhat run scripts/deploy.js --network sepoliacd ../frontend
npm installCreate .env file:
VITE_MAPBOX_API=your_mapbox_token_here
VITE_CONTRACT_ADDRESS=deployed_contract_address
VITE_NETWORK_ID=11155111Start development server:
npm run devPRIVATE_KEY: Your wallet private key for deploymentINFURA_API_KEY: Infura project API keyETHERSCAN_API_KEY: For contract verification
VITE_MAPBOX_API: Mapbox access token for mapsVITE_CONTRACT_ADDRESS: Deployed smart contract addressVITE_NETWORK_ID: Ethereum network ID (11155111 for Sepolia)
- Mapbox: Get a free API key at mapbox.com
- Infura: Create a project at infura.io
- Etherscan: Get API key at etherscan.io
createTask(): Post a new task with escrowacceptTask(): Accept an available taskcompleteTask(): Mark task as completed and release paymentcancelTask(): Cancel a posted taskraiseDispute(): Initiate dispute resolution
- Escrow system for secure payments
- Role-based access control
- Emergency pause functionality
- Anti-reentrancy protection
// Frontend interaction
const tx = await skillSnapContract.createTask(
"Help me move furniture",
"Need help moving couch and boxes",
"Boston, MA",
"Physical",
deadline,
{ value: ethers.utils.parseEther("0.05") }
);const tx = await skillSnapContract.acceptTask(taskId);- Phase 1: Core marketplace functionality ✅
- Phase 2: Reputation system and reviews
- Phase 3: Multi-token payments (USDC, DAI)
- Phase 4: Mobile app (React Native)
- Phase 5: DAO governance for disputes
- Phase 6: Integration with major gig platforms
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature - Commit changes:
git commit -am 'Add some feature' - Push to branch:
git push origin feature/your-feature - Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
cd smart-contracts
npx hardhat test
npx hardhat coveragecd frontend
npm test
npm run test:e2egraph TB
A[User] --> B[React Frontend]
B --> C[Ethers.js]
C --> D[SkillSnap Contract]
D --> E[Ethereum Blockchain]
B --> F[Mapbox Maps]
B --> G[Wallet Provider]
- Documentation: docs.skillsnap.dev
- Discord: Join our community
- Twitter: @SkillSnapDeFi
- Email: support@skillsnap.dev
- OpenZeppelin for secure smart contract patterns
- Hardhat for development framework
- React and Vite for frontend framework
- Mapbox for location services
Built with ❤️ for the decentralized future