Hello World! начато с Directus для управления флотом

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

Directus - это безголовая система управления контентом (CMS), которая оборачивает любую базу данных SQL мощным API и интуитивно понятным приложением администратора. Вместо того, чтобы заставлять вас создавать предопределенную структуру, Directus позволяет вам разрабатывать свои собственные модели данных при автоматическом создании конечных точек REST и GraphQL. Для операций с автопарком - где вы отслеживаете транспортные средства, драйверы, графики обслуживания, использование топлива и позиции GPS - эта гибкость меняет правила игры. В следующих разделах вы узнаете, как превратить простой реестр транспортных средств в полнофункциональный центр управления автопарком.

Что такое Directus? Быстрый обзор

По своей сути Directus является платформой данных с открытым исходным кодом, которая работает с PostgreSQL, MySQL, SQLite и другими реляционными базами данных. Она обеспечивает три основных компонента:

  • Data Studio — интерфейс администратора без кода, где нетехнические члены команды могут создавать, читать, обновлять и удалять записи без написания SQL. Менеджеры флота могут добавлять новые транспортные средства, назначать драйверы и регистрировать события обслуживания с помощью нескольких кликов.
  • REST & GraphQL APIs — мгновенные, защищенные и расширяемые конечные точки, которые позволяют интерфейсам, мобильным приложениям или устройствам IoT взаимодействовать с данными вашего парка в режиме реального времени.
  • Расширяемость (FLT:0) — пользовательские модули, крючки, потоки (автоматизация) и возможность создавать собственные расширения с использованием JavaScript. Это означает, что вы можете адаптировать платформу к вашим точным операционным потребностям.

Поскольку Directus находится поверх существующей базы данных, вы никогда не запираетесь. Вы можете экспортировать свою схему в любое время, подключать сторонние инструменты BI, такие как Metabase или Tableau, или мигрировать в другую СУБД без переделки всего. Для автопарков это означает, что вы можете начать с простого реестра транспортных средств, а затем добавить сотни пользовательских полей, отношений и автоматизированных рабочих процессов - все без штрафов поставщика.

Почему Directus для управления флотом?

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

Централизованный центр обработки данных для транспортных средств, водителей и активов

Ваши данные о парке, вероятно, живут в нескольких бункерах: GPS-трекеры, топливные карты, журналы технического обслуживания, записи о водителях, документы о соответствии и страховые полисы. Directus позволяет создавать реляционные коллекции, которые отражают ваши операции в реальном мире. Например, вы можете определить коллекцию Автомобили с полями для номерного знака, VIN, сделать, модель, год, тип топлива, статус, срок действия регистрации и страховой полис. Затем привязать каждое транспортное средство к коллекции Драйверы драйверы драйверы и Журналы технического обслуживания Техническое обслуживание Интерфейс администратора автоматически генерирует таблицы поворотов, отношения «многие ко многим» (например, транспортные средства, назначенные нескольким водителям) и отфильтрованные просмотры.

Поскольку Directus хранит данные в стандартных таблицах SQL, можно использовать любую существующую схему базы данных флота или мигрировать из унаследованных систем. Также можно импортировать данные CSV/JSON непосредственно в Data Studio, делая на борту бриз. Например, если у вас есть лист Excel, перечисляющий весь ваш флот, вы можете импортировать его за считанные секунды и сразу же начать связывать записи.

Обновления в реальном времени и интеграция API

Управление флотом процветает на живых данных. Directus поддерживает подписки на WebSocket, поэтому ваша панель приборов может получать мгновенные обновления при изменении местоположения GPS транспортного средства, срабатывании оповещения о техническом обслуживании или изменении статуса водителя. API REST и GraphQL полностью настраиваются с фильтрацией, сортировкой, пагинацией и вложенными отношениями. Это позволяет фронтенд-приложениям (веб- или мобильным) получать именно те данные, которые им нужны, без перебора.

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

Контроль доступа на основе ролей для операций флота

В среде автопарка разные пользователи нуждаются в разных уровнях доступа: диспетчеры должны видеть все поездки, но не изменять данные о заработной плате водителя; механики должны читать / писать на учете обслуживания, но не на выставлении счетов клиентам; менеджеры автопарка нуждаются в полных административных правах. Directus предоставляет подробные разрешения на сбор, поле и действие (создавать, читать, обновлять, удалять). Вы можете создавать роли, такие как «Администрация флота», «Путешественник», «Водитель» и «Механик», каждый с индивидуальным доступом.

