電動スクーターフリート在庫バックエンドテンプレート
バッテリーの健康、モーターのログ、および配備区域の制御
電動スクーター フリートバックエンド が Back4app 上で運用可能です: スクーターの記録、バッテリーの健康チェック、モーターのログ、配備区域の制御を含みます。ERダイアグラム、データ辞書、JSONスキーマ、APIプレイグラウンド、そして迅速なブートストラップのためのAIエージェントプロンプトを含みます。
フリートの要点
このテンプレートは、スクーター在庫、バッテリーの健康、モーターログ、展開ゾーンのためのフリートバックエンドを提供し、オペレーションを紙のチェックからリアルタイムの追跡に移行できます。
- バッテリーの健康状態の追跡 — メンテナンス計画のために、Batteryクラスにバッテリーレベル、サイクル数、健康スコアを保存します。
- モーターログの履歴 — MotorLogにランタイム、温度、障害ノートをキャプチャしてフィールドレビューのために記録します。
- 展開ゾーンの管理 — 各スクーターをDeploymentZoneに結び付けて、配車担当者が地域ごとにカバレッジを管理できるようにします。
電動スクーター艦隊在庫のバックエンドを理解する
二重予約は電動スクーター艦隊において単なる恥ずかしさではありません; それはどのマーケティングキャンペーンよりも早く信頼を損ないます。モデルオペレーター、スクーター、バッテリー、モーターログ、およびBack4appの配備ゾーンを使用して、電動スクーター艦隊チームに、単一のヤードから複数のサイト運営に成長できるバックエンドを提供します。スキーマはオペレーター(ユーザー名、メール、パスワード)、スクーター(艦隊コード、シリアル番号、ステータス、バッテリー、ゾーン)、バッテリー(スクーター、ヘルススコア、充電レベル、サイクル数)、モーターログ(スクーター、稼働分数、温度C、故障コード)、および配備ゾーン(名前、都市、カバレッジ半径Km、アクティブ)をカバーし、認証と艦隊管理が組み込まれています。お気に入りのフロントエンドを接続して、より早く開始してください。
最適:
電動スクーターのフリート:バックエンドスナップショット
電動スクーターのフリートはスピードだけではなく、「それが真実であるとわかった方法を見せて」と誰かに尋ねられたときの防御力についてもです。
ハブはオペレーター、スクーター、およびバッテリーを強調表示し、クライアントスタックを同じエンティティ、フィールド、およびリレーションシップに対して比較できるようにします。
コア電動スクーター艦隊機能
このハブのすべての技術カードは、Operator、Scooter、Battery、MotorLog、およびDeploymentZoneを使用して同じ電動スクーター艦隊スキーマを利用しています。
スリーターの在庫管理
スリーターはfleetCode、serialNumber、status、battery、およびzoneをストアします。
バッテリーの健康状態の追跡
バッテリーはchargeLevel、healthScore、およびcycleCountを保持します。
モーター診断
MotorLogはruntimeMinutes、temperatureC、およびfaultCodeを保存します。
デプロイメントゾーン管理
DeploymentZoneは、名称、市、カバレッジ半径(km)、およびアクティブ状態を定義します。
なぜ Back4app で電動スクーターのフリートバックエンドを構築するのか?
Back4app はオペレーションチームにスクーターの在庫、バッテリーの健康、モーターのログのためのクリーンなホームを提供し、 dispatch とメンテナンス作業が同じデータモデルで維持されます。
- •スクーターとバッテリーの記録は接続されたままです。: スクータークラスはバッテリーとデプロイメントゾーンフィールドを指し、フィールドチェック、スワップ、およびゾーン移動を追跡可能にします。
- •MotorLogのエントリは監査が簡単です: フィールドスタッフがサービスコールの前に何が起こったのかを確認できるように、MotorLogにruntimeMinutes、temperatureC、faultCodeを格納します。
- •追加のインフラなしでのリアルタイムフリート可視化: ダッシュボード、ディスパッチツール、メンテナンスアプリのためにRESTとGraphQLを開いたままにして、スリーターとバッテリーの更新にLive Queriesを使用します。
すべてのクライアントに対して1つのバックエンド契約からスリーター、バッテリー、およびゾーンを管理します。
艦隊の利点
現場作業と配車の決定を実際の艦隊データに結びつけるスクーターのバックエンド。
迅速なメンテナンストリアージ
Battery.healthScoreとMotorLog.faultCodeを使用して、最初に検査が必要なスクーターを決定します。
クリーンなゾーン割り当て
日中にカバレッジが変わるときに、Scooter.zoneをDeploymentZone.nameに対して更新します。
トレース可能なフィールド履歴
サービスチームが再発問題を比較できるように、MotorLog.runtimeMinutesとtemperatureCを保存します。
一貫したディスパッチビュー
車両をサービスに戻す前に、Scooter.statusとBattery.chargeLevelを照会します。
共有の運用契約
Webおよびモバイルツールが同じフリート状態を読み取れるように、スクーター、バッテリー、ログ、およびゾーンフィールドを1つのスキーマにまとめます。
AI支援のブートストラップワークフロー
フリートモデルのために1つの構造化されたプロンプトでバックエンドの足場と統合ガイダンスを生成します。
スクーター フリート アプリの準備はできましたか?
Back4app AIエージェントに電動スクーターフリートのバックエンドを構築させ、1つのプロンプトからスクーター、バッテリー、モーター、ゾーンのワークフローを生成します。
無料で始められます — 月50回のAIエージェントプロンプト、クレジットカード不要
技術スタック
この電動スクーターのフリートバックエンドテンプレートにはすべてが含まれています。
ERダイアグラム
エレクトリックスクーターフリートスキーマのエンティティ関係モデル。
オペレーター、スクーター、バッテリーの健康記録、モーターログ、デプロイメントゾーンをカバーするスキーマ。
ダイアグラムソースを表示
erDiagram
Operator ||--o{ Scooter : "assignedOperator"
Operator ||--o{ BatteryCheck : "operator"
Operator ||--o{ MotorLog : "operator"
Operator ||--o{ ZoneAssignment : "assignedBy"
DeploymentZone ||--o{ Scooter : "lastKnownZone"
DeploymentZone ||--o{ ZoneAssignment : "zone"
Scooter ||--o{ BatteryCheck : "scooter"
Scooter ||--o{ MotorLog : "scooter"
Scooter ||--o{ ZoneAssignment : "scooter"
Operator {
String objectId PK
String username
String email
String password
String role
Date createdAt
Date updatedAt
}
Scooter {
String objectId PK
String scooterTag
String status
Number batteryLevel
String lastKnownZoneId FK
String assignedOperatorId FK
Date createdAt
Date updatedAt
}
BatteryCheck {
String objectId PK
String scooterId FK
String operatorId FK
Number batteryLevel
String batteryHealth
Date checkedAt
Date createdAt
Date updatedAt
}
MotorLog {
String objectId PK
String scooterId FK
String operatorId FK
String motorStatus
String logNotes
Date capturedAt
Date createdAt
Date updatedAt
}
DeploymentZone {
String objectId PK
String zoneCode
String name
String city
Boolean active
Object boundaryGeoJSON
Date createdAt
Date updatedAt
}
ZoneAssignment {
String objectId PK
String scooterId FK
String zoneId FK
String assignedById FK
Date assignedAt
Date createdAt
Date updatedAt
}
統合フロー
サインイン、スクーター在庫の確認、バッテリーチェック、モーターログ、デプロイメントゾーンの更新のための典型的なランタイムフロー。
図のソースを表示
sequenceDiagram
participant User
participant FleetApp as Electric Scooter Fleet App
participant Back4app as Back4app Cloud
User->>FleetApp: Sign in as operator
FleetApp->>Back4app: POST /login
Back4app-->>FleetApp: Session token
User->>FleetApp: Load scooters needing battery checks
FleetApp->>Back4app: GET /classes/Scooter?order=-updatedAt
Back4app-->>FleetApp: Scooter list with batteryLevel and lastKnownZone
User->>FleetApp: Record a BatteryCheck
FleetApp->>Back4app: POST /classes/BatteryCheck
Back4app-->>FleetApp: BatteryCheck objectId
User->>FleetApp: Review MotorLog history and zone assignments
FleetApp->>Back4app: GET /classes/MotorLog and /classes/ZoneAssignment
Back4app-->>FleetApp: MotorLog entries and deployment updates
FleetApp->>Back4app: Subscribe to live Scooter updates
Back4app-->>FleetApp: Scooters refresh when batteryLevel or status changesデータ辞書
Electric Scooter Fleetスキーマ内の各クラスのフィールドレベルリファレンス。
| フィールド | タイプ | 説明 | 必須 |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | 自動 |
| username | String | Staff login name | |
| String | Staff email address | ||
| password | String | Hashed password (write-only) | |
| role | String | Operator role such as manager, coordinator, or field technician | |
| createdAt | Date | Auto-generated creation timestamp | 自動 |
| updatedAt | Date | Auto-generated last-update timestamp | 自動 |
7フィールドがOperatorにあります
セキュリティと権限
ACLおよびCLP戦略がオペレーター、スクーター、バッテリー、ログ、およびゾーンをどのように保護するか。
オペレーターアクセス制御
認証されたオペレーターのみが、チームに属するフリートレコードを作成または変更できます。
スクーターとバッテリーの整合性
ユニットが利用可能としてマークされる前に、Cloud Codeを使用してScooter.batteryおよびBattery.healthScoreを検証します。
スコープ付き運用読み取り
ゾーンおよびログの可視性を、配信、サービス、または監査作業のためにレコードが必要なスタッフに制限します。
スキーマ(JSON)
Back4appにコピーする準備ができた生のJSONスキーマ定義または実装参照として使用。
{
"classes": [
{
"className": "Operator",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"username": {
"type": "String",
"required": true
},
"email": {
"type": "String",
"required": true
},
"password": {
"type": "String",
"required": true
},
"role": {
"type": "String",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "Scooter",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"scooterTag": {
"type": "String",
"required": true
},
"status": {
"type": "String",
"required": true
},
"batteryLevel": {
"type": "Number",
"required": true
},
"lastKnownZone": {
"type": "Pointer",
"required": true,
"targetClass": "DeploymentZone"
},
"assignedOperator": {
"type": "Pointer",
"required": true,
"targetClass": "Operator"
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "BatteryCheck",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"scooter": {
"type": "Pointer",
"required": true,
"targetClass": "Scooter"
},
"operator": {
"type": "Pointer",
"required": true,
"targetClass": "Operator"
},
"batteryLevel": {
"type": "Number",
"required": true
},
"batteryHealth": {
"type": "String",
"required": true
},
"checkedAt": {
"type": "Date",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "MotorLog",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"scooter": {
"type": "Pointer",
"required": true,
"targetClass": "Scooter"
},
"operator": {
"type": "Pointer",
"required": true,
"targetClass": "Operator"
},
"motorStatus": {
"type": "String",
"required": true
},
"logNotes": {
"type": "String",
"required": true
},
"capturedAt": {
"type": "Date",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "DeploymentZone",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"zoneCode": {
"type": "String",
"required": true
},
"name": {
"type": "String",
"required": true
},
"city": {
"type": "String",
"required": true
},
"active": {
"type": "Boolean",
"required": true
},
"boundaryGeoJSON": {
"type": "Object",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "ZoneAssignment",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"scooter": {
"type": "Pointer",
"required": true,
"targetClass": "Scooter"
},
"zone": {
"type": "Pointer",
"required": true,
"targetClass": "DeploymentZone"
},
"assignedBy": {
"type": "Pointer",
"required": true,
"targetClass": "Operator"
},
"assignedAt": {
"type": "Date",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
}
]
}AIエージェントで構築
Back4app AIエージェントを使用して、このテンプレートから実際の電動スクーターフリートアプリを生成します。フロントエンド、バックエンド、認証、スクーター、バッテリー、モーターログ、およびゾーンフローが含まれます。
Back4appでこの正確なスキーマと動作を持つ電動スクーターフリートアプリのバックエンドを作成します。 スキーマ: 1. オペレーター(Back4app内蔵使用):ユーザー名、メール、パスワード;objectId、createdAt、updatedAt(システム)。 2. スクーター:fleetCode(文字列、必須)、serialNumber(文字列、必須)、status(文字列、必須)、battery(バッテリーへのポインタ、オプション)、zone(展開ゾーンへのポインタ、オプション);objectId、createdAt、updatedAt(システム)。 3. バッテリー:scooter(スクーターへのポインタ、必須)、healthScore(数値、必須)、chargeLevel(数値、必須)、cycleCount(数値、必須)、lastCheckedAt(日時、必須);objectId、createdAt、updatedAt(システム)。 4. MotorLog:scooter(スクーターへのポインタ、必須)、runtimeMinutes(数値、必須)、temperatureC(数値、必須)、faultCode(文字列)、notes(文字列);objectId、createdAt、updatedAt(システム)。 5. DeploymentZone:name(文字列、必須)、city(文字列、必須)、coverageRadiusKm(数値、必須)、active(ブール、必須);objectId、createdAt、updatedAt(システム)。 セキュリティ: - 認証されたオペレーターのみが自分のチームに属するフリートレコードを作成または変更できます。Scooter.batteryとBattery.healthScoreを検証するためにCloud Codeを使用し、ユニットが利用可能としてマークされる前に確認してください。 認証: - サインアップ、ログイン、ログアウト。 動作: - スクーターをリストし、バッテリーの健康を検査し、モーターログを書き、スクーターを展開ゾーン間で移動します。 配信: - スキーマ、ACL、CLPを含むBack4appアプリ;スクーター、バッテリー、ログ、ゾーン用のフロントエンド。
下のボタンを押して、このテンプレートプロンプトが事前に記入されたエージェントを開いてください。
これはテクノロジーサフィックスのない基本プロンプトです。生成されたフロントエンドスタックは後で適応できます。
APIプレイグラウンド
Electric Scooter Fleetスキーマに対してRESTとGraphQLエンドポイントを試してみてください。レスポンスはモックデータを使用し、Back4appアカウントは不要です。
このテンプレートと同じスキーマを使用しています。
テクノロジーを選択
各カードを展開して、選択したスタックにオペレーター、スクーター、およびバッテリーを統合する方法を確認してください。
Flutter 電動スクーターのフリートバックエンド
React 電動スクーターのフリートバックエンド
React ネイティブ 電動スクーターのフリートバックエンド
Next.js 電動スクーターのフリートバックエンド
JavaScript 電動スクーターのフリートバックエンド
Android 電動スクーターのフリートバックエンド
iOS 電動スクーターのフリートバックエンド
Vue 電動スクーターのフリートバックエンド
Angular 電動スクーターのフリートバックエンド
GraphQL 電動スクーターのフリートバックエンド
REST API 電動スクーターのフリートバックエンド
PHP 電動スクーターのフリートバックエンド
.NET 電動スクーターのフリートバックエンド
すべての技術で得られるもの
すべてのスタックは同じ電動スクーターのフリートバックエンドスキーマとAPI契約を使用します。
統一されたフリートデータ構造
一貫したスキーマでスクーター、バッテリー、ログ、ゾーンを管理します。
フリート運用のためのバッテリー健康ワークフロー
メンテナンスの判断のためにchargeLevel、healthScore、cycleCountを追跡します。
サービスチームのためのモーターログ履歴
診断のためにruntimeMinutes、temperatureC、faultCodeを保存します。
配信のためのゾーン割り当て制御
DeploymentZoneレコードを使用してスクーターを適切なサービスエリアに誘導します。
フリートツールのためのREST/GraphQL APIs
ウェブ、モバイル、オペレーションダッシュボードを柔軟なAPIを通じて統合します。
フリートテクノロジーの比較
すべてのサポートされているテクノロジーにわたるセットアップ速度、SDKスタイル、およびAIサポートを比較します。
| フレームワーク | セットアップ時間 | フリートの利点 | SDKタイプ | AIサポート |
|---|---|---|---|---|
| 約5分 | モバイルとウェブのスクーター運用のための単一コードベース。 | 型付きSDK | フル | |
| 5分未満 | フリート dispatch のための高速ウェブダッシュボード。 | 型付きSDK | フル | |
| ~3〜7分 | スクータークルーのためのクロスプラットフォームフィールドアプリ。 | 型付きSDK | フル | |
| 迅速(5分) 設定 | フリート管理のためのサーバーレンダリングされた操作コンソール。 | タイプされたSDK | フル | |
| 約3~5分 | スクーター在庫用の軽量ウェブ統合。 | タイプされたSDK | フル | |
| 約5分 | フィールドメンテナンス用のネイティブAndroidアプリ。 | タイプされたSDK | フル | |
| 5分未満 | ネイティブ iOS アプリで、配達と検査を行います。 | タイプされたSDK | フル | |
| ~3〜7分 | Reactive ウェブUIでフリートルーティング。 | タイプされたSDK | フル | |
| 迅速な(5分)セットアップ | 運用チーム向けのエンタープライズウェブアプリ。 | タイプされたSDK | フル | |
| 2分未満 | スカウト、バッテリー、ゾーンクエリ用の柔軟な GraphQL API。 | GraphQL API | フル | |
| クイック(2分)セットアップ | REST APIの配信およびメンテナンスツールの統合。 | REST API | フル | |
| 約3分 | フリート管理ツール用のサーバーサイドPHPバックエンド。 | REST API | フル | |
| 約3~7分 | スカウター運用のための.NETバックエンド。 | 型付けされたSDK | フル |
セットアップ時間は、このテンプレートスキーマを使用してプロジェクトのブートストラップから最初のスクーター、バッテリー、またはゾーンクエリまでの予想される期間を反映します。
よくある質問
このテンプレートを使って電動スクーターフリートバックエンドを構築する際によくある質問。