Флот скутеров
Создано с AI-агентом
Бэкенд флота электрических скутеров

Шаблон бэкенда инвентаря флота электрических скутеров
Состояние батареи, журналы моторов и управление зонами развертывания

Готовый к использованию бэкенд флота электрических скутеров на Back4app с записями скутеров, проверками состояния батареи, журналами моторов и управлением зонами развертывания. Включает диаграмму ER, словарь данных, схему JSON, API площадку и запрос AI Agent для быстрого развертывания.

Выводы по флоту

Этот шаблон предоставляет вам бэкенд для учета скутеров, состояния батарей, журналов работы моторов и зон развертывания, чтобы операции могли перейти от бумажных проверок к отслеживанию в реальном времени.

  1. Отслеживание состояния батареиХраните уровень заряда батареи, количество циклов и оценку состояния в классе Battery для планирования обслуживания.
  2. История журналов мотораЗахватывайте события мотора в MotorLog с временем работы, температурой и заметками о неисправностях для полевого обзора.
  3. Контроль зон развертыванияПривяжите каждый скутер к зоне развертывания, чтобы диспетчеры могли управлять охватом по территории.

Понимание бэкенда инвентаризации парка электрических скутеров

Двойное бронирование — это не только неловко в парке электрических скутеров; оно разрушает доверие быстрее, чем любая маркетинговая кампания сможет его восстановить. Модели Оператора, Скутера, Батареи, Журнала Двигателя и Зоны Развертывания на Back4app предоставляют командам парка электрических скутеров бэкенд, который может расти от одного двора до многообъектных операций. Схема охватывает Оператора (имя пользователя, электронная почта, пароль), Скутер (код парка, серийный номер, статус, батарея, зона), Батарею (скутер, оценка здоровья, уровень заряда, количество циклов), Журнал Двигателя (скутер, минуты работы, температура, код ошибки) и Зону Развертывания (имя, город, радиус покрытия в км, активно) с встроенным контролем доступа и управления парком. Подключите ваш предпочтительный интерфейс и запустите быстрее.

Лучше всего для:

Панели мониторинга парка электрических скутеровИнструменты обслуживания батарейПрограммы диагностики двигателейПланирование зон развертыванияMVP операцийКоманды выбирают BaaS для продуктов флота

Флот электрических скутеров: снимок бэкэнда

Флот электрических скутеров — это не только скорость; речь идет о защищенности, когда кто-то спрашивает «покажи мне, как ты знал, что это правда.»

Центр выделяет Оператора, Скутер и Батарею, чтобы вы могли сравнивать клиентские стеки против одних и тех же сущностей, полей и отношений.

Основные функции электрического скутера флота

Каждая карточка технологии в этом хабе использует одну и ту же схему Электрического Скутерного Флота с Оператором, Скутером, Аккумулятором, Журналом Двигателя и Зоной Развертывания.

Контроль запасов скутеров

Скутер хранит fleetCode, serialNumber, status, battery и zone.

Отслеживание состояния батареи

Батарея хранит уровень заряда, оценку состояния и количество циклов.

Диагностика двигателя

ЛогДвигателя хранит минут работы, температуру в градусах Цельсия и код ошибки.

Управление зоной развертывания

DeploymentZone определяет имя, город, радиус покрытия в километрах и активность.

Почему построить бэкэнд вашего флота электрических скутеров с Back4app?

Back4app предоставляет командам операций чистый дом для инвентаря скутеров, состояния батарей и журналов двигателей, чтобы работа поDispatch и обслуживанию осуществлялась на одной и той же модели данных.

  • Записи о скутерах и батареях остаются связанными: Класс Скутер указывает на поля Батареи и Зоны Развертывания, что позволяет отслеживать проверки полей, замены и перемещения по зоне.
  • Записи MotorLog легко проверять: Сохраняйте runtimeMinutes, temperatureC и faultCode в MotorLog, чтобы сотрудники на местах могли просмотреть, что произошло перед сервисным вызовом.
  • Мгновенная видимость флота без дополнительной инфраструктуры: Используйте Live Queries для обновлений скутеров и батарей, при этом оставив REST и GraphQL открытыми для панелей управления, инструментов диспетчеризации и приложений для обслуживания.

