Modèle de back-end d'application de livraison de bouteilles d'oxygène
Affectations de bouteilles et coordination des expéditions
Un back-end de livraison de bouteilles d'oxygène prêt pour la production sur Back4app avec accès utilisateur, livraisons PatientSite, suivi de la PSI des TankAssignments, historique des RefillLog, recherche de contacts d'urgence et suivi des DispatchEvent. Comprend diagramme ER, dictionnaire de données, schéma JSON, terrain de jeu API, et une invite Agent IA pour un démarrage rapide.
Principaux Points à Retenir
Ce modèle vous fournit un backend de livraison d'oxygène avec des rôles d'utilisateur, des fenêtres de livraison PatientSite, un suivi de PSI de TankAssignment, un historique de RefillLog et une recherche EmergencyContact pour que les coordonnateurs puissent gérer les livraisons avec moins d'allers-retours.
- Visibilité du PSI des Réservoirs — Suivez TankAssignment.psiLevel, status et lastCheckedAt afin que les équipes de dispatch sachent quels réservoirs d'oxygène nécessitent de l'attention.
- Historique de remplissage que vous pouvez interroger — Enregistrez chaque entrée RefillLog avec tankAssignment, refillTime, psiBefore, psiAfter, refillReason et refilledBy.
- Routage des contacts d'urgence — Liez les enregistrements EmergencyContact à un PatientSite afin que le personnel puisse agir rapidement lorsque deliveryWindowStart, deliveryWindowEnd ou des notes d'accès sont importants.
- Coordination de l'expédition et des conducteurs — Utilisez TankAssignment.assignedSite, assignedDriver et DispatchEvent.eventType pour garder les itinéraires et les transferts clairs.
Comprendre le backend de l'application de livraison de réservoir d'oxygène
Un processus de paiement de livraison d'oxygène fluide cache des dizaines de vérifications : éligibilité, conflits, dépôts et transfert vers la réalisation. Modélisez les entités principales sur Back4app pour offrir aux équipes de livraison d'oxygène un backend capable de croître d'un seul site à des opérations multi-sites. Le schéma couvre User, PatientSite, TankAssignment, RefillLog, EmergencyContact et DispatchEvent avec des contrôles d'authentification et de flux de travail de livraison intégrés. Connectez votre frontend préféré et expédiez plus rapidement.
Meilleur pour :
Livraison d'oxygène : instantané du backend
Les équipes mobiles et le personnel administratif voient différentes facettes de la réalité dans la livraison d'oxygène ; le travail du produit consiste à assembler ces facettes sans jeux de blâme.
Les parties prenantes peuvent vérifier la cohérence des rôles d'utilisateur pour les équipes de répartition et de soins, la gestion des emplacements de livraison pour les patients, le suivi de la pression pour chaque assignation de réservoir ici : noms, relations, et les flux de travail qu'ils permettent.
Fonctionnalités du module de livraison
Chaque carte technologique dans ce hub utilise le même schéma backend de livraison d'oxygène avec Utilisateur, SitePatient, AttributionDuRéservoir, JournalDeRéapprovisionnement, ContactD'urgence et ÉvénementD'expédition.
Rôles des utilisateurs pour les équipes de répartition et de soins
L'utilisateur stocke le nom d'utilisateur, l'email, le rôle, le numéro de téléphone et l'état actif.
Gestion des emplacements de livraison PatientSite
PatientSite contient siteName, addressLine1, city, region, postalCode et deliveryWindowStart/end.
Suivi de la PSI pour chaque TankAssignment
TankAssignment contient tankSerialNumber, psiLevel, status, assignedSite et assignedDriver.
Historique des réapprovisionnements dans le JournalDeRéapprovisionnement
Le JournalDeRéapprovisionnement suit l'attributionDuRéservoir, le tempsDeRéapprovisionnement, psiAvant, psiAprès, raisonDuRéapprovisionnement et reapprovisionnéPar.
Événements d'expédition pour les transferts de route
L'événementD'expédition stocke l'attributionDuRéservoir, le typeD'événement, le tempsD'événement, enregistréPar et noteDeLieu.
Pourquoi construire votre backend de livraison de réservoirs d'oxygène avec Back4app ?
Back4app vous donne des primitives User, PatientSite, TankAssignment, RefillLog, EmergencyContact et DispatchEvent afin que votre équipe puisse se concentrer sur une répartition sûre et des enregistrements clairs au lieu du travail d'infrastructure.
- •Suivi des réservoirs et des remplissages: TankAssignment.psiLevel, status, et RefillLog.psiBefore/psiAfter gardent le travail de livraison et de remplissage lié à la même source de vérité.
- •Coordination du site de livraison: PatientSite.deliveryWindowStart, deliveryWindowEnd, et les notes soutiennent la planification des routes et les mises à jour de transfert.
- •Intégration des contacts d'urgence: EmergencyContact se connecte à un PatientSite afin que l'envoi puisse joindre la bonne personne lorsque psiLevel est inférieur au seuil.
Construisez et ajustez rapidement les flux de travail de livraison d'oxygène avec un seul contrat backend sur toutes les plateformes.
Avantages principaux de la livraison
Un backend de livraison qui vous aide à avancer plus rapidement sans perdre de vue le PSI, les recharges ou la gestion des contacts.
Configuration de route et de site plus rapide
Commencez à partir des classes PatientSite et TankAssignment au lieu d'inventer des tables logistiques.
Contrôles de PSI plus sûrs
Utilisez TankAssignment.psiLevel, status et nextServiceDueAt pour signaler les cylindres bas avant l'expédition.
Responsabilité claire des recharges
Revoyez chaque valeur RefillLog.psiBefore et psiAfter lorsqu'un conducteur ou un technicien termine une recharge de cylindre.
Escalade d'urgence fiable
Connectez EmergencyContact au flux de livraison afin que les coordonnateurs sachent qui contacter lorsque PatientSite est retardé.
Envoyer le suivi des événements
Utilisez DispatchEvent.eventType, eventTime, et recordedBy pour montrer ce qui s'est passé lors de chaque transfert.
Flux de travail de démarrage AI
Générez rapidement l'infrastructure backend et les conseils d'intégration avec une invite structurée.
Prêt à lancer votre application de livraison d'oxygène ?
Laissez l'agent AI de Back4app structurer votre backend de livraison d'oxygène et générer le suivi PSI TankAssignment, l'historique de RefillLog, et la recherche d'EmergencyContact à partir d'une invite.
Gratuit pour commencer — 50 invites d'agent AI/mois, carte de crédit non requise
Technologie de livraison
Tout inclus dans ce modèle de backend de livraison d'oxygène.
Carte des relations
Modèle de relations d'entité pour le schéma de backend de livraison d'oxygène.
Schéma couvrant les utilisateurs, les sites de livraison, les affectations de réservoir, les journaux de recharge, les contacts d'urgence et les événements de dispatch.
Voir la source du diagramme
erDiagram
User ||--o{ PatientSite : "primaryContact"
User ||--o{ TankAssignment : "assignedDriver"
User ||--o{ RefillLog : "refilledBy"
User ||--o{ DispatchEvent : "recordedBy"
PatientSite ||--o{ TankAssignment : "assignedSite"
PatientSite ||--o{ EmergencyContact : "site"
TankAssignment ||--o{ RefillLog : "tankAssignment"
TankAssignment ||--o{ DispatchEvent : "tankAssignment"
User {
String objectId PK
String username
String email
String password
String role
String phoneNumber
Boolean active
Date createdAt
Date updatedAt
}
PatientSite {
String objectId PK
String siteName
String addressLine1
String city
String region
String postalCode
Date deliveryWindowStart
Date deliveryWindowEnd
String primaryContactId FK
String notes
Date createdAt
Date updatedAt
}
TankAssignment {
String objectId PK
String tankSerialNumber
Number psiLevel
String status
String assignedSiteId FK
String assignedDriverId FK
Date lastCheckedAt
Date nextServiceDueAt
Date createdAt
Date updatedAt
}
RefillLog {
String objectId PK
String tankAssignmentId FK
Date refillTime
Number psiBefore
Number psiAfter
String refilledById FK
String refillReason
String remarks
Date createdAt
Date updatedAt
}
EmergencyContact {
String objectId PK
String siteId FK
String contactName
String relationship
String phoneNumber
String preferredLanguage
Boolean isPrimary
Date createdAt
Date updatedAt
}
DispatchEvent {
String objectId PK
String tankAssignmentId FK
String eventType
Date eventTime
String recordedById FK
String locationNote
Date createdAt
Date updatedAt
}
Flux d'intégration de dispatch
Flux d'exécution typique pour l'authentification, l'examen de TankAssignment PSI, la création de RefillLog, les mises à jour de DispatchEvent et la recherche de EmergencyContact.
Voir la source du diagramme
sequenceDiagram
participant User
participant App as Oxygen Tank Delivery App
participant Back4app as Back4app Cloud
User->>App: Login with dispatcher or driver account
App->>Back4app: POST /login
Back4app-->>App: Session token
User->>App: Load tank assignments and PSI levels
App->>Back4app: GET /classes/TankAssignment?include=assignedSite,assignedDriver
Back4app-->>App: TankAssignment list
User->>App: Open a site and check refill history
App->>Back4app: GET /classes/RefillLog?where={"tankAssignment":...}
Back4app-->>App: RefillLog entries
User->>App: Save a new refill log or dispatch event
App->>Back4app: POST /classes/RefillLog
App->>Back4app: POST /classes/DispatchEvent
Back4app-->>App: Saved objectIds
App->>Back4app: Live query updates for PSI changes and emergency contact changes
Back4app-->>App: Updated TankAssignment and EmergencyContact recordsGuide de terrain
Référence complète au niveau des champs pour chaque classe dans le schéma de livraison d'oxygène.
| Champ | Type | Description | Requis |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | Auto |
| username | String | User login name | |
| String | User email address | ||
| password | String | Hashed password (write-only) | |
| role | String | Role in the app (e.g. dispatcher, driver, careTeam, patient) | |
| phoneNumber | String | Primary contact phone number | — |
| active | Boolean | Whether the account can access the app | |
| createdAt | Date | Auto-generated creation timestamp | Auto |
| updatedAt | Date | Auto-generated last-update timestamp | Auto |
9 champs dans User
Accès et autorisations
Comment la stratégie ACL et CLP sécurise les utilisateurs, les sites, les réservoirs, les journaux de remplissage et les contacts d'urgence.
Limites du site du patient
Seul le personnel autorisé doit créer ou mettre à jour les détails du PatientSite, y compris deliveryWindowStart, deliveryWindowEnd et notes.
Intégrité du réservoir et du remplissage
Restreindre les mises à jour de l'affectation des réservoirs et la création de journaux de remplissage aux coordinateurs d'expédition ou aux conducteurs avec un accès vérifié.
Visibilité des expéditions à portée limitée
Limiter les lectures des événements d'expédition et des contacts d'urgence à l'équipe de soins assignée, au répartiteur ou au conducteur gérant cet itinéraire.
Schéma JSON
Définition brute du schéma JSON prête à être copiée dans Back4app ou utilisée comme référence d'implémentation.
{
"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
},
"phoneNumber": {
"type": "String",
"required": false
},
"active": {
"type": "Boolean",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "PatientSite",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"siteName": {
"type": "String",
"required": true
},
"addressLine1": {
"type": "String",
"required": true
},
"city": {
"type": "String",
"required": true
},
"region": {
"type": "String",
"required": true
},
"postalCode": {
"type": "String",
"required": true
},
"deliveryWindowStart": {
"type": "Date",
"required": false
},
"deliveryWindowEnd": {
"type": "Date",
"required": false
},
"primaryContact": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"notes": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "TankAssignment",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"tankSerialNumber": {
"type": "String",
"required": true
},
"psiLevel": {
"type": "Number",
"required": true
},
"status": {
"type": "String",
"required": true
},
"assignedSite": {
"type": "Pointer",
"required": true,
"targetClass": "PatientSite"
},
"assignedDriver": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"lastCheckedAt": {
"type": "Date",
"required": false
},
"nextServiceDueAt": {
"type": "Date",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "RefillLog",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"tankAssignment": {
"type": "Pointer",
"required": true,
"targetClass": "TankAssignment"
},
"refillTime": {
"type": "Date",
"required": true
},
"psiBefore": {
"type": "Number",
"required": true
},
"psiAfter": {
"type": "Number",
"required": true
},
"refilledBy": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"refillReason": {
"type": "String",
"required": true
},
"remarks": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "EmergencyContact",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"site": {
"type": "Pointer",
"required": true,
"targetClass": "PatientSite"
},
"contactName": {
"type": "String",
"required": true
},
"relationship": {
"type": "String",
"required": true
},
"phoneNumber": {
"type": "String",
"required": true
},
"preferredLanguage": {
"type": "String",
"required": false
},
"isPrimary": {
"type": "Boolean",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "DispatchEvent",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"tankAssignment": {
"type": "Pointer",
"required": true,
"targetClass": "TankAssignment"
},
"eventType": {
"type": "String",
"required": true
},
"eventTime": {
"type": "Date",
"required": true
},
"recordedBy": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"locationNote": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
}
]
}Construire avec l'agent AI
Utiliser l'agent AI Back4app pour générer une véritable application de livraison de réservoirs d'oxygène à partir de ce modèle, y compris le frontend, le backend, l'authentification, et les flux de réservoir, de remplissage et de contact d'urgence.
Créez un backend d'application de livraison de réservoir d'oxygène sur Back4app avec ce schéma et comportement exact. Schéma : 1. Utilisateur (utilisez le système intégré de Back4app) : nom d'utilisateur, e-mail, mot de passe, rôle, numéro de téléphone, actif ; objectId, createdAt, updatedAt (système). 2. PatientSite : nomDuSite, adresseLigne1, ville, région, codePostal, débutFeneTteLivraison, finFenetreLivraison, contactPrincipal (Pointeur vers Utilisateur, requis), notes ; objectId, createdAt, updatedAt. 3. TankAssignment : numéroDeSérieDuRéservoir, niveauPSI, statut, siteAssigné (Pointeur vers PatientSite, requis), conducteurAssigné (Pointeur vers Utilisateur, requis), dernièreVérificationÀ, prochainServiceÀ ; objectId, createdAt, updatedAt. 4. RefillLog : affectationDuRéservoir (Pointeur vers TankAssignment, requis), tempsDeRemplissage, psiAvant, psiAprès, rempliPar (Pointeur vers Utilisateur, requis), raisonDeRemplissage, remarques ; objectId, createdAt, updatedAt. 5. ContactD'urgence : site (Pointeur vers PatientSite, requis), nomDuContact, relation, numéroDeTéléphone, languePréférée, estPrincipal ; objectId, createdAt, updatedAt. 6. DispatchEvent : affectationDuRéservoir (Pointeur vers TankAssignment, requis), typeÉvénement, tempsÉvénement, enregistréPar (Pointeur vers Utilisateur, requis), noteDeLocalisation ; objectId, createdAt, updatedAt. Sécurité : - Les expéditeurs peuvent créer et mettre à jour les enregistrements TankAssignment, RefillLog, DispatchEvent et PatientSite. - Les conducteurs peuvent mettre à jour les vérifications PSI des TankAssignment assignés, créer des entrées RefillLog et ajouter des mises à jour DispatchEvent pour les itinéraires qu'ils gèrent. - Les utilisateurs de l'équipe de soins peuvent voir leurs enregistrements PatientSite et les entrées ContactD'urgence, mais ne peuvent pas modifier l'historique PSI. - Les données de ContactD'urgence doivent être visibles uniquement par les utilisateurs authentifiés impliqués dans les opérations du site ou d'expédition. Auth : - Inscription, connexion, déconnexion. Comportement : - Suivre les niveaux PSI, stocker les journaux de remplissage, attacher les contacts d'urgence et enregistrer les transferts d'expédition. - Afficher la dernière pression du réservoir, l'historique de remplissage, la fenêtre de livraison et le contact d'urgence pour chaque site. Livrer : - Application Back4app avec schéma, ACL, CLP ; frontend pour tableaux d'expédition, vérifications des itinéraires de conducteur, journalisation de remplissage et recherche de contacts d'urgence.
Appuyez sur le bouton ci-dessous pour ouvrir l'Agent avec cette demande de modèle pré-remplie.
Ceci est la demande de base sans suffixe technologique. Vous pouvez adapter la pile frontend générée par la suite.
Testeur API
Essayez les endpoints REST et GraphQL contre le schéma de livraison d'oxygène. Les réponses utilisent des données fictives et ne nécessitent pas de compte Back4app.
Utilise le même schéma que ce modèle.
Choisissez votre technologie
Développez chaque carte pour voir comment intégrer PatientSite, TankAssignment et RefillLog avec votre pile choisie.
Flutter Backend de livraison d'oxygène
React Backend de livraison d'oxygène
React Natif Backend de livraison d'oxygène
Next.js Backend de livraison d'oxygène
JavaScript Backend de livraison d'oxygène
Android Backend de livraison d'oxygène
iOS Backend de livraison d'oxygène
Vue Backend de livraison d'oxygène
Angular Backend de livraison d'oxygène
GraphQL Backend de livraison d'oxygène
REST API Backend de livraison d'oxygène
PHP Backend de livraison d'oxygène
.NET Backend de livraison d'oxygène
Ce que vous obtenez avec chaque technologie
Chaque pile utilise le même schéma de backend de livraison d'oxygène et des contrats API.
Structure de données logistique d'oxygène unifiée
Gérez les enregistrements Utilisateur, PatientSite, TankAssignment, RefillLog, EmergencyContact et DispatchEvent avec un seul schéma.
Suivi PSI pour les itinéraires de livraison
Maintenez la pression du réservoir visible afin que l'expédition puisse prioriser les cylindres bas en premier.
Historique de rechargement pour les techniciens
Enregistrez psiAvant, psiAprès et tempsDeRechargement pour chaque arrêt de service.
Routage des contacts d'urgence
Liez les contacts aux dossiers PatientSite afin que l'escalade soit disponible lorsque l'itinéraire change.
REST/GraphQL APIs pour la livraison d'oxygène
Intégrer les tableaux de bord mobile, web et opérations avec le même contrat backend.
Architecture extensible pour la logistique de l'oxygène
Ajoutez des itinéraires, de l'inventaire ou des notes de service ultérieurement sans retravailler le schéma de livraison principal.
Comparaison des piles de livraison d'oxygène
Comparez la vitesse de configuration, le style SDK et le support IA à travers toutes les technologies supportées.
| Cadre | Temps de configuration | Avantage de la livraison d'oxygène | Type de SDK | Support IA |
|---|---|---|---|---|
| Environ 5 min | Base de code unique pour la livraison d'oxygène sur mobile et web. | SDK tapé | Complet | |
| Moins de 5 minutes | Tableau de bord web rapide pour le dispatch et l'examen des PSI. | SDK tapé | Complet | |
| ~3–7 min | Application mobile multiplateforme pour les conducteurs et les techniciens. | SDK tapé | Complet | |
| Configuration rapide (5 min) | Application web rendue par le serveur pour la coordination de la livraison. | SDK tapé | Complet | |
| ~3–5 min | Intégration web légère pour la logistique de l'oxygène. | SDK tapé | Complet | |
| Environ 5 min | Application Android native pour les vérifications de route et de PSI. | SDK tapé | Complet | |
| Moins de 5 minutes | Application iOS native pour les tâches de livraison et de recharge. | SDK tapé | Complet | |
| ~3–7 min | Interface web Reactive pour les opérations de livraison d'oxygène. | SDK tapé | Complet | |
| Configuration rapide (5 min) | Application web pour entreprise pour les journaux de dispatch et de recharge. | SDK tapé | Complet | |
| Moins de 2 min | API GraphQL flexible pour les données de livraison d'oxygène. | GraphQL API | Complet | |
| Configuration rapide (2 min) | Intégration REST API pour les systèmes de livraison d'oxygène. | REST API | Complet | |
| ~3 min | Backend PHP côté serveur pour la coordination des livraisons. | REST API | Complet | |
| ~3–7 min | Backend .NET pour les opérations de livraison d'oxygène. | SDK typé | Complet |
Le temps de configuration reflète la durée attendue depuis le démarrage du projet jusqu'à la première requête TankAssignment ou PatientSite utilisant ce schéma de modèle.
Questions sur la livraison
Questions courantes sur la création d'un backend de livraison de réservoir d'oxygène avec ce modèle.
Prêt à créer votre application de livraison de réservoir d'oxygène ?
Commencez votre projet de livraison d'oxygène en quelques minutes. Pas de carte de crédit requise.