街灯アーカイブ
AIエージェントで構築
街灯ポールアーカイブバックエンド

街灯ポールアーカイブバックエンドテンプレート
ポール在庫、バルブタイプの追跡、メンテナンス履歴

Back4app 上の生産準備完了の街灯ポールアーカイブバックエンド:ポール記録、バルブタイプ追跡、バラストログ、メンテナンス履歴を含みます。ER図、フィールド辞書、JSONスキーマ、APIプレイグラウンド、迅速なセットアップのためのAIエージェントプロンプトを含みます。

街灯アーカイブの重要なポイント

このテンプレートは、ポールレコード、バルブタイプ追跡、バラストログ、メンテナンス履歴を備えた街灯ポールアーカイブのバックエンドを提供し、クルーとコーディネーターが一つの真実のソースを基に作業できるようにします。

  1. ポール優先レコード各ポールを、位置、ステータス、バルブタイプ、バラストログポインタでモデル化し、高速検索を実現します。
  2. バルブタイプの可視性バルブタイプ、ワット数、交換ノートをアーカイブに添付して、スプレッドシートに埋もれないようにします。
  3. バラストログ履歴サービス日、技術者のメモ、フォローアップアクションを含むバラストログを保存します。
  4. メンテナンストレーサビリティポールにメンテナンス履歴をリンクさせることで、検査、修理、交換の監査が容易になります。
  5. モバイルおよびウェブアーカイブアクセスフィールドクルーとオフィススタッフに、ポールアーカイブ用の1つのRESTおよび GraphQL バックエンドを通じてサービスを提供します。

概要: ストリートライトポールアーカイブ

ストリートライトアーカイブのドキュメントが受信トレイにあると、いつでも防御できない発見に対する見逃した添付ファイルが1つある状態になります。顧客は、あなたが約束するETAでそれを感じます。このテンプレートは、ポール、バルブタイプ、バラストログ、およびメンテナンスエントリーを Back4app 上で構築し、監査トレイルを内蔵しているため、ストリートライトアーカイブレビューは防御可能なタイムラインを示すことができます。このスキーマはポール(poleCode、locationName、poleType、status)、バルブタイプ(name、technology、wattage、lifespanHours)、バラストログ(pole、ballastModel、serviceDate、technicianNote)、およびメンテナンスエントリー(pole、actionType、performedAt、outcome)をカバーし、認証およびアーカイブのワークフローが組み込まれています。お好みのフロントエンドに接続して、ポールの履歴を整理された状態に保ちます。

最適:

ストリートライト在庫システムポール維持アーカイブ公共事業フィールドアプリユーティリティ操作ダッシュボードMVPローンチBaaSがポール記録とログのために必要なチーム

ストリートライトアーカイブテンプレートで得られるもの

良いストリートライトアーカイブ習慣は、同じフィールド、同じライフサイクル言語、そして毎回同じ監査トレイルという規律のように見えます。

最初にポール、バルブタイプ、バラストログをレビューし、その後スタックカードを開いてSDK特有のノートと統合パターンを確認してください。

コア街灯アーカイブ機能

このハブのすべてのテクノロジーカードは、ポール、バルブタイプ、バラストログ、およびメンテナンスエントリを使用して同じアーカイブスキーマを使用します。

ポール登録

Poleクラスは、poleCode、locationName、poleType、status、およびbulbTypeポインタを格納します。

バルブタイプカタログ

BulbTypeクラスは、名前、技術、ワット数、および寿命時間を保持します。

バラストログトラッキング

BallastLog クラスはポール、バラストモデル、サービス日付、および技術者ノートを記録します。

メンテナンス履歴

MaintenanceEntry クラスはポール、アクションタイプ、実施日時、および結果を保存します。

なぜBack4appで街灯ポールアーカイブバックエンドを構築するのか?

Back4appはポールアーカイブのプリミティブ—ポール、バルブタイプ、バラストログ、メンテナンスエントリ—を提供するので、チームはバックエンドの配管を書くのではなく、検査と履歴に時間を費やすことができます。

  • ポールとバルブの追跡: Poleクラスは、poleCode、locationName、bulbType、statusを1か所に保持します。
  • メンテナンスとバラストの履歴: BallastLogとMaintenanceEntryは、各ポールのサービス日、技術者のノート、成果を保存します。
  • リアルタイム + APIアクセス: 最新のメンテナンス更新のためにLive Queriesを使用し、RESTとGraphQLを通じて同じアーカイブを公開します。

