Noleggio Servizi Igienici Portatili
Costruisci con Agente AI
Backend per il noleggio di toiletta portatile

Backend per l'app di noleggio di toiletta portatile per Sito, Ordine, Servizio e GPS
Routing del Sito, Visite di Servizio e Tracciamento delle Unità

Un backend per il noleggio di toiletta portatile pronto per la produzione su Back4app costruito attorno a User, Sito, InventoryUnit, RentalOrder, ServiceInterval e LocationPing. Traccia le spedizioni, le visite di servizio e i ping GPS senza dover assemblare un backend personalizzato.

Punti chiave del noleggio

Questo modello ti fornisce un backend per il noleggio di bagni portatili incentrato su Utente, Sito, UnitàInventario, OrdineDiNoleggio, IntervalloDiServizio e PingDiPosizione in modo che i dispatcher, i proprietari e i clienti possano rimanere allineati.

  1. Gli ordini di noleggio rimangono collegati ai sitiUsa RentalOrder.site e RentalOrder.assignedUnits per mantenere ogni prenotazione legata al sito di lavoro giusto e alle unità di bagno portatile.
  2. Le visite di servizio sono tracciabiliModella ogni IntervalloDiServizio con serviceCode, scheduledAt, completedAt, unit, performedBy e serviceNotes.
  3. Lo stato dell'inventario è esplicitoInventoryUnit.status e InventoryUnit.lastServicedAt mostrano se un'unità è disponibile, spedita, in pulizia o in manutenzione.
  4. Il supporto dei GPS pings per il lavoro sul campoLocationPing memorizza gpsLat, gpsLng, source, unit e link d'ordine opzionali per aggiornamenti dell'app autista, tracker o dispatch.

Panoramica: App per il noleggio di toilettes portatili

Restituzioni e ispezioni chiudono il cerchio nel noleggio di toilettes portatili — il sistema dovrebbe catturare le condizioni e le responsabilità prima che inizi il prossimo noleggio. Il costo appare nei callback e nei crediti. Usa le entità principali su Back4app per codificare la disponibilità di noleggio di toilettes portatili, i ganci di prezzo e i record di adempimento in un unico backend coeso. Lo schema copre User, Site, InventoryUnit, RentalOrder, ServiceInterval e LocationPing con funzionalità integrate di autenticazione e flusso di lavoro del noleggio. Collega il tuo frontend preferito e spedire più velocemente.

Ideale per:

Operazioni di noleggio di toilettes portatiliApp per il servizio e la dispatchMonitoraggio dei percorsi del personale di campoStrumenti per la visibilità dell'inventarioPortali di prenotazione dei clientiTeam che scelgono BaaS per i prodotti a noleggio

Come è organizzato questo backend per il noleggio di bagni portatili

Se l'inserimento di un nuovo assunto nel noleggio di bagni portatili richiede conoscenze specifiche, sei a un allontanamento da un singolo punto di fallimento.

L'hub mantiene i registri degli utenti basati su ruolo, l'assegnazione delle unità e il monitoraggio dello stato, i registri sugli intervalli di servizio con una terminologia coerente affinché prodotto, operazioni e ingegneria significhino la stessa cosa quando dicono “registro.”

Caratteristiche principali del noleggio di servizi igienici portatili

Ogni scheda tecnologica in questo hub utilizza lo stesso schema di noleggio di toilette portatili con User, Site, InventoryUnit, RentalOrder, ServiceInterval e LocationPing.

Registri utenti basati sul ruolo

L'utente memorizza nome utente, email, password e ruolo per l'accesso a dispatcher, proprietario o cliente.

Assegnazione dell'unità e tracciamento dello stato

InventoryUnit collega unitTag, unitType, status, currentSite e owner.

Registri degli intervalli di servizio

ServiceInterval memorizza serviceCode, scheduledAt, completedAt, status, unit e performedBy.

ping di posizione GPS

LocationPing conserva pingedAt, gpsLat, gpsLng, source, unit e order.

Coordinazione del sito e del noleggio

Il sito e il RentalOrder preservano il luogo di lavoro, il contatto e le unità di toilette portatili assegnate.

Perché costruire il tuo backend per il noleggio di bagni portatili con Back4app?