Управляйте скутерами, батареями и зонами из одного контракта на стороне сервера для каждого клиента.

Преимущества флота

Бэкенд скутера, который связывает полевую работу и решения о диспетчеризации с реальными данными флота.

Быстрая триаж техобслуживания

Используйте Battery.healthScore и MotorLog.faultCode, чтобы определить, какие скутеры нуждаются в проверке в первую очередь.

Чистые назначения зон

Обновите Scooter.zone в соответствии с DeploymentZone.name, когда покрытие меняется в течение дня.

История отслеживаемых полей

Сохраните 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

Словарь данных

Справочник по полям для каждого класса в схеме электрического скутера.

ПолеТипОписаниеОбязательно
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 защищает операторов, скутеры, батареи, журналы и зоны.

Управление доступом операторов

Только аутентифицированные операторы могут создавать или изменять записи флота, принадлежащие их команде.

Целостность скутеров и батарей

Используйте Cloud Code для проверки Scooter.battery и Battery.healthScore перед тем, как единица будет отмечена как доступная.

Ограниченные оперативные чтения

Ограничьте видимость зоны и журналов для сотрудников, которым нужна запись для отправки, обслуживания или аудита.

Схема (JSON)

Сырые определения схемы 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 агентом

Используйте AI агент Back4app для генерации реального приложения для электрического самоката на основе этого шаблона, включая фронтенд, бэкенд, аутентификацию, а также логи самокатов, батарей, двигателей и зоны.

AI агент Back4app
Готовы к созданию
Создайте бэкенд приложения для электрического самоката на Back4app с этой точной схемой и поведением.

Схема:
1. Оператор (используйте встроенное средство Back4app): имя пользователя, email, пароль; objectId, createdAt, updatedAt (система).
2. Самокат: fleetCode (строка, обязательный), serialNumber (строка, обязательный), статус (строка, обязательный), battery (ссылка на батарею, необязательный), zone (ссылка на зону развертывания, необязательный); objectId, createdAt, updatedAt (система).
3. Батарея: самокат (ссылка на самокат, обязательный), healthScore (число, обязательный), chargeLevel (число, обязательный), cycleCount (число, обязательный), lastCheckedAt (дата, обязательный); objectId, createdAt, updatedAt (система).
4. Лог двигателя: самокат (ссылка на самокат, обязательный), runtimeMinutes (число, обязательный), temperatureC (число, обязательный), faultCode (строка), notes (строка); objectId, createdAt, updatedAt (система).
5. Зона развертывания: имя (строка, обязательный), город (строка, обязательный), coverageRadiusKm (число, обязательный), active (булевый, обязательный); objectId, createdAt, updatedAt (система).

Безопасность:
- Только аутентифицированные операторы могут создавать или изменять записи флота, принадлежащие их команде. Используйте облачный код для проверки Scooter.battery и Battery.healthScore перед тем, как единица будет помечена как доступная.

Аутентификация:
- Регистрация, вход, выход.

Поведение:
- Список самокатов, проверка состояния батареи, запись логов двигателя и перемещение самокатов между зонами развертывания.

Передача:
- Приложение Back4app с схемой, ACL, CLP; фронтенд для самокатов, батарей, логов и зон.

Нажмите кнопку ниже, чтобы открыть агента с заранее заполненным шаблоном запроса.

Это базовый запрос без суффикса технологии. Вы можете адаптировать сгенерированный фронтенд-стек позже.

Развертывание за минуты50 бесплатных подсказок / месяцКредитная карта не требуется

API Playground

Попробуйте REST и GraphQL конечные точки против схемы Электросамокатного парка. Ответы используют моковые данные и не требуют учетной записи Back4app.

Загрузка площадки…

Использует ту же схему, что и этот шаблон.

Выберите вашу технологию

Раскройте каждую карточку, чтобы увидеть, как интегрировать Оператора, Скейт и Аккумулятор с вашим выбранным стеком.

