Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 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