Кроме того, Directus поддерживает предустановки и фильтры — это означает, что вы можете автоматически масштабировать роль, чтобы видеть только транспортные средства в определенном регионе или только их собственные записи. Например, роль, называемая «Региональный менеджер», может видеть только транспортные средства, назначенные в подразделение на Среднем Западе. Это позволяет легко запускать многоотраслевой или многоместный парк из одного экземпляра без утечки данных.

Настройка Directus для вашего флота

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

Варианты установки

Directus может быть установлен несколькими способами, в зависимости от ваших технических ресурсов и потребностей в соответствии с требованиями:

  • Directus Cloud — управляемая версия с автоматическим масштабированием. Лучше всего, если вы хотите избежать обслуживания сервера. Цены указаны на пользователя/хранилище, и она включает в себя автоматические резервные копии и обновления. Идеально подходит для небольших и средних парков.
  • Самохостинг (Docker) — Рекомендуется для автопарков со строгим суверенитетом данных или сложными требованиями соответствия (например, автопарков местных органов власти). Используйте официальное изображение Docker и составьте файл. Вы можете запустить его на своих собственных серверах, AWS, Azure или на территории. Типичное развертывание занимает менее 30 минут.
  • Ручная установка — использование Node.js и npm. Подходит для расширенных развертываний, требующих пользовательских этапов сборки или интеграции в существующую инфраструктуру.

Независимо от метода, вам понадобится база данных PostgreSQL или MySQL. Многие парки начинаются с небольшого экземпляра SQLite для прототипирования и позже переходят в готовую к производству базу данных. Официальное руководство по установке предоставляет подробные шаги для каждого варианта.

Схема базы данных для Fleet Data

После запуска Directus Data Studio позволяет создавать коллекции (таблицы) без написания SQL. Вот предлагаемая схема для системы управления парком — настройте ее так, чтобы она соответствовала вашим операциям:

  • Стоки — license plate, vin, make, model, year, fuel type, status (active/inactive/repair), registration expiry, insurance policy, notes. Добавить поле файла для фотографий транспортных средств.
  • Драйверы — first name, last name, email, phone, license number, license expiry, date hired, certification (например, hazmat), примечания. Включите поле файла для отсканированных лицензий.
  • Трипы — транспортное средство (многие-один-для транспортных средств), водитель (многие-один-для водителей), start time, end time, miles driven, fuel used (галлоны), trip purpose, start odometer, end odometer, примечания.
  • Техническое обслуживание — транспортное средство (многие к одному), дата, тип (изменение масла, поворот шин, проверка тормозов и т. д.), описание, стоимость, odometer at service, механик (текст или отношение), next due (дата).
  • Записи на топливо — транспортное средство (много-к-одному), водитель (много-к-одному), дата, галлоны, cost per gallon, total cost, одометр, Station name.
  • Инциденты — транспортное средство (много-к-одному), водитель (много-к-одному), дата, тип (несчастный случай, билет, нарушение), описание, стоимость (если таковая имеется), разрешенная (булевая), прилагаемый полицейский отчет (файл).
  • Документы соответствия — транспортное средство или водитель (многие к одному), документ тип (регистрация, страхование, проверка), срок действия дата, файл url, примечания.

Вы также можете использовать встроенные поля Directus для изображений (фотографии транспортных средств, сканирование идентификатора водителя), загрузок файлов (PDF счетов-фактур) и полей JSON для гибких метаданных. Для расширенного использования добавьте коллекцию GPS Positions с полями: транспортное средство (многие к одному), временная метка, широта, долгота, скорость, заголовок. Это может быть загружено через API от вашего провайдера телематики.

Конфигурация конечных точек API

После создания коллекций Directus автоматически генерирует конечные точки REST и GraphQL.

  • GET — список всех транспортных средств
  • POST — создание нового путешествия
  • PATCH — обновление автомобиля с ID 15
  • - удалить вход топлива
  • GET — получить поездки для конкретного транспортного средства

Вы можете дополнительно настроить конечные точки с помощью панели конфигурации API, например, добавив поля сортировки, фильтры и ограничивающие поля. Directus также поддерживает кэширование API , чтобы улучшить производительность для приборных панелей с большим объемом чтения. Для энтузиастов GraphQL вы можете запрашивать вложенные отношения, такие как:

query {
 vehicles(filter: { status: { _eq: "active" } }) {
 id
 license_plate
 driver {
 full_name
 phone
 }
 maintenance_logs(limit: 5) {
 date
 type
 cost
 }
 }
}

Расширенные возможности оптимизации операций флота

Расширения и потоки

