Archivo de Farolas
Construir con Agente AI
Backend del Archivo de Polos de Luces de Calle

Plantilla del Backend del Archivo de Polos de Luces de Calle
Inventario de postes, seguimiento de tipos de bombillas y historial de mantenimiento

Un backend de archivo de polos de luces de calle listo para producción en Back4app con registros de postes, seguimiento de tipos de bombillas, registros de balastos y historial de mantenimiento. Incluye diagrama ER, diccionario de campos, esquema JSON, entorno de pruebas API, y un aviso de Agente IA para una configuración rápida.

Conclusiones Clave del Archivo de Farolas

Esta plantilla le proporciona un backend de archivo de postes de farolas con registros de postes, seguimiento del tipo de bombilla, registros de balasto e historial de mantenimiento para que los equipos y coordinadores puedan trabajar desde una única fuente de verdad.

  1. Registros centrados en postesModela cada Poste con ubicación, estado, tipo de bombilla y punteros de registros de balasto para una búsqueda rápida.
  2. Visibilidad del tipo de bombillaMantenga el tipo de bombilla, vatios y notas de reemplazo adjuntos al archivo en lugar de enterrados en hojas de cálculo.
  3. Historial de registros de balastoAlmacene registros de balasto con fechas de servicio, notas del técnico y acciones de seguimiento.
  4. Trazabilidad de mantenimientoVincula el historial de mantenimiento a un Poste para que las inspecciones, reparaciones y reemplazos sean fáciles de auditar.
  5. Acceso a archivos móviles y webSirve a los equipos de campo y al personal de oficina a través de un backend REST y GraphQL para archivos de postes.

Resumen: Archivo de Poste de Lumbrera

Si la documentación del archivo de lumbrera vive en bandejas de entrada, siempre estarás a solo un archivo adjunto perdido de un hallazgo que no puedes defender. Los clientes lo sienten en la ETA que prometes. Esta plantilla estructura Poste, TipoBombilla, RegistroBalasto y EntradaMantenimiento en Back4app con la historia de auditoría incorporada, de modo que las revisiones del archivo de lumbrera puedan mostrar una línea de tiempo defensible. El esquema cubre Poste (codigoPoste, nombreUbicación, tipoPoste, estado), TipoBombilla (nombre, tecnología, vatios, horasVida), RegistroBalasto (poste, modeloBalasto, fechaServicio, notaTécnico) y EntradaMantenimiento (poste, tipoAcción, realizadoEn, resultado) con flujos de trabajo de autenticación y archivo incorporados. Conecta tu frontend preferido y mantén el historial de postes organizado.

Mejor para:

Sistemas de inventario de luminariasArchivos de mantenimiento de postesAplicaciones de campo de obras públicasTableros de operaciones de servicios públicosLanzamientos de MVPEquipos que necesitan un BaaS para registros y registros de postes

Lo que obtienes en la plantilla de Archivo de Luces de Calle

Buenos hábitos de archivo de luces de calle parecen disciplina: los mismos campos, el mismo lenguaje de ciclo de vida y el mismo rastro de auditoría cada vez.

Revisa primero Pole, BulbType y BallastLog, luego abre una tarjeta de pila para ver notas específicas de SDK y patrones de integración.

Características clave del archivo de farolas

Cada tarjeta de tecnología en este hub utiliza el mismo esquema de archivo con Pole, BulbType, BallastLog y MaintenanceEntry.

Registro de postes

La clase Pole almacena poleCode, locationName, poleType, status y punteros de bulbType.

Catálogo de tipos de bombilla

La clase BulbType contiene nombre, tecnología, vatios y lifespanHours.

Seguimiento de registro de balasto

La clase BallastLog registra el polo, ballastModel, serviceDate y technicianNote.

Historial de mantenimiento

La clase MaintenanceEntry almacena el polo, actionType, performedAt y outcome.

¿Por qué construir tu archivo de postes de farola con Back4app?

Back4app te proporciona las primitivas de archivo de postes—Pole, BulbType, BallastLog, y MaintenanceEntry—para que tu equipo pueda dedicar tiempo a las inspecciones y la historia en lugar de escribir la plomería de backend.

  • Seguimiento de postes y bombillas: La clase Pole mantiene poleCode, locationName, bulbType, y status en un solo lugar.
  • Historial de mantenimiento y balastos: BallastLog y MaintenanceEntryPreservan las fechas de servicio, notas de técnicos y resultados para cada poste.
  • Acceso en tiempo real + API: Usa Live Queries para actualizaciones de mantenimiento frescas mientras expones el mismo archivo a través de REST y GraphQL.

Construye un archivo de postes práctico con un contrato de backend en móvil, web y herramientas de campo.

Beneficios clave para archivos de polos

Un backend de archivo de farolas que mantiene los detalles del polo, los tipos de lámpara y el historial de servicio fácil de consultar.

Búsquedas de postes más rápidas

Buscar postes por poleCode o locationName en lugar de clasificar hojas de cálculo desconectadas.