モバイル、ウェブ、フィールドツール全体で1つのバックエンド契約を持つ実用的なポールアーカイブを構築します。

ポールアーカイブのコア利点

ポールの詳細、ランプタイプ、およびサービス履歴を簡単に照会できる街灯アーカイブバックエンド。

より速いポールの検索

ポールコードまたはロケーション名でポールを検索し、切り離されたスプレッドシートを通して並べ替える必要はありません。

バルブタイプの明確さ

各ポールに技術とワット数などのバルブタイプフィールドを付けて、作業員が何をサービスしているかを知ることができます。

バラストログの継続性

サービス日付と技術者のノートを含むバラストログのエントリを保存し、繰り返し発生する問題を把握できるようにします。

添付されたままの履歴

メンテナンスエントリの記録を同じポールにリンクさせ、アーカイブが完全なサービス履歴を保持します。

現場に優しいデータアクセス

すべてのポールアーカイブが必要な検査官、スーパーバイザー、オフィスコーディネーターのために、1つのAPIを使用します。

AIブートストラップワークフロー

単一の構造化プロンプトからアーカイブスキーマと統合計画を生成します。

ストリートライトアーカイブアプリの準備はできましたか?

Back4app AIエージェントにポールアーカイブバックエンドをスキャフォールドさせ、1つのプロンプトからバルブタイプ追跡、バラストログ、およびメンテナンス履歴を生成させます。

無料で開始 — 月あたり50のAIエージェントプロンプト、クレジットカード不要

技術スタック

この街灯ポールアーカイブバックエンドテンプレートに含まれるすべて。

フロントエンド
13以上のテクノロジー
バックエンド
Back4app
データベース
MongoDB
認証
組み込み認証 + セッション
API
RESTおよびGraphQL
リアルタイム
Live Queries

ポールERダイアグラム

街灯ポールアーカイブスキーマのためのエンティティ関係モデル。