Directus позволяет расширить функциональность с помощью FLT:0, FLT:1, встроенного механизма автоматизации, запускающего потоки на таких событиях, как создание, обновление или удаление элементов. Для флота можно автоматизировать множество повторяющихся задач:

  • При создании новой поездки автоматически рассчитывайте и храните предполагаемую стоимость топлива на основе расстояния и экономии топлива транспортного средства (хранится в поле транспортного средства).
  • При добавлении технического обслуживания автоматически установите дату «следующего срока» в зависимости от типа обслуживания (например, изменение масла каждые 5000 миль) и отправьте push-уведомление менеджеру флота.
  • Когда статус транспортного средства меняется на «Неактивный», отменяются все связанные с этим задания водителя и архивируются любые открытые поездки.
  • Отправляйте электронные письма или SMS-оповещения о продлении лицензии, истечении срока действия страховки или просроченных проверках пробега — интегрируйтесь с Twilio или SendGrid через HTTP-запрос Flows.

Потоки также могут интегрироваться с внешними службами через веб-хуки. Например, вы можете переместить данные о поездках в удаленную систему учета (например, QuickBooks) или отправить запрос на техническое обслуживание в сторонний API гаража. Документация Потоки предоставляет пошаговые примеры.

Data Studio и Dashboards

Менеджерам флота часто требуется «птичье зрение» операций. В то время как Directus в первую очередь является бэкэнд-инструментом, Data Studio включает в себя мощные функции для фильтрации, группировки и отображения данных на лету. Вы можете создавать закладки фильтров для «Все транспортные средства должны обслуживаться в этом месяце», «Поездки с расходом топлива выше среднего» или «Драйверы, близкие к истечению срока действия лицензии». Data Studio также поддерживает идеи — простые диаграммы и метрики, которые вы можете настроить с помощью SQL-запросов или функций агрегации Directus. Например, вы можете создать диаграмму баров, показывающую стоимость топлива на транспортном средстве в месяц, или диаграмму пирогов типов обслуживания.

Для более продвинутых приборных панелей можно подключить Directus к таким инструментам, как Metabase или Grafana, используя API. Поскольку Directus действует как API данных, создание пользовательского интерфейса с React, Vue или платформой с низким кодом, такой как Retool является простым. Многие операторы автопарка встраивают живые карты, показывающие местоположение транспортных средств, используя коллекцию GPS Positions.

Регистрация аудита и история версий

Операции флота часто требуют соблюдения и аудита. Directus включает встроенный журнал активности , который записывает каждое действие по созданию, обновлению и удалению, а также пользователя, который его выполнил, IP-адрес и снимок изменений. Это бесценно для отслеживания, кто изменил критическую запись безопасности или когда запись обслуживания была изменена. Кроме того, Directus поддерживает пересмотры - вы можете вернуться к предыдущей версии любого элемента, который может отменить случайные удаления или изменения. Эта функция особенно полезна для соблюдения правил, таких как DOT или FMCSA.

Геопространственные запросы и картирование

Для флотов, которым нужны операции с учетом местоположения, Directus может быть расширен с геопространственными функциями. В то время как Directus изначально не поддерживает пространственные индексы, вы можете хранить широту / долготу в виде десятичных полей и использовать Flows или пользовательские конечные точки для расчета расстояний (например, используя формулу Haversine). Для более продвинутых потребностей вы можете подключить базу данных PostGIS и использовать исходные SQL-запросы через конечную точку Directus SQL Query . Это позволяет задавать такие запросы, как «найти все транспортные средства в пределах 5 миль от заданной точки» - необходимо для динамической отправки.

Сравнение Directus с традиционным программным обеспечением для управления флотом

Чтобы помочь вам оценить Directus по сравнению с уже существующими решениями, вот краткое сравнение:

FeatureDirectusTraditional Fleet Software
FlexibilityFull control over data models; any structureRigid, vendor-defined schemas
CostOpen-source (free self-hosted) or affordable cloud tiersOften high per-vehicle licensing fees + annual contracts
APIsInstant REST & GraphQL, WebSockets, real-timeOften limited or proprietary APIs; polling only
Data OwnershipYour own SQL database; no lock-inVendor-controlled data storage; difficult to export
ExtensibilityUnlimited via custom modules, Flows, extensionsLimited by vendor plugin ecosystem; often expensive add-ons
Real-TimeBuilt-in WebSocket supportVaries; often polling-based, introducing latency
User PermissionsGranular, field-level, role-based, plus presets/filtersUsually role-based but less granular; no field-level permissions
IntegrationsAny REST/GraphQL service; Flows for automationLimited to pre-built connectors; custom integration may be unsupported