Back4app ti offre le primitive di noleggio, percorso e servizio così il tuo team può concentrarsi su distribuzione e lavori sul campo anziché su infrastruttura.

  • I registri del sito e degli ordini rimangono collegati: Sito, RentalOrder e InventoryUnit mantengono ogni posizione di lavoro, prenotazione e assegnazione degli asset in una sola traccia.
  • I registri dei servizi sono strutturati: ServiceInterval cattura serviceCode, scheduledAt, completedAt, serviceNotes, performedBy e l'unità che ha toccato.
  • L'inventario rimane aggiornato: InventoryUnit mostra se un'unità è disponibile, dispatchata, in pulizia o in manutenzione mentre Live Queries mantiene informati i desk.

Costruisci e iterare rapidamente sulle operazioni di noleggio con un contratto backend su tutte le piattaforme.

Vantaggi del noleggio di bagni portatili

Un backend di noleggio che ti aiuta a mantenere allineati percorsi, lavoro di servizio e inventario.

Decisioni di spedizione più rapide

Usa Site, RentalOrder e InventoryUnit invece di ricomporre i dati del percorso da zero.

Chiarezza nella responsabilità del servizio

Usa ServiceInterval, serviceCode e performedBy per mostrare chi ha completato ogni intervallo e quando è accaduto.

Aggiornamenti dei clienti rimangono coerenti

Mantieni User, Site.contactName e Site.contactPhone collegati al giusto ordine di noleggio.

Il controllo dell'inventario è esplicito

InventoryUnit.status e lastServicedAt rendono più facile contrassegnare le unità che sono disponibili, spedite, in fase di pulizia o in manutenzione.

Operazioni consapevoli della posizione

LocationPing.gpsLat e gpsLng aiutano le squadre a verificare dove un'unità è stata consegnata o servita.

Flusso di avvio dell'IA

Genera rapidamente strutture di backend e linee guida per l'integrazione con un'unica richiesta strutturata.

Pronto per lanciare la tua app di noleggio di bagni portatili?

Lascia che l'agente IA di Back4app crei la struttura del tuo backend per il noleggio di bagni portatili e generi flussi di Site, InventoryUnit, RentalOrder, ServiceInterval e LocationPing da un'unica richiesta.

Gratis per iniziare — 50 richieste di agente IA/mese, senza carta di credito richiesta

Stack tecnologico per noleggio portatile

Tutto incluso in questo modello di backend per il noleggio di bagni portatili.

Frontend
13+ tecnologie
Backend
Back4app
Database
MongoDB
Autenticazione
Autenticazione integrata + sessioni
API
REST e GraphQL
In tempo reale
Live Queries

Mappa dello schema di noleggio

Modello di relazione tra entità per lo schema di backend di noleggio delle toilette portatili.

Visualizza sorgente del diagramma
Mermaid
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
    }

Flusso di integrazione dispatch

Flusso tipico di esecuzione per accesso, ricerca OrdineAffitto, assegnazione UnitàInventario, registrazione IntervalloServizio e cattura PingPosizione.

Visualizza sorgente del diagramma
Mermaid
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 status

Guida del campo di affitto

Riferimento completo a livello di campo per ogni classe nello schema di affitto dei bagni portatili.

CampoTipoDescrizioneObbligatorio
objectIdStringAuto-generated unique identifierAuto
usernameStringUser login name
emailStringUser email address
passwordStringHashed password (write-only)
roleStringRole of the user (e.g., dispatcher, owner, customer)
createdAtDateAuto-generated creation timestampAuto
updatedAtDateAuto-generated last-update timestampAuto

7 campi in User

Controllo accesso per dati di noleggio

Come la strategia ACL e CLP protegge utenti, siti, ordini, visite di servizio e localizzazioni.

Controlli dell'account cliente

Solo il cliente può aggiornare i propri campi utente e visualizzare i propri dati Site, RentalOrder, ServiceInterval e LocationPing come assegnato.

Servizio e integrità dell'inventario

Solo il personale autorizzato può creare record ServiceInterval e LocationPing, e solo i proprietari degli asset possono gestire lo stato di InventoryUnit.

Accesso a percorso limitato

Limita le letture alle righe Site, RentalOrder e InventoryUnit collegate al piano di invio attuale, specialmente per le squadre di campo e le viste rivolte ai clienti.

Schema JSON

Definizione dello schema JSON grezzo pronta da copiare in Back4app o da utilizzare come riferimento di implementazione.

