This guide walks a new developer from zero to a running local stack on macOS, Linux, and Windows (WSL2).
- Git (>=2.30)
- Node.js 18.x (use
nvmto manage versions) - Rust (stable) +
wasm32-unknown-unknowntarget soroban-cli(see Soroban docs)- Python 3.11+
- Docker 23+ and Docker Compose v2
- Freighter wallet browser extension for local testing
git clone https://github.com/dev-fatima-24/VacciChain.git
cd VacciChain
cp .env.example .envOpen .env and set HORIZON_URL, SOROBAN_RPC_URL, ADMIN_SECRET_KEY, ADMIN_PUBLIC_KEY, and VACCINATIONS_CONTRACT_ID (if already deployed).
cd backend
npm cicd ../frontend
npm cicd ../python-service
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtcd contracts
rustup target add wasm32-unknown-unknown
make build
# Export keys to env or update .env
make deploy
# Note CONTRACT_ID output — add to .env as VACCINATIONS_CONTRACT_IDCommon errors:
- "wasm target missing": run
rustup target add wasm32-unknown-unknown - "soroban not found": ensure
soroban-cliis installed and on PATH
# from repo root
docker compose up --buildServices:
- Frontend: http://localhost:3000
- Backend: http://localhost:4000
- Python analytics: http://localhost:8001
Open separate terminals:
# backend
cd backend && npm run dev
# frontend
cd frontend && npm run dev
# python service
cd python-service && uvicorn main:app --port 8001 --reload- Visit the frontend and connect Freighter (ensure Testnet)
- Use the issuer flow to mint a test record
- Call
GET /verify/:walletto confirm on-chain verification
- "Cannot connect to Horizon": verify
HORIZON_URLand network settings - "Contract not found": ensure
VACCINATIONS_CONTRACT_IDis set and contract deployed to the chosen network - SEP-10 errors: check
SEP10_SERVER_KEYand system time (NTP)
If you hit a blocker, open an issue including your OS, Node/Rust versions, and the output of the failing command.