Claridad del tipo de bombilla

Adjuntar campos de BulbType como tecnología y potencia a cada poste para que los equipos sepan qué están sirviendo.

Continuidad del registro de balasto

Almacenar entradas de BallastLog con serviceDate y technicianNote para que los problemas recurrentes sean visibles.

Historia que permanece adjunta

Vincular registros de MaintenanceEntry al mismo poste para que el archivo mantenga un historial de servicio completo.

Acceso a datos amigable para el campo

Usar una API para inspectores, supervisores y coordinadores de oficina que todos necesitan el mismo archivo de postes.

Flujo de trabajo de arranque de IA

Genera el esquema de archivo y el plan de integración a partir de un solo aviso estructurado.

¿Listo para lanzar tu aplicación de archivo de farolas?

Deja que el Agente de IA de Back4app esqueleto tu backend de archivo de postes y genere seguimiento de tipos de bombillas, registros de balastos e historial de mantenimiento a partir de un solo aviso.

Gratis para comenzar — 50 avisos de Agente de IA/mes, no se requiere tarjeta de crédito

Pila técnica

Todo incluido en esta plantilla de backend del archivo del poste de luz.

Frontend
13+ tecnologías
Backend
Back4app
Base de datos
MongoDB
Auth
Autenticación y sesiones integradas
API
REST y GraphQL
Tiempo real
Live Queries

Diagrama ER de postes

Modelo de relación de entidades para el esquema de archivo de postes de luces de calle.

Ver fuente del diagrama
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
    }

Flujo de Integración de Archivo

Flujo típico de tiempo de ejecución para autenticación, búsqueda de postes, actualizaciones de tipo de bombilla, registros de balasto e historial de mantenimiento.

Ver fuente del diagrama
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

Diccionario de Campos

Referencia completa a nivel de campo para cada clase en el esquema del archivo de farola.

CampoTipoDescripciónRequerido
objectIdStringAuto-generated unique identifierAutomático
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 timestampAutomático
updatedAtDateAuto-generated last-update timestampAutomático

7 campos en Operator

Seguridad y Permisos

Cómo la estrategia de ACL y CLP asegura postes, tipos de bombillas, registros de balasto y el historial de mantenimiento.

Ediciones de archivo conscientes del rol

Solo los coordinadores o técnicos autorizados pueden crear o modificar registros de Pole, BallastLog y MaintenanceEntry.

Integridad del historial

Utilice Cloud Code para validar las entradas de balasto y mantenimiento antes de guardarlas en la trayectoria del archivo de un poste.

Acceso de lectura limitado

Restringir las lecturas de archivos por distrito, equipo o orden de trabajo para que los usuarios de campo solo vean los postes que necesitan.

Esquema de Archivo JSON

Definición de esquema JSON en bruto lista para copiar en Back4app o usar como referencia de implementación.

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
        }
      }
    }
  ]
}

Construir con Agente AI

Usa el Agente AI de Back4app para generar una aplicación de archivo de postes de luminarias real a partir de esta plantilla, incluyendo frontend, backend, autenticación, y flujos de tipo de poste, tipo de bombilla, registro de balasto e historial de mantenimiento.

Agente AI de Back4app
Listo para construir
Crea un backend de aplicación de archivo de postes de luz en Back4app con este esquema exacto y comportamiento.

Esquema:
1. Usuario (usar Back4app incorporado): nombre de usuario, correo electrónico, contraseña; objectId, createdAt, updatedAt (sistema).
2. Poste: poleCode (String, requerido), locationName (String, requerido), poleType (String, requerido), status (String, requerido), bulbType (Pointer a BulbType, opcional), ballastLog (Pointer a BallastLog, opcional); objectId, createdAt, updatedAt (sistema).
3. BulbType: name (String, requerido), technology (String, requerido), wattage (Number, requerido), lifespanHours (Number, opcional), notes (String, opcional); objectId, createdAt, updatedAt (sistema).
4. BallastLog: pole (Pointer a Pole, requerido), ballastModel (String, requerido), serviceDate (Date, requerido), technicianNote (String, opcional), replaced (Boolean, requerido); objectId, createdAt, updatedAt (sistema).
5. MaintenanceEntry: pole (Pointer a Pole, requerido), actionType (String, requerido), performedAt (Date, requerido), outcome (String, requerido), technicianName (String, opcional); objectId, createdAt, updatedAt (sistema).

Seguridad:
- Solo los usuarios autorizados pueden crear o actualizar entradas del archivo de postes. Usa Cloud Code para validar las escrituras del historial del poste.

Autenticación:
- Registro, inicio de sesión, cierre de sesión.

Comportamiento:
- Listar postes, revisar detalles del tipo de bombilla, agregar registros de balasto y agregar historial de mantenimiento.

Entrega:
- Aplicación Back4app con esquema, ACLs, CLPs; frontend para postes, tipos de bombillas, registros de balasto y historial de mantenimiento.