JSON
{
  "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
        }
      }
    }
  ]
}

Costruisci con AI Agent

Usa l'AI Agent di Back4app per generare una vera app per il noleggio di bagni portatili da questo modello, inclusi frontend, backend, autenticazione e flussi di Site, InventoryUnit, RentalOrder, ServiceInterval e LocationPing.

Back4app AI Agent
Pronto a costruire
Crea un backend sicuro per un'App di Noleggio Toilette Portatile su Back4app con esattamente questo schema e comportamento.

Schema:
1. Utente (usa il built-in di Back4app): nome utente, email, password, ruolo; objectId, createdAt, updatedAt (sistema).
2. Sito: codiceSito, nome, indirizzo, gpsLat, gpsLng, nomeContatto, telefonoContatto, cliente (Puntatore a Utente); objectId, createdAt, updatedAt (sistema).
3. UnitaInventario: etichettaUnità, tipoUnità, stato, ultimaManutenzione, sitoCorrente (Puntatore a Sito), proprietario (Puntatore a Utente); objectId, createdAt, updatedAt (sistema).
4. OrdineNoleggio: numeroOrdine, stato, dataInizio, dataFine, sito (Puntatore a Sito), unitàAssegnate (Array di Puntatore<UnitaInventario>), cliente (Puntatore a Utente), intervalloServizioGiorni, note; objectId, createdAt, updatedAt (sistema).
5. IntervalloServizio: codiceServizio, programmatoAt, completatoAt, stato, ordine (Puntatore a OrdineNoleggio), unità (Puntatore a UnitaInventario), noteServizio, eseguitoDa (Puntatore a Utente); objectId, createdAt, updatedAt (sistema).
6. LocalizzazionePing: pingatoAt, gpsLat, gpsLng, sorgente, unità (Puntatore a UnitaInventario), ordine (Puntatore a OrdineNoleggio, facoltativo), catturatoDa (Puntatore a Utente); objectId, createdAt, updatedAt (sistema).

Sicurezza:
- I clienti possono visualizzare solo i propri Siti, Ordini di Noleggio, Intervalli di Servizio e voci di LocalizzazionePing.
- I dispatcher possono creare e aggiornare i record degli Intervalli di Servizio e catturare dati di LocalizzazionePing.
- I proprietari di beni possono gestire lo stato delle UnitaInventario e visualizzare le assegnazioni degli ordini.
- Mantieni privati i campi di localizzazione e contatto cliente a meno che il ruolo non sia autorizzato.

Autenticazione:
- Registrazione, accesso, disconnessione.

Comportamento:
- Elenca gli ordini di noleggio, crea siti, assegna unità di inventario, pianifica intervalli di servizio e registra i ping GPS.
- Mantieni lo stato dell'inventario e la storia dei servizi accurati per la visibilità del dispatcher e dei clienti.

Consegna:
- App di Back4app con schema, CLP, ACL e flussi frontend per il personale dell'ufficio noleggi, proprietari di beni e clienti che prenotano il servizio di toilette portatile.

Premi il pulsante qui sotto per aprire l'Agente con questo prompt del modello pre-compilato.

Questo è il prompt di base senza un suffisso tecnologico. Puoi adattare successivamente il stack frontend generato.

Distribuisci in pochi minuti50 prompt gratuiti / meseNessuna carta di credito richiesta

API Sandbox

Prova gli endpoint REST e GraphQL contro lo schema di noleggio di bagni portatili. Le risposte utilizzano dati di esempio e non richiedono un account Back4app.

Caricamento playground…

Utilizza lo stesso schema di questo modello.

Scegli il tuo Stack

Espandi ogni scheda per vedere come integrare Site, InventoryUnit e RentalOrder con il tuo stack scelto.

Flutter Noleggio di Bagni Portatili Backend

React Noleggio di Bagni Portatili Backend

React Nativo Noleggio di Bagni Portatili Backend

Next.js Noleggio di Bagni Portatili Backend

JavaScript Noleggio di Bagni Portatili Backend

Android Noleggio di Bagni Portatili Backend

iOS Noleggio di Bagni Portatili Backend

Vue Noleggio di Bagni Portatili Backend

Angular Noleggio di Bagni Portatili Backend

GraphQL Noleggio di Bagni Portatili Backend

