路灯档案
使用AI代理构建
路灯杆档案后端

路灯杆档案后端模板
杆库存、灯泡类型跟踪和维护历史

一个在 Back4app 上的生产就绪 路灯杆档案后端,具有杆记录、灯泡类型跟踪、镇流器日志和维护历史。包括ER图、字段字典、JSON模式、API演示,以及一个 AI代理 提示,便于快速设置。

街灯档案关键要点

此模板为您提供了一个街灯杆档案后端,包含杆记录、灯泡类型跟踪、镇流器日志和维护历史,以便团队和协调员可以基于一个真实来源工作。

  1. 以杆为先的记录为每个杆建模,包括位置、状态、灯泡类型和镇流器日志指针,以便快速查找。
  2. 灯泡类型可见性将灯泡类型、瓦数和更换说明附加到档案中,而不是埋在电子表格中。
  3. 镇流器日志历史存储带有服务日期、技术人员笔记和后续行动的镇流器日志。
  4. 维护可追溯性将维护历史记录链接到杆上,以便检查、维修和更换保持易于审计。
  5. 移动和网络档案访问通过一个REST和GraphQL后端为杆档案服务现场工作人员和办公室员工。

概述:街灯杆档案

如果街灯档案文档存放在收件箱中,您将始终差一份未发的附件而无法为查找辩护。客户在您承诺的预计到达时间中感觉到这一点。该模板在Back4app上构建了杆、灯泡类型、镇流器日志和维护记录,并内置审计追踪,以便街灯档案审查能够显示可辩护的时间线。该架构涵盖杆(杆代码、位置名称、杆类型、状态)、灯泡类型(名称、技术、功率、寿命小时)、镇流器日志(杆、镇流器型号、服务日期、技术员备注)和维护条目(杆、操作类型、执行时间、结果),并内置授权和档案工作流。连接您首选的前端,保持杆的历史记录有序。

最佳适用:

街灯库存系统杆维护档案公共事业现场应用公用事业操作仪表板MVP发布需要BaaS进行杆记录和日志的团队

您在街灯档案模板中获得的内容

良好的街灯档案习惯就像一种自律:每次都是相同的字段、相同的生命周期语言和相同的审计轨迹。

首先查看杆、灯泡类型和镇流器日志,然后打开堆栈卡以查看特定SDK的备注和集成模式。

核心路灯档案功能

这个中心中的每个技术卡片都使用相同的档案架构,包括杆子、灯泡类型、镇流器日志和维护条目。

杆登记

Pole类存储poleCode、locationName、poleType、status和bulbType指针。

灯泡类型目录

BulbType类保存名称、技术、瓦特数和寿命小时数。

镇流器日志跟踪

BallastLog 类记录杆子、镇流器模型、服务日期和技术员备注。

维护历史

MaintenanceEntry 类存储杆子、操作类型、执行时间和结果。

为什么选择用 Back4app 构建您的路灯杆档案后台?

Back4app 提供了杆档案的基本功能——杆、灯泡类型、压球日志和维护条目——这样您的团队可以将时间花在检查和历史记录上,而不是编写后台代码。

  • 杆和灯泡跟踪: Pole 类将 poleCode、locationName、bulbType 和 status 集中在一个地方。
  • 维护和压球历史: BallastLog 和 MaintenanceEntry 保留每个杆的服务日期、技术员笔记和结果。
  • 实时 + API 访问: 使用 Live Queries 获取最新的维护更新,同时通过 REST 和 GraphQL 公开相同的档案。

构建一个具有移动、网页和现场工具的一个后台合同的实际杆档案。

杆档案的核心优点

一个保持杆子详细信息、灯具类型和服务历史易于查询的路灯档案后端。

更快的杆查找

通过poleCode或locationName搜索杆,而不是排序不相连的电子表格。

灯泡类型清晰度

将BulbType字段如技术和瓦数附加到每个杆上,以便工作人员知道他们正在服务什么。

镇流器日志连续性

存储带有serviceDate和technicianNote的BallastLog条目,以便重复问题可见。

附带的历史记录

将MaintenanceEntry记录链接到同一个杆上,以便档案保持完整的服务记录。

适合现场的数据访问

为检查员、监督员和办公室协调员提供一个API,他们都需要相同的杆档案。

AI 引导工作流

从单个结构化提示生成档案架构和集成计划。

准备好启动你的路灯档案应用吗?

让 Back4app AI 代理搭建你的电杆档案后台,并从一个提示生成灯泡类型跟踪、镇流器日志和维护历史。

免费开始 - 每月 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

