滑板車車隊
與 AI 代理一同構建
電動滑板車車隊後端

電動滑板車車隊庫存後端模板
電池健康、馬達紀錄和部署區域控制

一個生產就緒的 電動滑板車車隊後端 在 Back4app,包括滑板車紀錄、電池健康檢查、馬達紀錄和部署區域控制。包含 ER 圖、數據字典、JSON 架構、API 遊樂場,以及一個 AI 代理 提示以便快速啟動。

艦隊要點

此模板為您提供了一個電動滑板車庫存、電池健康狀態、馬達日誌和部署區域的艦隊後端,讓運營可以從紙本檢查轉向實時追蹤。

  1. 電池健康追蹤在電池類別中儲存電池水平、循環計數和健康分數,以便於維護規劃。
  2. 馬達日誌歷史在MotorLog中捕捉馬達事件,記錄運行時間、溫度和故障備註,以便現場審查。
  3. 部署區域控制將每個電動滑板車綁定到一個部署區域,方便調度員根據區域管理覆蓋範圍。

了解電動滑板車車隊庫存後端

在電動滑板車車隊中,雙重預訂不僅令人尷尬;它比任何市場營銷活動更快地侵蝕信任。在 Back4app 上建模 Operator、Scooter、Battery、MotorLog 和 DeploymentZone,以便為電動滑板車車隊團隊提供一個可以從單一場地擴展到多地點操作的後端。架構涵蓋 Operator(用戶名、電子郵件、密碼)、Scooter(車隊代碼、序列號、狀態、電池、區域)、Battery(滑板車、健康得分、充電水平、循環次數)、MotorLog(滑板車、運行分鐘數、溫度C、故障代碼)和 DeploymentZone(名稱、城市、覆蓋半徑公里、活動)並內建身份驗證和車隊控制。連接您喜歡的前端,並加快推出速度。

最佳用途:

電動滑板車車隊儀表板電池維護工具電機診斷應用部署區域規劃運營 MVP團隊選擇 BaaS 作為車隊產品

電動滑板車車隊:後端快照

電動滑板車車隊不僅僅是關於速度;當有人問“告訴我你怎麼知道這是真的。”時,它關乎防禦性。

中心突出了運營商、滑板車和電池,讓您可以將客戶堆棧與相同的實體、字段和關係進行比較。

核心電動滑板車車隊特性

此中心的每一個技術卡片都使用相同的電動滑板車車隊架構,包括操作員、滑板車、電池、電機日誌和 DeploymentZone。

滑板車庫存控制

滑板車儲存 fleetCode、serialNumber、status、battery 和 zone。

電池健康追蹤

電池保持充電水平、健康分數和循環次數。

馬達診斷

馬達日誌儲存運行分鐘數、攝氏溫度和故障代碼。

部署區域管理

DeploymentZone 定義名稱、城市、覆蓋半徑(公里)和是否啟用。

為什麼使用 Back4app 建立您的電動滑板車車隊後端?

Back4app 為運營團隊提供了一個乾淨的家,用於滑板車庫存、電池健康和電機日誌,因此調度和維護工作保持在相同的數據模型上。

  • 滑板車和電池記錄保持連接: 滑板車類指向電池和部署區域字段,這使得字段檢查、更換和區域移動可追溯。
  • MotorLog 條目易於審核: 在 MotorLog 中儲存 runtimeMinutes、temperatureC 和 faultCode,以便現場工作人員在服務呼叫之前查看發生了什麼。
  • 無需額外基礎設施的即時車隊可見性: 在保持 REST 和 GraphQL 開放以便於儀表板、派遣工具和維護應用程式的同時,使用 Live Queries 進行滑板車和電池更新。

從一個後端合約管理所有客戶的滑板車、電池和區域。

車隊優勢

一個滑板車後端,將現場工作和調度決策與真實的車隊數據緊密結合。

更快的維護優先處理

使用 Battery.healthScore 和 MotorLog.faultCode 決定哪些滑板車需要優先檢查。

更乾淨的區域分配

當白天覆蓋範圍改變時,根據 DeploymentZone.name 更新 Scooter.zone。

可追蹤的欄位歷史