REST API Noleggio di Bagni Portatili Backend

PHP Noleggio di Bagni Portatili Backend

.NET Noleggio di Bagni Portatili Backend

Cosa ottieni con ogni tecnologia

Ogni stack utilizza lo stesso schema e contratti API per il noleggio di servizi igienici portatili.

Struttura dati di noleggio unificata

Gestisci User, Site, InventoryUnit, RentalOrder, ServiceInterval e LocationPing con uno schema coerente.

Registri degli intervalli di servizio per i noleggi

Registrare ogni pulizia, rifornimento e ispezione con lo stesso modello ServiceInterval.

Tracciamento della posizione GPS consapevole

Mantieni la latitudine e la longitudine di LocationPing collegate alla giusta InventoryUnit e RentalOrder.

Controllo dell'inventario per unità portatili

Definire i campi stato e lastServicedAt per stock, manutenzione e spedizione.

REST/GraphQL API per noleggi

Integrare client mobili e web con endpoint flessibili per flussi di ordinazione e servizi.

Architettura operativa estensibile

Aggiungi avvisi di spedizione, foto di ispezione o classi di fatturazione in seguito senza compromettere il modello di base.

Confronto Stack Noleggio Portatile

Confronta la velocità di configurazione, lo stile SDK e il supporto AI tra tutte le tecnologie supportate.

FrameworkTempo di configurazioneVantaggio di noleggioTipo di SDKSupporto AI
Circa 5 minCodice base unico per gli schermi del desk di noleggio e della squadra sul campo.SDK tipizzatoCompleto
Meno di 5 minutiDashboard web veloce per disponibilità dell'unità e registri di servizio.SDK digitatoCompleto
~3–7 minApp mobile multipiattaforma per visite e ispezioni.SDK digitatoCompleto
Impostazione rapida (5 min)Portale di invio renderizzato dal server per operazioni di noleggio.SDK digitatoCompleto
~3–5 minIntegrazione web leggera per schermate di prenotazione e servizi.SDK digitatoCompleto
Circa 5 minApp nativa Android per conducenti e aggiornamenti del percorso.SDK digitatoCompleto
Meno di 5 minutiApp nativa iOS per visite sul campo e controlli delle consegne.SDK digitatoCompleto
~3–7 minInterfaccia web Reactiva per bacheche di servizio e inventario.SDK digitatoCompleto
Impostazione rapida (5 min)Applicazione web enterprise per gestione dei trasporti e noleggi.SDK digitatoCompleto
Meno di 2 minAPI flessibile GraphQL per query su siti e servizi annidati.API GraphQLCompleto
Impostazione veloce (2 min)Integrazione REST API per aggiornamenti su prenotazioni e itinerari.REST APICompleto
~3 minBackend PHP lato server per flussi di lavoro dei servizi di noleggio.REST APICompleto
~3–7 minBackend .NET per operazioni di spedizione e inventario.SDK tipizzatoCompleto

Il tempo di configurazione riflette la durata prevista dal bootstrap del progetto alla prima query InventoryUnit, RentalOrder, ServiceInterval o LocationPing utilizzando questo schema modello.

Domande sul noleggio portatile

Domande comuni sulla creazione di un backend per il noleggio di toilette portatili con questo modello.

Cosa dovrebbero strumentare prima gli operatori di noleggio di bagni portatili quando si espandono in una seconda posizione?
Quali eventi di noleggio di bagni portatili dovrebbero attivare automaticamente le notifiche per i clienti?
Questo backend di noleggio di bagni portatili può scalare per inventario multi-sito e regole di prezzo centralizzate?
Come posso mostrare le unità e le visite di servizio in Flutter?
Come posso gestire i ping GPS in Next.js?
Può React Native memorizzare offline lo stato dell'inventario?
Come posso prevenire le modifiche non autorizzate delle unità?
Qual è il modo migliore per mostrare la disponibilità delle toilette portatili su Android?

Fidato da sviluppatori in tutto il mondo

Unisciti ai team che spedisco prodotti per il noleggio di bagni portatili più velocemente con i modelli Back4app

G2 Users Love Us Badge

Pronto per costruire la tua app di noleggio bagni portatili?

Inizia il tuo progetto di noleggio bagni portatili in pochi minuti. Nessuna carta di credito richiesta.

Scegli tecnologia