Конечно, традиционное программное обеспечение для автопарка часто включает интеграцию GPS-отслеживания из коробки. С Directus вы все еще можете интегрировать GPS-каналы: многие поставщики оборудования (Samsara, Geotab и т. Д.) Предлагают веб-хуки или API, которые могут передавать данные непосредственно в коллекции Directus. Аналогично, данные ELD (электронное устройство регистрации) могут быть проглочены через API. Directus дает вам основу для создания именно того, что вам нужно, а не платить за модули, которые вы никогда не используете. Для подробного рассмотрения интеграции телематики обратитесь к Крючки жизненного цикла Directus .

Реальные случаи использования

Несколько операторов автопарка приняли Directus в качестве своей базы данных, демонстрируя его универсальность:

  • Оптимизация парка доставки — Компания доставки последней мили использовала Directus для централизации доступности транспортных средств, расписаний водителей и данных маршрута. Они создали специальное мобильное приложение с использованием API Directus, позволяющее водителям регистрировать поставки и получать динамические обновления маршрута на основе GPS в реальном времени от API. Потоки автоматизируют ежедневное планирование маршрута, получая заказы от внешней системы.
  • Аренда тяжелого оборудования — Арендная фирма по строительному оборудованию перешла от собственной системы к Directus, потому что им нужны были пользовательские поля для отслеживания вложений, договоров аренды и интервалов обслуживания. Они использовали Flows для автоматизации выставления счетов: при регистрации возврата аренды система вычисляет дни аренды и нажимает счет на свое бухгалтерское программное обеспечение через веб-хук.
  • Государственное управление транзитом — Муниципальный орган транзита использует Directus для управления журналами технического обслуживания автобусов, инвентаризацией топлива и сертификацией водителей. Журнал деятельности обеспечивает полный аудит соблюдения правил DOT. Они также используют идеи Data Studio для создания еженедельных отчетов о тенденциях потребления топлива, помогая снизить расходы на 12% в первом квартале.

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

Безопасность и соблюдение лучших практик

При управлении данными флота, безопасность и соответствие являются критическими. Directus предлагает несколько функций, отвечающих нормативным требованиям:

  • Шифрование данных — Вся связь через HTTPS. В остальном шифрование зависит от конфигурации вашей базы данных (Directus не шифрует поля сам, но вы можете использовать шифрование на уровне базы данных или библиотеки расширений).
  • Двухфакторная аутентификация (2FA) — Применить 2FA для всех пользователей администраторов, использующих приложения для аутентификации TOTP.
  • IP Whitelisting — Ограничение доступа API к конкретным диапазонам IP (например, к корпоративной VPN или офисной сети).
  • Политика хранения данных — Используйте потоки для автоматического архивирования или удаления старых записей (например, поездок старше 7 лет) в соответствии с принципами минимизации данных.
  • Backup & Recovery — Directus Cloud включает в себя автоматические резервные копии. Пользователи с автономным хостингом должны настраивать регулярные снимки базы данных.

Для флотов, обрабатывающих личную информацию (PII), такую как водительские права, вы можете использовать разрешения Directus на использование поля для ограничения доступа к конфиденциальным полям и использовать расширение маскировки на уровне поля для затемнения данных в панели администратора.

Заключение: Начните цифровую трансформацию флота

Directus дает вам возможность создать систему управления автопарком, которая развивается вместе с вашим бизнесом. Вы начинаете с простой «Hello World» - таблицы транспортных средств и таблицы драйверов - а затем добавляете сложность по мере необходимости: автоматизированные потоки, отслеживание в реальном времени, пользовательские панели инструментов и интеграции с аппаратным и программным обеспечением, которое вы уже используете. Поскольку платформа является открытой и исходной базой данных, вы никогда не замыкаетесь в дорожной карте поставщика. Ваши данные остаются вашими, доступными через стандартный SQL или API-слой.

Для начала посетите руководство по быстрому запуску Directus и раскрутите свой первый экземпляр. Если вам нужна готовая схема для операций с флотом, ознакомьтесь с официальной документацией или просмотрите шаблоны сообщества на Directus Marketplace . Для продвинутых интеграций для конкретного флота Marketplace предлагает расширения, которые могут ускорить ваше развитие.

Будущее управления автопарком - модульное, основанное на API и ориентированное на данные. С Directus вы не просто управляете транспортными средствами - вы организуете поток информации, который заставляет ваш флот двигаться. Попрощайтесь с жестким программным обеспечением и приветствуйте мир, где ваш бэкэнд адаптируется к вашим операциям. Добро пожаловать в Directus.