Presiona el botón a continuación para abrir el Agente con este aviso de plantilla pre-rellenado.

Este es el aviso base sin un sufijo tecnológico. Puedes adaptar la pila de frontend generada después.

Desplegar en minutos50 avisos gratis / mesNo se requiere tarjeta de crédito

API Playground

Prueba REST y los endpoints de GraphQL contra el esquema de archivo de postes de luz. Las respuestas usan datos simulados y no requieren una cuenta de Back4app.

Cargando playground…

Utiliza el mismo esquema que esta plantilla.

Elige tu tecnología

Expande cada tarjeta para ver cómo integrar Pole, BulbType y BallastLog con tu pila elegida.

Flutter Archivo de farolas Backend

React Archivo de farolas Backend

React Nativo Archivo de farolas Backend

Next.js Archivo de farolas Backend

JavaScript Archivo de farolas Backend

Android Archivo de farolas Backend

iOS Archivo de farolas Backend

Vue Archivo de farolas Backend

Angular Archivo de farolas Backend

GraphQL Archivo de farolas Backend

REST API Archivo de farolas Backend

PHP Archivo de farolas Backend

.NET Archivo de farolas Backend

Lo que obtienes con cada tecnología

Cada pila utiliza el mismo esquema de archivo de farolas y contratos de API.

Estructura de datos unificada del archivo de postes

Gestiona Pole, BulbType, BallastLog y MaintenanceEntry con un esquema consistente.

Búsquedas de tipo de bombilla para equipos de campo

Mostrar tecnología de bombilla, vatios y horas de vida útil cuando se abre un poste.

Historial de balasto y mantenimiento

Mantenga las notas de servicio adjuntas al mismo poste para que el trabajo de seguimiento sea fácil de rastrear.

Flujos de trabajo de archivo basados en roles

Separe las acciones del coordinador de las acciones del técnico con permisos y Cloud Code.

Acceso REST/GraphQL para cada cliente

Conecte tableros, formularios móviles y herramientas de informes al mismo backend de archivo.

Comparación del Marco del Archivo de Aldea Lumínica

Compara la velocidad de configuración, el estilo del SDK y el soporte de IA a través de todas las tecnologías compatibles.

MarcoTiempo de ConfiguraciónBeneficio de archivoTipo de SDKSoporte de IA
Aproximadamente 5 minutosBase de código única para aplicaciones de archivo de postes en campo y oficina.SDK tipadoCompleto
Menos de 5 minutosTablero web rápido para inventario de postes y registros.SDK tipadoCompleto
~3–7 minutosAplicación móvil multiplataforma para inspecciones e historial de mantenimiento.SDK tipadoCompleto
Configuración rápida (5 min)Portal de archivo renderizado en servidor para coordinadores.SDK tipadoCompleto
~3–5 minIntegración web ligera para pantallas de búsqueda de postes.SDK tipadoCompleto
Acerca de 5 minAplicación nativa Android para equipos en el campo.SDK tipadoCompleto
Menos de 5 minutosAplicación nativa de iOS para inspecciones y notas de servicio.SDK escritoCompleto
~3–7 minInterfaz web de Reactiva para navegación de archivos.SDK escritoCompleto
Configuración rápida (5 min)Consola de operaciones empresariales para gestión de postes.SDK escritoCompleto
Menos de 2 minAPI flexible de GraphQL para consultas de archivos anidados.GraphQL APICompleto
Configuración rápida (2 min)Integración de REST API para herramientas de servicio y paneles de control.REST APICompleto
~3 minBackend de PHP del lado del servidor para portales de archivos.REST APICompleto
~3–7 min.NET backend para sistemas de operaciones.SDK tipadoCompleto

El tiempo de configuración refleja la duración esperada desde el inicio del proyecto hasta la primera consulta de Pole o MaintenanceEntry utilizando este esquema de plantilla.

Preguntas Frecuentes

Preguntas comunes sobre cómo construir un backend de archivo de postes de luz con esta plantilla.

¿Cómo se ve un rastro de auditoría de archivo de luminarias creíble de principio a fin?
¿Cómo capturan los programas de archivo de luminarias la capacitación, las atestaciones y las acciones correctivas de manera clara?
¿Cuál es el camino recomendado para ajustar los permisos de archivo de luminarias a medida que la organización crece?
¿Cómo consulto los detalles del poste en Flutter?
¿Cómo construyo un panel de Next.js para el historial de mantenimiento?
¿Puede React almacenar registros de postes en caché sin conexión?
¿Cómo evito ediciones no autorizadas en las entradas de mantenimiento?
¿Cuál es la mejor manera de mostrar datos del tipo de bombilla en Android?

Confiado por desarrolladores en todo el mundo

Únete a equipos que envían productos archivados más rápido con plantillas de Back4app

G2 Users Love Us Badge

¿Listo para construir tu aplicación de archivo de postes de luz?

Inicia tu proyecto de archivo de postes en minutos. No se requiere tarjeta de crédito.

Elegir Tecnología