図のソースを見る
Mermaid
erDiagram
    Operator ||--o{ Pole : "assignedOperator"
    Operator ||--o{ BulbRecord : "createdBy"
    Operator ||--o{ BallastLog : "inspectedBy"
    Operator ||--o{ MaintenanceEntry : "performedBy"
    Pole ||--o{ BulbRecord : "pole"
    Pole ||--o{ BallastLog : "pole"
    Pole ||--o{ MaintenanceEntry : "pole"

    Operator {
        String objectId PK
        String username
        String email
        String password
        String role
        Date createdAt
        Date updatedAt
    }

    Pole {
        String objectId PK
        String poleNumber
        String locationLabel
        String bulbType
        Date lastBallastCheckAt
        String status
        String assignedOperatorId FK
        Date createdAt
        Date updatedAt
    }

    BulbRecord {
        String objectId PK
        String poleId FK
        String bulbType
        Date installedAt
        String notes
        String createdById FK
        Date createdAt
        Date updatedAt
    }

    BallastLog {
        String objectId PK
        String poleId FK
        Date inspectionDate
        String ballastCondition
        String actionTaken
        String inspectedById FK
        Date createdAt
        Date updatedAt
    }

    MaintenanceEntry {
        String objectId PK
        String poleId FK
        Date workDate
        String taskType
        String summary
        Boolean resolved
        String performedById FK
        Date createdAt
        Date updatedAt
    }

アーカイブ統合フロー

認証、ポール検索、バルブタイプの更新、バラストログ、メンテナンス履歴の典型的なランタイムフロー。

図のソースを見る
Mermaid
sequenceDiagram
  participant User
  participant App as Streetlight Pole Archive App
  participant Back4app as Back4app Cloud

  User->>App: Sign in to review poles
  App->>Back4app: POST /login
  Back4app-->>App: Session token

  User->>App: Open pole archive
  App->>Back4app: GET /classes/Pole?include=assignedOperator
  Back4app-->>App: Pole list with bulbType and status

  User->>App: Add bulb record or ballast log
  App->>Back4app: POST /classes/BulbRecord
  App->>Back4app: POST /classes/BallastLog
  Back4app-->>App: Saved record IDs

  User->>App: Record maintenance history
  App->>Back4app: POST /classes/MaintenanceEntry
  Back4app-->>App: Maintenance entry saved

  App->>Back4app: Subscribe to live updates for Pole and MaintenanceEntry
  Back4app-->>App: Live query changes

フィールド辞書

ストリートライトアーカイブスキーマ内のすべてのクラスに対するフィールドレベルの完全なリファレンス。

フィールドタイプ説明必須
objectIdStringAuto-generated unique identifier自動
usernameStringLogin name for managers and field staff
emailStringWork email address
passwordStringHashed password (write-only)
roleStringAccess role such as coordinator, inspector, or admin
createdAtDateAuto-generated creation timestamp自動
updatedAtDateAuto-generated last-update timestamp自動

7 フィールドが Operator に

セキュリティと権限

ACL と CLP 戦略がポール、バルブタイプ、バラストログ、およびメンテナンス履歴をどのように保護するか。

役割に応じたアーカイブ編集

認可されたコーディネーターまたは技術者のみが、ポール、バラストログ、およびメンテナンスエントリレコードを作成または変更できます。

履歴の整合性

ポールのアーカイブトレイルに保存する前に、バラストとメンテナンスエントリを検証するために Cloud Code を使用します。

スコープ付き読み取りアクセス

地区、クルー、または作業指示によってアーカイブの読み取りを制限し、フィールドユーザーが必要なポールのみを表示できるようにします。

アーカイブスキーマ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": "Pole",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "poleNumber": {
          "type": "String",
          "required": true
        },
        "locationLabel": {
          "type": "String",
          "required": true
        },
        "bulbType": {
          "type": "String",
          "required": true
        },
        "lastBallastCheckAt": {
          "type": "Date",
          "required": false
        },
        "status": {
          "type": "String",
          "required": true
        },
        "assignedOperator": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Operator"
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "BulbRecord",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "pole": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Pole"
        },
        "bulbType": {
          "type": "String",
          "required": true
        },
        "installedAt": {
          "type": "Date",
          "required": true
        },
        "notes": {
          "type": "String",
          "required": false
        },
        "createdBy": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Operator"
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "BallastLog",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "pole": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Pole"
        },
        "inspectionDate": {
          "type": "Date",
          "required": true
        },
        "ballastCondition": {
          "type": "String",
          "required": true
        },
        "actionTaken": {
          "type": "String",
          "required": true
        },
        "inspectedBy": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Operator"
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "MaintenanceEntry",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "pole": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Pole"
        },
        "workDate": {
          "type": "Date",
          "required": true
        },
        "taskType": {
          "type": "String",
          "required": true
        },
        "summary": {
          "type": "String",
          "required": true
        },
        "resolved": {
          "type": "Boolean",
          "required": true
        },
        "performedBy": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Operator"
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    }
  ]
}

AIエージェントで構築

Back4app AIエージェントを使用して、このテンプレートから実際の街灯ポールアーカイブアプリを生成します。フロントエンド、バックエンド、認証、ポール、バルブタイプ、バラストログ、およびメンテナンス履歴フローが含まれます。

Back4app AIエージェント
構築の準備が整いました
Back4app でこの正確なスキーマと動作を持つ街灯ポールアーカイブアプリのバックエンドを作成します。

スキーマ:
1. ユーザー (Back4app ビルトイン使用): ユーザー名、メール、パスワード; objectId, createdAt, updatedAt (システム).
2. ポール: poleCode (String, 必須), locationName (String, 必須), poleType (String, 必須), status (String, 必須), bulbType (BulbTypeへのポインタ, 任意), ballastLog (BallastLogへのポインタ, 任意); objectId, createdAt, updatedAt (システム).
3. BulbType: name (String, 必須), technology (String, 必須), wattage (Number, 必須), lifespanHours (Number, 任意), notes (String, 任意); objectId, createdAt, updatedAt (システム).
4. BallastLog: pole (Poleへのポインタ, 必須), ballastModel (String, 必須), serviceDate (Date, 必須), technicianNote (String, 任意), replaced (Boolean, 必須); objectId, createdAt, updatedAt (システム).
5. MaintenanceEntry: pole (Poleへのポインタ, 必須), actionType (String, 必須), performedAt (Date, 必須), outcome (String, 必須), technicianName (String, 任意); objectId, createdAt, updatedAt (システム).

セキュリティ:
- 認可されたユーザーのみがポールアーカイブエントリを作成または更新できます。ポールの履歴書き込みを検証するためにクラウドコードを使用してください。