Flutter Флот электросамокатов

React Флот электросамокатов

React Native Флот электросамокатов

Next.js Флот электросамокатов

JavaScript Флот электросамокатов

Android Флот электросамокатов

iOS Флот электросамокатов

Vue Флот электросамокатов

Angular Флот электросамокатов

GraphQL Флот электросамокатов

REST API Флот электросамокатов

PHP Флот электросамокатов

.NET Флот электросамокатов

Что вы получаете с каждой технологией

Каждый стек использует одинаковую схему бэкенда и API-контракты для флота электрических скутеров.

Единая структура данных флота

Управляйте скутерами, батареями, журналами и зонами с помощью одной согласованной схемы.

Рабочие процессы здоровья батарей для эксплуатации флота

Отслеживайте уровень заряда, оценку состояния и количество циклов для решений по техническому обслуживанию.

История журналов моторов для сервисных команд

Храните время работы, температуру и код неисправности для диагностики.

Контроль назначения зон для диспетчеризации

Используйте записи DeploymentZone, чтобы направлять скутеры в нужную зону обслуживания.

REST/GraphQL API для инструментов флота

Интегрируйте веб-, мобильные и операционные панели через гибкие API.

Сравнение технологий флота

Сравните скорость настройки, стиль SDK и поддержку ИИ среди всех поддерживаемых технологий.

ФреймворкВремя настройкиПольза флотаТип SDKПоддержка ИИ
Около 5 минутЕдиная кодовая база для операций с самокатами на мобильных устройствах и в вебе.Типизированный SDKПолный
Менее 5 минутБыстрая веб-панель для диспетчеризации флота.Типизированный SDKПолный
~3–7 минутКроссплатформенное полевое приложение для команд самокатов.Типизированный SDKПолный
Быстрая настройка (5 минут)Консоль операций на сервере для управления флотом.Типизированный SDKПолный
~3–5 минЛегкая веб-интеграция для инвентаризации скутеров.Типизированный SDKПолный
Около 5 минНативное приложение Android для обслуживания на местности.Типизированный SDKПолный
Менее 5 минутКоренное приложение iOS для диспетчеризации и инспекций.Типизированный SDKПолный
~3–7 минутReact веб-UI для маршрутизации флота.Типизированный SDKПолный
Быстрая настройка (5 минут)Корпоративное веб-приложение для операционных команд.Типизированный SDKПолный
Менее 2 минутГибкий GraphQL API для запросов по скутерам, батареям и зонам.GraphQL APIПолный
Быстрая настройка (2 мин)Интеграция REST API для инструментов диспетчеризации и обслуживания.REST APIПолный
~3 минСерверная часть PHP для инструментов управления парком.REST APIПолный
~3–7 минБэкенд .NET для операций с самокатами.Typed SDKПолный

Время настройки отражает ожидаемую продолжительность от начальной загрузки проекта до первого запроса скутера, батареи или зоны с использованием этой схемы шаблона.

Часто задаваемые вопросы

Распространенные вопросы о создании бэкенда электросамокатной флотилии с помощью этого шаблона.

Какие политики флота электросамокатов труднее всего применять без структурированных данных о бронировании?
Как правильно связать контроль запасов скутеров, отслеживание состояния батареи и диагностику моторов с проверками выполнения и возвратов?
Как выглядит миграция, когда сложность каталога флотилии электрических скутеров прыгает сезон за сезоном?
Как показать инвентарь скутеров в Flutter?
Как подключить бэкенд флота к Next.js?
Может ли React Native кэшировать данные о скутерах и батареях в офлайне?
Как предотвратить появления батареи с низким состоянием здоровья в списке доступных?
Как лучше всего просмотреть журналы работы моторов на Android?
Как работает процесс обновления зоны развертывания?

Доверяют разработчики по всему миру

Присоединяйтесь к командам, быстро выпуская продукты Электрического Самоката с шаблонами Back4app

G2 Users Love Us Badge

Готовы создать свое приложение для Электрического Самоката?

Начните свой проект парка самокатов за считанные минуты. Кредитная карта не требуется.

Выберите технологию