Backend de la Aplicación de Alquiler de Baños Portátiles para Sitio, Pedido, Servicio y GPS
Enrutamiento de Sitios, Visitas de Servicio y Seguimiento de Unidades
Un backend de alquiler de baños portátiles listo para producción en Back4app construido alrededor de Usuario, Sitio, UnidadDeInventario, PedidoDeAlquiler, IntervaloDeServicio, y PingDeUbicación. Sigue los despachos, visitas de servicio y pings de GPS sin tener que unir un backend personalizado.
Puntos clave sobre el alquiler
Esta plantilla te ofrece un backend de alquiler de baños portátiles centrado en Usuario, Sitio, UnidadDeInventario, OrdenDeAlquiler, IntervaloDeServicio, y PingDeUbicación para que los despachadores, propietarios y clientes puedan mantenerse alineados.
- Los pedidos de alquiler permanecen vinculados a los sitios — Usa RentalOrder.site y RentalOrder.assignedUnits para mantener cada reserva atada al sitio de trabajo y a las unidades de baño portátil correctas.
- Las visitas de servicio son rastreables — Modela cada IntervaloDeServicio con serviceCode, scheduledAt, completedAt, unit, performedBy, y serviceNotes.
- El estado del inventario es explícito — InventoryUnit.status e InventoryUnit.lastServicedAt muestran si una unidad está disponible, despachada, en limpieza o en mantenimiento.
- Los pings de GPS soportan el trabajo de campo — LocationPing almacena gpsLat, gpsLng, source, unit y enlaces de orden opcionales para la aplicación del conductor, el rastreador o las actualizaciones de despacho.
Descripción general: Aplicación de alquiler de inodoros portátiles
Las devoluciones y las inspecciones cierran el círculo en el alquiler de inodoros portátiles: el sistema debe capturar la condición y la responsabilidad antes de que comience el siguiente alquiler. El costo se muestra en devoluciones de llamada y créditos. Utiliza las entidades principales en Back4app para codificar la disponibilidad de alquiler de inodoros portátiles, los ganchos de precios y los registros de cumplimiento en un backend cohesivo. El esquema cubre User, Site, InventoryUnit, RentalOrder, ServiceInterval y LocationPing con funciones de autenticación y flujo de trabajo de alquiler integradas. Conecta tu frontend preferido y envía más rápido.
Mejor para:
Cómo está organizado este backend de alquiler de baños portátiles
Si la incorporación de un nuevo empleado en el alquiler de baños portátiles requiere conocimientos tribales, estás a un paso de un único punto de falla.
El hub mantiene registros de usuarios basados en roles, asignación de unidades y seguimiento del estado, registros de intervalos de servicio en un lenguaje consistente para que producto, operaciones e ingeniería signifiquen lo mismo cuando dicen “registro.”
Características principales del alquiler de inodoros portátiles
Cada tarjeta de tecnología en este hub utiliza el mismo esquema de alquiler de inodoro portátil con User, Site, InventoryUnit, RentalOrder, ServiceInterval y LocationPing.
Registros de usuario basados en roles
El usuario almacena nombre de usuario, correo electrónico, contraseña y rol para el acceso de despachador, propietario o cliente.
Asignación de unidades y seguimiento de estado
InventoryUnit vincula unitTag, unitType, status, currentSite y owner.
Registros de intervalos de servicio
ServiceInterval almacena serviceCode, scheduledAt, completedAt, status, unit y performedBy.
pings de ubicación GPS
LocationPing mantiene pingedAt, gpsLat, gpsLng, source, unit y order.
Coordinación de sitio y alquiler
El sitio y RentalOrder preservan el lugar de trabajo, el contacto y las unidades de inodoro portátil asignadas.
¿Por qué construir tu backend de alquiler de baños portátiles con Back4app?
Back4app te brinda las primitivas de alquiler, ruta y servicio para que tu equipo pueda centrarse en el despacho y el trabajo en el sitio en lugar de en la infraestructura.
- •Los registros del sitio y del pedido permanecen vinculados: El sitio, RentalOrder y InventoryUnit mantienen cada ubicación de trabajo, reserva y asignación de activos en un solo rastro.
- •Los registros de servicio están estructurados: ServiceInterval captura serviceCode, scheduledAt, completedAt, serviceNotes, performedBy y la unidad que tocó.
- •El inventario se mantiene actualizado: InventoryUnit muestra si una unidad está disponible, despachada, en limpieza o en mantenimiento mientras Live Queries mantiene informados a los escritorios.
Construya e itere rápidamente sobre las operaciones de alquiler con un contrato backend en todas las plataformas.
Beneficios del alquiler de baños portátiles
Un backend de alquiler que te ayuda a mantener rutas, trabajo de servicio e inventario alineados.
Decisiones de despacho más rápidas
Utiliza Site, RentalOrder e InventoryUnit en lugar de reunir datos de ruta desde cero.
Responsabilidad clara en el servicio
Utiliza ServiceInterval, serviceCode y performedBy para mostrar quién completó cada intervalo y cuándo sucedió.
Las actualizaciones del cliente se mantienen consistentes
Mantén User, Site.contactName y Site.contactPhone vinculados a la orden de alquiler correcta.
El control de inventario es explícito
InventoryUnit.status y lastServicedAt facilitan marcar las unidades que están disponibles, despachadas, en limpieza o en mantenimiento.
Operaciones conscientes de la ubicación
LocationPing.gpsLat y gpsLng ayudan a los equipos a verificar dónde se entregó o se dio servicio a una unidad.
Flujo de trabajo inicial de IA
Genera andamiaje de backend y orientación de integración rápidamente con un solo aviso estructurado.
¿Listo para lanzar tu aplicación de alquiler de inodoros portátiles?
Deja que el Agente de IA de Back4app construya tu backend de alquiler de inodoros portátiles y genere flujos de Site, InventoryUnit, RentalOrder, ServiceInterval y LocationPing desde un solo aviso.
Gratis para comenzar — 50 avisos de Agente de IA/mes, no se requiere tarjeta de crédito
Tecnología de alquiler portátil
Todo incluido en esta plantilla de backend de alquiler de inodoros portátiles.
Mapa de esquema de alquiler
Modelo de relación de entidades para el esquema de backend de alquiler de inodoros portátiles.
Esquema que abarca usuarios, sitios, unidades de inventario, órdenes de alquiler, intervalos de servicio y pings de ubicación.
Ver fuente del diagrama
erDiagram
User ||--o{ Site : "customer"
User ||--o{ InventoryUnit : "owner"
User ||--o{ RentalOrder : "customer"
User ||--o{ ServiceInterval : "performedBy"
User ||--o{ LocationPing : "capturedBy"
Site ||--o{ InventoryUnit : "currentSite"
Site ||--o{ RentalOrder : "site"
InventoryUnit ||--o{ RentalOrder : "assignedUnits"
InventoryUnit ||--o{ ServiceInterval : "unit"
InventoryUnit ||--o{ LocationPing : "unit"
RentalOrder ||--o{ ServiceInterval : "order"
RentalOrder ||--o{ LocationPing : "order"
User {
String objectId PK
String username
String email
String password
String role
Date createdAt
Date updatedAt
}
Site {
String objectId PK
String siteCode
String name
String address
Number gpsLat
Number gpsLng
String contactName
String contactPhone
String customerId FK
Date createdAt
Date updatedAt
}
InventoryUnit {
String objectId PK
String unitTag
String unitType
String status
Date lastServicedAt
String currentSiteId FK
String ownerId FK
Date createdAt
Date updatedAt
}
RentalOrder {
String objectId PK
String orderNumber
String status
Date startDate
Date endDate
String siteId FK
Array assignedUnits
String customerId FK
Number serviceIntervalDays
String notes
Date createdAt
Date updatedAt
}
ServiceInterval {
String objectId PK
String serviceCode
Date scheduledAt
Date completedAt
String status
String orderId FK
String unitId FK
String serviceNotes
String performedById FK
Date createdAt
Date updatedAt
}
LocationPing {
String objectId PK
Date pingedAt
Number gpsLat
Number gpsLng
String source
String unitId FK
String orderId FK
String capturedById FK
Date createdAt
Date updatedAt
}
Flujo de Integración de Despacho
Flujo de ejecución típico para inicio de sesión, búsqueda de OrdenDeAlquiler, asignación de UnidadDeInventario, registro de IntervaloDeServicio y captura de UbicaciónPing.
Ver fuente del diagrama
sequenceDiagram
participant User
participant App as Portable Toilet Rental App
participant Back4app as Back4app Cloud
User->>App: Sign in as dispatcher, owner, or customer
App->>Back4app: POST /login
Back4app-->>App: Session token
User->>App: Open rental dashboard
App->>Back4app: GET /classes/RentalOrder?include=site,assignedUnits
Back4app-->>App: RentalOrder list
User->>App: Add or assign a portable toilet unit
App->>Back4app: POST /classes/InventoryUnit or PUT /classes/RentalOrder
Back4app-->>App: InventoryUnit saved
User->>App: Record a service interval or GPS ping
App->>Back4app: POST /classes/ServiceInterval or POST /classes/LocationPing
Back4app-->>App: Visit and location tracked
App->>Back4app: Live query updates for status changes
Back4app-->>App: Updated order, service, and inventory statusGuía de Campo de Alquiler
Referencia completa a nivel de campo para cada clase en el esquema de alquiler de inodoros portátiles.
| Campo | Tipo | Descripción | Requerido |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | Automático |
| username | String | User login name | |
| String | User email address | ||
| password | String | Hashed password (write-only) | |
| role | String | Role of the user (e.g., dispatcher, owner, customer) | |
| createdAt | Date | Auto-generated creation timestamp | Automático |
| updatedAt | Date | Auto-generated last-update timestamp | Automático |
7 campos en User
Control de acceso para datos de alquiler
Cómo la estrategia ACL y CLP asegura a usuarios, sitios, pedidos, visitas de servicio y pings de ubicación.
Controles de cuenta del cliente
Sólo el cliente puede actualizar sus propios campos de Usuario y ver su información de Sitio, PedidoDeAlquiler, IntervaloDeServicio y datos de PingDeUbicación según lo asignado.
Integridad del servicio y del inventario
Solo el personal autorizado puede crear registros de ServiceInterval y LocationPing, y solo los propietarios de activos pueden gestionar el estado de InventoryUnit.
Acceso a ruta con alcance
Limitar las lecturas a las filas de Site, RentalOrder e InventoryUnit vinculadas al plan de despacho actual, especialmente para equipos de campo y vistas orientadas al cliente.
Esquema JSON
Definición de esquema JSON en bruto lista para copiar en Back4app o utilizar como referencia de implementación.
{
"classes": [
{
"className": "User",
"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": "Site",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"siteCode": {
"type": "String",
"required": true
},
"name": {
"type": "String",
"required": true
},
"address": {
"type": "String",
"required": true
},
"gpsLat": {
"type": "Number",
"required": true
},
"gpsLng": {
"type": "Number",
"required": true
},
"contactName": {
"type": "String",
"required": false
},
"contactPhone": {
"type": "String",
"required": false
},
"customer": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "InventoryUnit",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"unitTag": {
"type": "String",
"required": true
},
"unitType": {
"type": "String",
"required": true
},
"status": {
"type": "String",
"required": true
},
"lastServicedAt": {
"type": "Date",
"required": false
},
"currentSite": {
"type": "Pointer",
"required": false,
"targetClass": "Site"
},
"owner": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "RentalOrder",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"orderNumber": {
"type": "String",
"required": true
},
"status": {
"type": "String",
"required": true
},
"startDate": {
"type": "Date",
"required": true
},
"endDate": {
"type": "Date",
"required": false
},
"site": {
"type": "Pointer",
"required": true,
"targetClass": "Site"
},
"assignedUnits": {
"type": "Array",
"required": true,
"targetClass": "InventoryUnit"
},
"customer": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"serviceIntervalDays": {
"type": "Number",
"required": true
},
"notes": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "ServiceInterval",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"serviceCode": {
"type": "String",
"required": true
},
"scheduledAt": {
"type": "Date",
"required": true
},
"completedAt": {
"type": "Date",
"required": false
},
"status": {
"type": "String",
"required": true
},
"order": {
"type": "Pointer",
"required": true,
"targetClass": "RentalOrder"
},
"unit": {
"type": "Pointer",
"required": true,
"targetClass": "InventoryUnit"
},
"serviceNotes": {
"type": "String",
"required": false
},
"performedBy": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "LocationPing",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"pingedAt": {
"type": "Date",
"required": true
},
"gpsLat": {
"type": "Number",
"required": true
},
"gpsLng": {
"type": "Number",
"required": true
},
"source": {
"type": "String",
"required": true
},
"unit": {
"type": "Pointer",
"required": true,
"targetClass": "InventoryUnit"
},
"order": {
"type": "Pointer",
"required": false,
"targetClass": "RentalOrder"
},
"capturedBy": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
}
]
}Construido con el Agente de IA
Utiliza el Agente de IA de Back4app para generar una verdadera aplicación de alquiler de inodoros portátiles a partir de esta plantilla, incluyendo frontend, backend, autenticación y flujos de Site, InventoryUnit, RentalOrder, ServiceInterval y LocationPing.
Crea un backend seguro para una aplicación de Alquiler de Baños Portátiles en Back4app con este esquema y comportamiento exacto. Esquema: 1. Usuario (utiliza Back4app integrado): nombre de usuario, correo electrónico, contraseña, rol; objectId, createdAt, updatedAt (sistema). 2. Sitio: códigoDelSitio, nombre, dirección, gpsLat, gpsLng, nombreDeContacto, teléfonoDeContacto, cliente (Puntero a Usuario); objectId, createdAt, updatedAt (sistema). 3. UnidadDeInventario: etiquetaUnidad, tipoUnidad, estado, últimoServicioEn, sitioActual (Puntero a Sitio), propietario (Puntero a Usuario); objectId, createdAt, updatedAt (sistema). 4. OrdenDeAlquiler: númeroDeOrden, estado, fechaInicio, fechaFin, sitio (Puntero a Sitio), unidadesAsignadas (Array de Puntero<UnidadDeInventario>), cliente (Puntero a Usuario), intervaloDeServicioDías, notas; objectId, createdAt, updatedAt (sistema). 5. IntervaloDeServicio: códigoDeServicio, programadoEn, completadoEn, estado, orden (Puntero a OrdenDeAlquiler), unidad (Puntero a UnidadDeInventario), notasDeServicio, realizadoPor (Puntero a Usuario); objectId, createdAt, updatedAt (sistema). 6. UbicaciónPing: pingadoEn, gpsLat, gpsLng, fuente, unidad (Puntero a UnidadDeInventario), orden (Puntero a OrdenDeAlquiler, opcional), capturadoPor (Puntero a Usuario); objectId, createdAt, updatedAt (sistema). Seguridad: - Los clientes solo pueden ver su propio Sitio, OrdenDeAlquiler, IntervaloDeServicio y entradas de UbicaciónPing. - Los despachadores pueden crear y actualizar registros de IntervaloDeServicio y capturar datos de UbicaciónPing. - Los propietarios de activos pueden gestionar el estado de UnidadDeInventario y ver asignaciones de órdenes. - Mantener los campos de ubicación y contacto del cliente privados a menos que el rol esté autorizado. Autenticación: - Registro, inicio de sesión, cierre de sesión. Comportamiento: - Listar órdenes de alquiler, crear sitios, asignar unidades de inventario, programar intervalos de servicio y registrar pings GPS. - Mantener el estado de inventario y el historial de servicio precisos para la visibilidad del despacho y del cliente. Entregar: - Aplicación Back4app con esquema, CLPs, ACLs y flujos de frontend para el personal de alquiler, propietarios de activos y clientes que reservan servicio de baños portátiles.
Presiona el botón de abajo para abrir el Agente con este aviso de plantilla pre-rellenado.
Este es el aviso base sin un sufijo de tecnología. Puedes adaptar la pila de frontend generada después.
API Sandbox
Prueba los endpoints REST y GraphQL contra el esquema de alquiler de inodoros portátiles. Las respuestas utilizan datos simulados y no requieren una cuenta de Back4app.
Utiliza el mismo esquema que esta plantilla.
Elige tu pila
Expande cada tarjeta para ver cómo integrar Site, InventoryUnit y RentalOrder con tu stack elegido.
Backend de alquiler de baños portátiles Flutter
Backend de alquiler de baños portátiles React
Backend de alquiler de baños portátiles React Nativo
Backend de alquiler de baños portátiles Next.js
Backend de alquiler de baños portátiles JavaScript
Backend de alquiler de baños portátiles Android
Backend de alquiler de baños portátiles iOS
Backend de alquiler de baños portátiles Vue
Backend de alquiler de baños portátiles Angular
Backend de alquiler de baños portátiles GraphQL
Backend de alquiler de baños portátiles REST API
Backend de alquiler de baños portátiles PHP
Backend de alquiler de baños portátiles .NET
Lo que obtienes con cada tecnología
Cada stack utiliza el mismo esquema de backend de alquiler de inodoros portátiles y contratos de API.
Estructura de datos de alquiler unificada
Gestiona User, Site, InventoryUnit, RentalOrder, ServiceInterval y LocationPing con un esquema consistente.
Registros de intervalos de servicio para alquileres
Registra cada limpieza, reabastecimiento e inspección con el mismo modelo ServiceInterval.
Seguimiento de ubicación con GPS
Mantén la latitud y longitud de LocationPing vinculadas a la unidad de inventario y al pedido de alquiler correctos.
Control de inventario para unidades portátiles
Define los campos de estado y lastServicedAt para stock, mantenimiento y despacho.
REST/GraphQL APIs para alquileres
Integra clientes móviles y web con puntos finales flexibles para flujos de pedidos y servicios.
Arquitectura de operaciones extensible
Agrega alertas de despacho, fotos de inspección o clases de facturación más tarde sin romper el modelo base.
Comparación de Pilas de Alquiler Portables
Compara la velocidad de configuración, el estilo del SDK y el soporte de IA entre todas las tecnologías soportadas.
| Marco | Tiempo de configuración | Beneficio de alquiler | Tipo de SDK | Soporte de IA |
|---|---|---|---|---|
| Aproximadamente 5 minutos | Base de código única para las pantallas del escritorio de alquiler y del equipo de campo. | SDK tipado | Completo | |
| Menos de 5 minutos | Panel web rápido para disponibilidad de unidades y registros de servicio. | SDK escrito | Completo | |
| ~3–7 min | Aplicación móvil multiplataforma para visitas e inspecciones del sitio. | SDK escrito | Completo | |
| Configuración rápida (5 min) | Portal de despacho renderizado en servidor para operaciones de alquiler. | SDK escrito | Completo | |
| ~3–5 min | Integración web ligera para pantallas de reservas y servicios. | SDK escrito | Completo | |
| Acerca de 5 min | Aplicación nativa de Android para conductores y actualizaciones de rutas. | SDK tipado | Completo | |
| Menos de 5 minutos | Aplicación nativa de iOS para visitas a sitios y verificaciones de entrega. | SDK tipado | Completo | |
| ~3–7 min | Reactiva interfaz web para tableros de servicio e inventario. | SDK tipado | Completo | |
| Configuración rápida (5 min) | Aplicación web empresarial para gestión de despachos y alquileres. | SDK escrito | Completo | |
| Menos de 2 min | API flexible de GraphQL para consultas de sitios y servicios anidados. | API de GraphQL | Completo | |
| Configuración rápida (2 min) | Integración de REST API para reservas y actualizaciones de rutas. | REST API | Completo | |
| ~3 min | Backend de PHP del lado del servidor para flujos de trabajo de escritorio de alquiler. | REST API | Completo | |
| ~3–7 min | Backend de .NET para operaciones de despacho e inventario. | SDK tipado | Completo |
El tiempo de configuración refleja la duración esperada desde el inicio del proyecto hasta la primera consulta de InventoryUnit, RentalOrder, ServiceInterval o LocationPing utilizando este esquema de plantilla.
Preguntas sobre Alquiler Portátil
Preguntas comunes sobre cómo construir un backend de alquiler de inodoros portátiles con esta plantilla.
¿Listo para construir tu aplicación de alquiler de inodoros portátiles?
Comienza tu proyecto de alquiler de inodoros portátiles en minutos. No se requiere tarjeta de crédito.