WallpaperMachine
당신이 사랑하는 배경화면, 맥에서 새롭게 만나보세요
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A web application for trail planning and GPX file processing. Features both client-side tools and serverless API endpoints for route enrichment with POI data and elevation information.
/tools/splitter.html)/tools/planner.html)/tools/enrich.html)around:), not a bounding box, so a long or dog-legged trail does not drag in POIs hundreds of kilometres off-routenwr), so features mapped as areas — a supermarket building, a campsite polygon — are found and reduced to their centre point/tools/compare.html)/tools/daylight.html)/tools/combiner.html)/tools/optimizer.html)# Install dependencies
npm install
# Start dev server (static site only)
npm run dev
# Build for production
npm run build
# Preview production build
npm run preview
# Run with serverless functions (requires Vercel CLI)
vercel dev
npm run dev serves the client-side tools at http://localhost:5173. Tools that call the serverless API (e.g. POI Enrichment) also need vercel dev running on port 3000; with both running, the Vite dev server proxies /api requests to vercel dev automatically.
The project uses Vitest with jsdom for testing. Tests cover the core library modules.
# Run all tests
npm test
# Run tests in watch mode
npm test -- --watch
# Run tests with UI
npm test -- --ui
# Run a specific test file
npm test -- src/lib/distance.test.ts
| File | Coverage |
|---|---|
distance.test.ts | Haversine distance calculations, waypoint filtering |
gpx-parser.test.ts | GPX XML parsing and generation |
csv-processor.test.ts | CSV parsing, unit conversion, resupply detection |
gpx-splitter.test.ts | Track splitting, waypoint association |
sample-test-gpx.test.ts | Integration test with real sample GPX file |
The samples/ directory can contain test data files:
npm run devThe application includes serverless API endpoints for POI and elevation data:
| Endpoint | Description |
|---|---|
POST /api/overpass | Query OpenStreetMap for POIs along a route corridor ({corridor, radiusMeters, types}, max 400 vertices and 10 km radius) or, as a fallback, within a bounding box ({bounds, types}, max 1.5° per side). types must be a non-empty subset of water, camping, resupply, restaurant, transport, emergency. Returns the raw Overpass JSON. |
POST /api/elevation | Get elevation data for a list of coordinates |
GET /api/health | Health check for all external services |
Request bodies for /api/overpass (corridor vertices travel as compact [lat, lon] pairs):
{ "corridor": [[-37.8136, 144.9631], [-37.9, 145.0]], "radiusMeters": 2000, "types": ["water", "resupply"] }
{ "bounds": { "south": -37.9, "north": -37.8, "west": 144.9, "east": 145.0 }, "types": ["water"] }
Features:
X-RateLimit-Remaining)X-Cache: HIT / MISS / BYPASS)503 with Retry-After; other upstream errors as 502Vercel supports both the static site and serverless API functions.
# Install Vercel CLI
npm install -g vercel
# Deploy preview
vercel
# Deploy production
vercel --prod
Create project: Run vercel and follow prompts
Set up Redis: Dashboard → Storage → Create → Upstash for Redis → Connect to project (this provisions KV_REST_API_URL / KV_REST_API_TOKEN; native Upstash UPSTASH_REDIS_REST_URL / UPSTASH_REDIS_REST_TOKEN are also accepted)
Add environment variables:
vercel env add ALLOWED_ORIGINS # Required: comma-separated allowed origins
vercel env add RATE_LIMIT_PER_MINUTE # Optional, default: 10
vercel env add CACHE_TTL_SECONDS # Optional, default: 604800 (7 days)
Security Note: Always configure
ALLOWED_ORIGINSin production (e.g.,https://yourdomain.com,https://www.yourdomain.com). Without this, cross-origin API requests will be denied.
Enable auto-deploy: Dashboard → Settings → Git → Connect repository
curl https://your-url/api/health
# Expected: {"status":"healthy","checks":{"kv":true,"overpass":true,"elevation":true}}