認証:
- サインアップ、ログイン、ログアウト。

動作:
- ポールのリスト、バルブタイプの詳細確認、バラストログの追加、メンテナンス履歴の追加。

配信:
- スキーマ、ACL、CLPを持つ Back4app アプリ; ポール、バルブタイプ、バラストログ、メンテナンス履歴のフロントエンド。

下のボタンを押して、このテンプレートのプロンプトが事前に入力されたエージェントを開きます。

これはテクノロジーサフィックスのない基本プロンプトです。生成されたフロントエンドスタックは後で適応できます。

数分でデプロイ月に50の無料プロンプトクレジットカードは不要

APIプレイグラウンド

GraphQL エンドポイントを対象に街灯アーカイブスキーマに対してRESTを試してみてください。レスポンスはモックデータを使用し、Back4app アカウントは必要ありません。

プレイグラウンドを読み込み中…

このテンプレートと同じスキーマを使用します。

あなたのテクノロジーを選択

各カードを展開して、選択したスタックにPole、BulbType、BallastLogを統合する方法を確認してください。

Flutter ストリートライトアーカイブバックエンド

React ストリートライトアーカイブバックエンド

React ネイティブ ストリートライトアーカイブバックエンド

Next.js ストリートライトアーカイブバックエンド

JavaScript ストリートライトアーカイブバックエンド

Android ストリートライトアーカイブバックエンド

iOS ストリートライトアーカイブバックエンド

Vue ストリートライトアーカイブバックエンド

Angular ストリートライトアーカイブバックエンド

GraphQL ストリートライトアーカイブバックエンド

REST API ストリートライトアーカイブバックエンド

PHP ストリートライトアーカイブバックエンド

.NET ストリートライトアーカイブバックエンド

各テクノロジーで得られるもの

すべてのスタックは同じ街灯アーカイブスキーマとAPI契約を使用します。

統一されたポールアーカイブデータ構造

1つの一貫したスキーマでPole、BulbType、BallastLog、およびMaintenanceEntryを管理します。

現場作業員のためのバルブタイプルックアップ

ポールが開かれたときに、バルブ技術、ワット数、および寿命時間を表示します。

バラストとメンテナンス履歴

サービスノートを同じポールに添付して、フォローアップ作業が簡単に追跡できるようにします。

役割ベースのアーカイブワークフロー

許可とCloud Codeを使用して、コーディネーターのアクションを技術者のアクションから分離します。

REST/GraphQL アクセスをすべてのクライアントに提供

ダッシュボード、モバイルフォーム、およびレポーティングツールを同じアーカイブバックエンドに接続します。

街路灯アーカイブフレームワーク比較

すべてのサポートされている技術間でのセットアップ速度、SDKスタイル、およびAIサポートを比較します。

フレームワークセットアップ時間アーカイブの利点SDKタイプAIサポート
約5分フィールドおよびオフィスのポールアーカイブアプリ用の単一のコードベース。型指定SDK全体
5分未満ポールの在庫とログ用の高速Webダッシュボード。型指定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の運用システム用バックエンド。型付きSDK全体

セットアップ時間は、このテンプレートスキーマを使用したプロジェクトのブートストラップから最初のPoleまたはMaintenanceEntryクエリまでの予想期間を示します。

よくある質問

このテンプレートを使用して街灯ポールアーカイブバックエンドを構築する際の一般的な質問について。

信頼できる街灯アーカイブの監査証跡は、端から端までどのように見えるのか?
街灯アーカイブプログラムは、トレーニング、確認、および是正措置をどのようにクリーンにキャプチャしますか?
組織が成長するにつれて、街灯アーカイブの権限を厳格にするための推奨経路は何ですか?
Flutterでポールの詳細をクエリするにはどうすればよいですか?
Next.jsのメンテナンス履歴用のダッシュボードをどのように構築しますか?
React ネイティブはオフラインでポール記録をキャッシュできますか?
どのようにしてメンテナンスエントリへの無許可の編集を防ぐことができますか?
Android でバルブタイプデータを表示する最良の方法は何ですか?

世界中の開発者に信頼されています

Back4appのテンプレートでアーカイブ製品をより早く出荷するチームに参加しよう

G2 Users Love Us Badge

街灯ポールアーカイブアプリを構築する準備はできましたか?

数分でポールアーカイブプロジェクトを開始します。クレジットカードは不要です。

テクノロジーを選択