儲存 MotorLog.runtimeMinutes 和 temperatureC,供服務團隊比較重複出現的問題。

一致的派遣視圖

在將車輛重新投入服務之前查詢 Scooter.status 和 Battery.chargeLevel。

共享操作合約

將滑板車、電池、日誌和區域欄位保持在一個架構中,以便網路和行動工具讀取相同的車隊狀態。

AI協助的啟動工作流程

使用一個結構化的提示為車隊模型生成後端腳手架和集成指導。

準備好啟動你的滑板車車隊應用程序了嗎?

讓Back4app AI Agent 為您的電動滑板車車隊後端搭建架構,並從一個提示生成滑板車、電池、馬達和區域工作流程。

免費開始 — 每月 50 次 AI Agent 提示,不需要信用卡

技術棧

此電動滑板車車隊後端模板包含所有內容。

前端
13+ 技術
後端
Back4app
資料庫
MongoDB
認證
內建認證 + 會話
API
REST 和 GraphQL
即時
Live Queries

ER 圖

電動滑板車車隊架構的實體關係模型。

查看圖表源
Mermaid
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
    }

整合流程

登錄、滑板車庫存查詢、電池檢查、馬達日誌和部署區域更新的典型運行流程。

查看圖表來源
Mermaid
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 模式中每個類的字段級參考。

字段類型描述必須
objectIdStringAuto-generated unique identifier自動
usernameStringStaff login name
emailStringStaff email address
passwordStringHashed password (write-only)
roleStringOperator role such as manager, coordinator, or field technician
createdAtDateAuto-generated creation timestamp自動
updatedAtDateAuto-generated last-update timestamp自動

7 欄位在 Operator 中

安全性與權限

ACL 和 CLP 策略如何保護操作員、滑板車、電池、日誌和區域。

操作員訪問控制

只有經過身份驗證的操作員才能創建或更改屬於其團隊的車隊記錄。

滑板車和電池的完整性

使用雲代碼在單位標記為可用之前驗證 Scooter.battery 和 Battery.healthScore。

範圍內的操作讀取

將區域和日誌的可見性限制為需要該記錄以進行調度、服務或審計工作的員工。

架構(JSON)

準備好複製到 Back4app 的原始 JSON 架構定義或用作實施參考。

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 AI 代理
準備建設
在 Back4app 上創建一個電動滑板車車隊應用程序的後端,具有這個確切的架構和行為。

架構:
1. 操作員(使用 Back4app 內置):用戶名、電子郵件、密碼;objectId, createdAt, updatedAt(系統)。
2. 滑板車:fleetCode(字符串,必填)、serialNumber(字符串,必填)、status(字符串,必填)、battery(指向 Battery 的指標,可選)、zone(指向 DeploymentZone 的指標,可選);objectId, createdAt, updatedAt(系統)。
3. 電池:scooter(指向 Scooter 的指標,必填)、healthScore(數字,必填)、chargeLevel(數字,必填)、cycleCount(數字,必填)、lastCheckedAt(日期,必填);objectId, createdAt, updatedAt(系統)。
4. MotorLog:scooter(指向 Scooter 的指標,必填)、runtimeMinutes(數字,必填)、temperatureC(數字,必填)、faultCode(字符串)、notes(字符串);objectId, createdAt, updatedAt(系統)。
5. DeploymentZone:name(字符串,必填)、city(字符串,必填)、coverageRadiusKm(數字,必填)、active(布林,必填);objectId, createdAt, updatedAt(系統)。

安全性:
- 只有經過身份驗證的操作員才能創建或更改屬於其團隊的車隊記錄。使用雲代碼在單元標記為可用之前驗證 Scooter.battery 和 Battery.healthScore。

身份驗證:
- 註冊、登錄、登出。

行為:
- 列出滑板車、檢查電池健康、編寫馬達日誌,並在部署區之間移動滑板車。

交付:
- 帶有架構、ACL、CLP 的 Back4app 應用;滑板車、電池、日誌和區域的前端。

按下面的按鈕以使用此模板提示預填充的代理。

這是沒有技術後綴的基本提示。您可以在此之後調整生成的前端堆棧。

