Reqmo is an open-source, config-driven on-demand dispatch platform.
packages/backend: dispatch engine, routing and telephony APIpackages/shared: shared defaults and constantspackages/web: dispatcher/admin web UI (Vue + Vuetify)packages/web/simulation: bus movement simulator UI (GPS + passenger event sender)mobile/reqmo_mobile: Flutter mobile baseline
From repository root:
node --import tsx packages/backend/src/api/server.tsAPI examples:
GET /api/healthPOST /api/ride-requestsPOST /api/phone-ridesPOST /api/telephony/ingest
Dispatch scoring weights are controlled by serviceProfile.dispatchPolicy.weights.
- Default values are defined in
packages/shared/src/defaults.ts. - Tenant-specific values are typically provided via seed/config and can be updated by
POST /api/service-profiles. - Scoring implementation is in
packages/backend/src/dispatch/insertion.ts. - To suppress excessive in-vehicle detours for newly inserted rides,
rideTimeDetouris treated with a minimum effective weight:effectiveRideTimeDetourWeight = max(configuredRideTimeDetourWeight, 0.3)
日本語:
- 配車スコアの重みは
serviceProfile.dispatchPolicy.weightsで管理されます。 - 既定値は
packages/shared/src/defaults.tsにあります。 - テナント別の値はシード/設定で与えられ、
POST /api/service-profilesでも更新できます。 - スコア計算の実装は
packages/backend/src/dispatch/insertion.tsです。 - 新規挿入時の過度な連れ回し抑制のため、
rideTimeDetourは実効値としてmax(configuredRideTimeDetourWeight, 0.3)を使用します。
You can set serviceProfile.dispatchPolicy.algorithmPrimary (or fallback) to HIGHS.
HIGHSevaluates insertion candidates and selects one via an MIP "choose-one" model usinghighs-solver.- If
highs-solveris unavailable or fails, dispatch safely falls back to the configured fallback algorithm. - Optional tuning:
serviceProfile.dispatchPolicy.highs.timeLimitSec(default0.5). - To force-disable HiGHS at runtime:
REQMO_DISABLE_HIGHS_SOLVER=true.
日本語:
serviceProfile.dispatchPolicy.algorithmPrimary(またはfallback)にHIGHSを設定できます。HIGHSは挿入候補を作り、highs-solverのMIP(1件選択)で候補を選びます。highs-solverが利用不可・失敗時は、設定済みのフォールバックアルゴリズムへ安全に退避します。- 任意設定:
serviceProfile.dispatchPolicy.highs.timeLimitSec(既定0.5秒)。 - 実行時にHiGHSを無効化する場合:
REQMO_DISABLE_HIGHS_SOLVER=true。
Repository adapter:
REPOSITORY_ADAPTER=memory(default)REPOSITORY_ADAPTER=firestoreREQMO_TENANT_ID=tenant_default(used in Firestore mode)
The backend can load generic seed data by environment variable:
SEED_BUNDLE_PATHSEED_STOPS_PATHSEED_SERVICE_PROFILE_PATHSEED_FARE_POLICY_PATHSEED_TELEPHONY_CONFIG_PATHSEED_OVERWRITE_EXISTING(trueto force seed data overwrite)
cd mobile/reqmo_mobile
flutter test