原始 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": "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(字符串,必需),locationName(字符串,必需),poleType(字符串,必需),status(字符串,必需),bulbType(指向 BulbType,选填),ballastLog(指向 BallastLog,选填);objectId,createdAt,updatedAt(系统)。
3. BulbType:name(字符串,必需),technology(字符串,必需),wattage(数字,必需),lifespanHours(数字,选填),notes(字符串,选填);objectId,createdAt,updatedAt(系统)。
4. BallastLog:pole(指向 Pole,必需),ballastModel(字符串,必需),serviceDate(日期,必需),technicianNote(字符串,选填),replaced(布尔,必需);objectId,createdAt,updatedAt(系统)。
5. MaintenanceEntry:pole(指向 Pole,必需),actionType(字符串,必需),performedAt(日期,必需),outcome(字符串,必需),technicianName(字符串,选填);objectId,createdAt,updatedAt(系统)。

安全性:
- 只有授权用户才能创建或更新路灯杆档案条目。使用云代码验证路灯历史写入。

认证:
- 注册,登录,登出。

行为:
- 列出路灯杆,查看灯泡类型详情,添加镇流器日志,并附加维护历史。

交付:
- 带有模式、ACL 和 CLP 的 Back4app 应用程序;用于路灯杆、灯泡类型、镇流器日志和维护历史的前端。

按下面的按钮打开代理,模板提示将预填充。

这是没有技术后缀的基础提示。您可以在之后调整生成的前端堆栈。

几分钟内部署每月 50 个免费提示无需信用卡

API 游乐场

针对街灯档案模式尝试 REST 和 GraphQL 端点。响应使用模拟数据,不需要 Back4app 账户。

加载沙盒…

使用与此模板相同的模式。

选择您的技术

展开每个卡片以查看如何将Pole、BulbType和BallastLog与您选择的技术栈集成。

Flutter 街灯档案后端

React 街灯档案后端

React 原生 街灯档案后端

Next.js 街灯档案后端

JavaScript 街灯档案后端

Android 街灯档案后端

iOS 街灯档案后端

Vue 街灯档案后端

Angular 街灯档案后端

GraphQL 街灯档案后端

REST API 街灯档案后端

PHP 街灯档案后端

.NET 街灯档案后端

您从每项技术中获得的内容

每个技术栈都使用相同的路灯档案架构和API合同。

统一的杆档案数据结构

通过一个一致的架构管理Pole、BulbType、BallastLog和MaintenanceEntry。

为现场工作人员提供灯泡类型查询

当打开杆时显示灯泡技术、功率和使用寿命小时。

镇流器和维护历史

将服务记录附加到同一电线杆上,以便后续工作易于追踪。

基于角色的档案工作流

通过权限和云代码将协调员操作与技术员操作分开。

每个客户端的REST/GraphQL访问

将仪表板、移动表单和报告工具连接到同一个档案后端。

路灯档案框架比较

比较所有支持技术的设置速度、SDK 风格和 AI 支持。

框架设置时间存档利益SDK 类型AI 支持
大约 5 分钟用于现场和办公室 Pole 存档应用的单一代码库。类型化 SDK全部
少于 5 分钟快速网页仪表板用于 Pole 库存和日志。类型化 SDK全部
约 3-7 分钟跨平台移动应用程序,用于检查和维护历史记录。类型化 SDK全部
快速(5分钟)设置为协调员提供的服务器渲染归档门户。类型化 SDK全部
大约 3-5 分钟用于柱查找屏幕的轻量级 Web 集成。类型化 SDK全部
大约 5 分钟适用于现场工作的 Android 原生应用。类型化 SDK全部
在5分钟内用于检查和服务记录的原生iOS应用程序。类型化SDK全部
约3-7分钟Reactive网页UI用于档案浏览。类型化SDK全部
快速(5分钟)设置用于杆管理的企业操作控制台。类型化SDK全部
在2分钟内灵活的 __品牌0__ API 用于嵌套归档查询。__品牌0__ API全部
快速(2分钟)设置__品牌0__ 与服务工具和仪表板的集成。__品牌0__全部
约3分钟服务器端 __品牌0__ 后端用于归档门户。__品牌0__全部
约3–7分钟.NET 后端用于操作系统。类型化 SDK全部

设置时间反映了从项目启动到使用此模板模式进行第一次 Pole 或 MaintenanceEntry 查询的预期持续时间。

常见问题

关于使用此模板构建路灯杆档案后端的常见问题。

完整的可信街灯档案审核历史看起来是什么样的?
街灯档案程序如何干净地捕捉培训、证明和纠正措施?
在组织成长时,推荐的收紧街灯档案权限的路径是什么?
我如何在Flutter中查询杆子详情?
我如何为维护历史构建一个Next.js仪表板?
React 本地可以离线缓存杆记录吗?
我该如何阻止对维护条目的未经授权编辑?
在 Android 上显示灯泡类型数据的最佳方式是什么?

全球开发者信赖

加入团队,使用 Back4app 模板更快地发布归档产品

G2 Users Love Us Badge

准备好构建您的路灯杆归档应用了吗?

在几分钟内开始您的杆归档项目。无需信用卡。

选择技术