幾分鐘內部署每月 50 個免費提示無需信用卡

API 沙盒

在電動滑板車車隊架構上嘗試 REST 和 GraphQL 端點。響應使用模擬數據,並不需要 Back4app 帳戶。

載入遊樂場…

使用與此模板相同的架構。

選擇您的技術

展開每個卡片以查看如何將操作員、滑板車和電池與您選擇的技術堆棧整合。

Flutter 電動滑板車車隊後端

React 電動滑板車車隊後端

React 原生 電動滑板車車隊後端

Next.js 電動滑板車車隊後端

JavaScript 電動滑板車車隊後端

Android 電動滑板車車隊後端

iOS 電動滑板車車隊後端

Vue 電動滑板車車隊後端

Angular 電動滑板車車隊後端

GraphQL 電動滑板車車隊後端

REST API 電動滑板車車隊後端

PHP 電動滑板車車隊後端

.NET 電動滑板車車隊後端

您每種技術都能獲得的內容

每個堆疊都使用相同的電動滑板車車隊後端架構和API合約。

統一的車隊數據結構

使用一個一致的架構管理滑板車、電池、日誌和區域。

針對車隊運營的電池健康工作流程

追蹤充電水平、健康分數和循環次數以做出維護決策。

服務團隊的電動馬達日誌歷史

儲存運行分鐘數、溫度(攝氏)和故障代碼以供診斷。

調度的區域分配控制

使用部署區域記錄將滑板車指向正確的服務區域。

REST/GraphQL API 用於車隊工具

透過靈活的 API 整合網頁、移動和操作儀表板。

車隊技術比較

比較所有支持技術的設置速度、SDK 類型及 AI 支持。

框架設置時間車隊福利SDK 類型AI 支持
大約 5 分鐘在移動端和網頁上的單一代碼庫供滑板車操作。已類型化的 SDK完整
少於 5 分鐘用於車隊調度的快速網頁儀表板。已類型化的 SDK完整
約 3–7 分鐘為滑板車團隊提供的跨平台場地應用程式。已類型化的 SDK完整
快速(5 分鐘)設置伺服器渲染的操作控制台,適用於車隊管理。輸入式SDK完整
約3–5分鐘輕量級的網路整合,用於電動滑板車庫存。輸入式SDK完整
大約5分鐘適用於現場維護的原生Android應用程式。輸入式SDK完整
少於5分鐘本地 iOS 應用程式用於派遣和檢查。輸入式SDK完整
約 3–7 分鐘React 直觀的網頁介面用於車隊路由。類型化 SDK完整
快速 (5 分鐘) 設定企業網頁應用程式用於操作團隊。類型化 SDK完整
少於 2 分鐘靈活的 GraphQL API 用於電動滑板車、電池和區域查詢。GraphQL API完整
快速(2分鐘)設置REST API 整合用於發送和維護工具。REST API完整
約3分鐘伺服器端 PHP 後端用於車隊管理工具。REST API完整
約3–7分鐘.NET 後端用於電動滑板車操作。已類型的 SDK完整

設置時間反映從項目啟動到首次滑板車、电池或區域查詢使用此範本結構的預期持續時間。

常見問題

有關使用此模板建立電動滑板車車隊後端的常見問題。

哪些電動滑板車艦隊政策在沒有結構化預訂數據的情況下最難執行?
將滑板車庫存控制、电池健康追踪和電動機診斷連接到交付和退貨檢查的正確方法是什麼?
當電動滑板車車隊目錄的複雜性季節性跳升時,遷移會看起來如何?
我如何在 Flutter 中顯示滑板車庫存?
我如何將車隊後端連接到 Next.js?
React Native 可以離線緩存滑板車和電池數據嗎?
我如何防止低健康狀態電池被標記為可用?
在Android上查看電動滑板車日誌的最佳方法是什麼?
部署區域更新流程是如何運作的?

全球開發者信賴

使用 Back4app 模板快速加入發送電動滑板車車隊產品的團隊

G2 Users Love Us Badge

準備好構建您的電動滑板車車隊應用程序了嗎?

在幾分鐘內啟動您的滑板車車隊項目。不需要信用卡。

選擇技術