Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/unit-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
strategy:
fail-fast: false
matrix:
node-version: [20, 22]
node-version: [22, 24]

steps:
- name: Checkout
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,4 @@ dataform/.df-credentials.json
playwright-report/
test-results/
data/
.local/
29 changes: 29 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@

- `apps/`: Cloud Run ジョブ/サービス
- `dataform/`: Dataform 定義
- `frontend/`: 補給地点マップの静的 UI
- `terraform/`: IaC
- `skills/`: 本リポジトリ用の作業スキル

Expand Down Expand Up @@ -130,6 +131,34 @@ npm run bq:upsert:geocoded -- \
- 取得元データに存在しない場合、`detail_url` は出力しません
- `bq:upsert:geocoded` は `schemas/raw/stores_geocoded.json` を使って一時テーブルへロードし、`chain + store_id` 単位で最新 `geocoded_at` を残す Upsert を行います

## 補給地点マップ(ローカルMVP)

`mart.rideoasis_supply_points` をローカル `sqlite` にエクスポートし、GPX 経路の近傍にある補給地点を OpenLayers で確認できます。

1. BigQuery からローカル DB を作る

```bash
npm run export:map-db -- \
--project your-gcp-project \
--output ./.local/rideoasis-map.db
```

2. ローカルサーバを起動する

```bash
npm run map:serve -- --db ./.local/rideoasis-map.db --port 8787
```

3. ブラウザで `http://localhost:8787` を開き、GPX ファイルを選ぶ

MVP の仕様:

- API は `GET /api/supply-points` を返します
- サーバ側では `bbox` / `chains` / `min_point_level` / `limit` で絞り込みます
- 経路からの最短距離判定はブラウザ側で行います
Comment thread
ochanuco marked this conversation as resolved.
- 近傍距離はメートルで調整できます
- `node:sqlite` を使うため、ローカル実行は Node.js `>=22.5.0` 前提です

## 注意事項

- クローリング対象サイトの利用規約/robots を確認し、アクセス頻度を制限します。
Expand Down
Loading
Loading