A decentralized application (dApp) built on the Polkadot blockchain that aggregates freelance credentials into portable, verifiable NFT-based digital identities.
⚡ 5-Minute Setup - Complete setup with wallet funding in one command:
# Clone the repository
git clone <repository-url>
cd freelanceforge
# Run complete judge setup (installs everything + funds wallet)
./setup-and-run.sh judgeThis will:
- ✅ Install all dependencies
- ✅ Build the project
- ✅ Start both services
- ✅ Fund your wallet with test tokens
- ✅ Open the application ready for testing
📖 Quick Guide: JUDGE_QUICKSTART.md | Detailed Guide: JUDGE_SETUP.md
Prerequisites: Linux or macOS system with internet connection
# Clone and setup everything
git clone <repository-url>
cd freelanceforge
./setup-and-run.sh setupThen start the application:
./setup-and-run.sh run✅ That's it! Access at http://localhost:5173
📖 For detailed instructions: See QUICKSTART.md
The setup script will automatically install:
- System dependencies (build tools, SSL libraries, etc.)
- Rust with wasm32 target
- Node.js 18+
- psvm (Polkadot SDK Version Manager)
- All project dependencies
If you prefer to install dependencies manually:
Prerequisites:
- Node.js (v18 or higher)
- Rust (latest stable with wasm32 target)
- psvm - Polkadot SDK Version Manager (
cargo install psvm) - System dependencies:
pkg-config,libssl-dev(Ubuntu/Debian) oropenssl-devel(Fedora) - Polkadot.js Extension for wallet integration
-
Clone the repository
git clone <repository-url> cd freelanceforge
-
Install system dependencies (Ubuntu/Debian)
sudo apt-get update sudo apt-get install -y pkg-config libssl-dev build-essential clang cmake protobuf-compiler
-
Install Rust and wasm32 target
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh source ~/.cargo/env rustup target add wasm32-unknown-unknown
-
Install psvm (Polkadot SDK Version Manager)
cargo install psvm
-
Setup Polkadot SDK version
cd substrate-node psvm -v "1.17.0" cd ..
-
Install dependencies and build
npm run setup
-
Start development environment
npm run dev
This will start:
- Substrate node on
ws://localhost:9944(WebSocket) andhttp://localhost:9933(RPC) - React frontend on
http://localhost:5173
- Substrate node on
Start Substrate node:
npm run dev:substrateStart React frontend:
npm run dev:frontendfreelanceforge/
├── substrate-node/ # Substrate blockchain node
│ ├── node/ # Node implementation
│ ├── runtime/ # Runtime logic
│ ├── pallets/ # Custom pallets
│ └── Dockerfile # Container configuration
├── frontend/ # React.js frontend application
│ ├── src/ # Source code
│ ├── public/ # Static assets
│ ├── Dockerfile # Container configuration
│ └── package.json # Dependencies and scripts
├── docs/ # Documentation
├── setup-and-run.sh # Local development script
└── package.json # Root project scripts
-
npm run setup- Install all dependencies and build the project -
npm run dev- Start full development environment (Substrate + Frontend) -
npm run start- Alias fornpm run dev -
npm run judge- Complete judge setup (setup + run + fund wallet) -
npm run fund- Fund a wallet address with test tokens -
npm run build- Build both frontend and substrate node -
npm run clean- Clean build artifacts -
npm run help- Show available commands
-
./setup-and-run.sh setup- Complete setup from scratch -
./setup-and-run.sh run- Start the application -
./setup-and-run.sh judge- Judge setup (recommended for evaluation) -
./setup-and-run.sh fund <address>- Fund specific wallet address -
./setup-and-run.sh clean- Clean build artifacts -
./setup-and-run.sh help- Show help
Frontend (.env)
REACT_APP_WS_PROVIDER=ws://localhost:9944
REACT_APP_NETWORK=local
- Local Development:
- WebSocket:
ws://localhost:9944 - RPC:
http://localhost:9933 - Frontend:
http://localhost:5173
- WebSocket:
- Paseo Testnet:
wss://paseo.dotters.network(for production deployment)
- Judge Setup Guide - Complete setup guide for judges/evaluators
- Setup Guide - Comprehensive setup and development guide
- psvm Guide - Polkadot SDK Version Manager documentation
- Development Setup - Additional development resources
- Implementation Tasks - Detailed task breakdown
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
Built with ❤️ for the Polkadot ecosystem