- Node.js 22+
- pnpm 10.33.3+
- Git
# 1. Install dependencies
pnpm install
# 2. Create environment file
cp .env.example .env.local
# 3. Edit .env.local if needed (defaults work for development)pnpm devThis will:
- ✅ Clean ports (3003, 5173, 5174)
- ✅ Start API server on port 3003
- ✅ Start web frontend on port 5174
- ✅ Start documentation on port 5173
Wait for all services to show "ready" before accessing.
Useful for debugging or if you only need specific services:
# Terminal 1: API server
pnpm run --filter @ontology-search/api dev:clean
# Terminal 2: Web frontend
pnpm run --filter @ontology-search/web dev:clean
# Terminal 3: Documentation (optional)
pnpm run --filter @ontology-search/docs devOnce all services are running:
| Service | URL | Notes |
|---|---|---|
| Web UI | http://localhost:5174 | Main search interface |
| API | http://localhost:3003 | Backend API |
| Docs | http://localhost:5173/docs/ | Project documentation |
Cause: The search button is disabled until you type something.
Solution: Type a query in the search box (e.g., "German highways")
Cause: Browser cache from previous sessions.
Solution:
- Hard refresh: Ctrl+Shift+R (Windows/Linux) or Cmd+Shift+R (Mac)
- Or clear browser cache for localhost
Cause: Documentation server not started.
Solution:
# Check if docs are running
curl http://localhost:5173/docs/
# If not, start docs server
pnpm run --filter @ontology-search/docs devCause: Previous dev server wasn't shut down properly.
Solution:
# Clean all development ports
pnpm run clean:ports
# Or clean specific ports
node scripts/clean-ports.mjs 3003 5174 5173
# Then restart services
pnpm devCause: API server crashed or didn't finish warming up.
Solution:
# Check API health
curl http://localhost:3003/health
# Should return: {"status":"ok"}
# Check API stats (also tests database connection)
curl http://localhost:3003/stats
# Should return JSON with asset countsDuring warmup, the API loads 5 sample TTL files: sample-assets.ttl, sample-scenarios.ttl, sample-ositrace.ttl, sample-environment-models.ttl, and sample-surface-models.ttl.
A healthy /stats response should report 267 assets total: 117 HD maps, 50 scenarios, 50 OSI traces, 30 environment models, and 20 surface models.
Wait time: API warmup takes ~8-12 seconds (loading ontologies + creating LLM session)
- Press Ctrl+C in the terminal
- Press Ctrl+C in each terminal
pnpm run clean:portsRun this checklist:
# 1. Check all ports are listening
# Should show 3 entries: 3003, 5173, 5174
netstat -an | findstr "3003 5173 5174"
# 2. Test API
curl http://localhost:3003/health
curl http://localhost:3003/stats
# 3. Test Web (should return HTML)
curl http://localhost:5174
# 4. Test Docs (should return HTML with vitepress)
curl http://localhost:5173/docs/- Open http://localhost:5174
- Type a query: "German highways with motorway"
- Click Search button (should be blue and enabled)
- Wait ~2-5 seconds for results
- Inspect the interpretation panel to see how your query was understood
"simulation assets"→ Cross-domain search (NEW!)"German HD maps with motorway road types"→ Specific domain search"rain scenarios"→ Scenario domain search"maps from France"→ Location filter"motorway maps with 3 lanes"→ Multiple filters
# Make code changes...
# Run validation before committing
pnpm run validate
# This runs:
# - Type checking
# - Linting
# - Formatting check
# - All unit tests- Check logs in the terminal where services are running
- Look for error messages in browser console (F12)
- Verify
.env.localhas correct settings - Ensure ports 3003, 5173, 5174 are not used by other applications