산소 탱크 배송 앱 백엔드 템플릿
탱크 배정 및 배송 조정
생산 준비 완료된 산소 탱크 배송 백엔드 on Back4app로 사용자 접근, PatientSite 배송, TankAssignment PSI 추적, RefillLog 이력, EmergencyContact 조회 및 DispatchEvent 추적이 포함됩니다. ER 다이어그램, 데이터 사전, JSON 스키마, API 플레이그라운드 및 신속 부트스트랩을 위한 AI 에이전트 프롬프트가 포함됩니다.
주요 내용
이 템플릿은 사용자의 역할, PatientSite 배달 창, TankAssignment PSI 추적, RefillLog 기록 및 EmergencyContact 조회가 포함된 산소 배달 백엔드를 제공하여 조정자가 불필요한 소통 없이 배달을 관리할 수 있게 합니다.
- 탱크 PSI 가시성 — TankAssignment.psiLevel, 상태 및 lastCheckedAt를 추적하여 배달 팀이 어떤 산소 탱크에 주의가 필요한지 알 수 있도록 합니다.
- 쿼리 가능한 리필 기록 — 각 RefillLog 항목을 tankAssignment, refillTime, psiBefore, psiAfter, refillReason 및 refilledBy와 함께 기록합니다.
- 비상 연락처 라우팅 — EmergencyContact 기록을 PatientSite에 연결하여 직원들이 deliveryWindowStart, deliveryWindowEnd 또는 접근 노트가 중요할 때 신속하게 조치를 취할 수 있도록 합니다.
- 배차 및 운전사 조정 — TankAssignment.assignedSite, assignedDriver 및 DispatchEvent.eventType을 사용하여 경로 및 인계가 명확하게 유지되도록 합니다.
산소 탱크 배달 앱 백엔드 이해하기
부드러운 산소 배달 체크아웃은 수십 가지 확인을 숨깁니다: 자격, 충돌, 보증금, 그리고 이행으로의 인계. Back4app에 핵심 엔터티를 모델링하여 산소 배달 팀이 단일 야드에서 다중 사이트 운영으로 성장할 수 있는 백엔드를 제공합니다. 스키마는 User, PatientSite, TankAssignment, RefillLog, EmergencyContact 및 DispatchEvent를 포함하며 인증 및 배달 워크플로우 제어가 내장되어 있습니다. 선호하는 프론트엔드를 연결하고 더 빠르게 배송하세요.
최고의 용도:
산소 배송: 백엔드 스냅샷
모바일 팀과 백오피스 직원은 산소 배송에서 서로 다른 현실 조각을 보고 있으며, 제품의 작업은 비난 게임 없이 이러한 조각을 연결하는 것입니다.
이곳에서 이해관계자들이 발송 및 관리 팀을 위한 사용자 역할, 환자 현장 배송 위치 관리, 각 탱크 할당에 대한 파이(psi) 추적을 신뢰성 있게 확인할 수 있습니다: 이름, 관계 및 그들이 활성화하는 워크플로우.
배송 모듈 기능
이 허브의 모든 기술 카드에는 사용자, 환자 사이트, 탱크 할당, 리필 로그, 비상 연락처 및 배차 이벤트를 포함한 동일한 산소 공급 백엔드 스키마가 사용됩니다.
배포 및 케어 팀을 위한 사용자 역할
사용자는 사용자 이름, 이메일, 역할, 전화번호 및 활성 상태를 저장합니다.
환자 사이트 배송 위치 관리
환자 사이트는 siteName, addressLine1, city, region, postalCode 및 deliveryWindowStart/end를 포함합니다.
각 TankAssignment에 대한 PSI 추적
TankAssignment는 tankSerialNumber, psiLevel, status, assignedSite 및 assignedDriver를 포함합니다.
리필로그의 리필 이력
리필로그는 탱크 할당, 리필 시간, 리필 전 PSI, 리필 후 PSI, 리필 이유 및 리필한 사람을 추적합니다.
노선 인수를 위한 배차 이벤트
배차 이벤트는 탱크 할당, 이벤트 유형, 이벤트 시간, 기록자 및 위치 메모를 저장합니다.
왜 Back4app으로 산소 탱크 배송 백엔드를 구축해야 할까요?
Back4app은(는) 사용자, 환자 사이트, 탱크 할당, 리필 기록, 비상 연락처, 발송 이벤트 기본 요소를 제공하여 귀하의 팀이 인프라 작업 대신 안전한 발송과 명확한 기록에 집중할 수 있도록 합니다.
- •탱크 및 보충 추적: TankAssignment.psiLevel, 상태 및 RefillLog.psiBefore/psiAfter는 배송 및 보충 작업을 동일한 진실의 출처에 연결합니다.
- •배송 사이트 조정: PatientSite.deliveryWindowStart, deliveryWindowEnd 및 노트는 경로 계획 및 인수 업데이트를 지원합니다.
- •비상 연락처 통합: EmergencyContact는 PSI 수준이 기준치 이하일 때 대응팀이 올바른 사람에게 연락할 수 있도록 PatientSite에 연결됩니다.
모든 플랫폼에서 하나의 백엔드 계약으로 산소 공급 워크플로우를 빠르게 구축하고 조정하세요.
핵심 배달 이점
PSI, 리필 또는 연락처 처리에 대한 시각을 잃지 않으면서 더 빠르게 이동할 수 있도록 도와주는 배송 백엔드입니다.
더 빠른 경로 및 사이트 설정
물류 테이블을 새로 만들지 않고 PatientSite 및 TankAssignment 클래스에서 시작하세요.
더 안전한 PSI 검사
TankAssignment.psiLevel, status, 및 nextServiceDueAt을 사용하여 발송 전 저압 실린더를 표출합니다.
명확한 리필 책임
운전사나 기술자가 탱크 리필을 완료할 때마다 모든 RefillLog.psiBefore 및 psiAfter 값을 재검토합니다.
신뢰할 수 있는 긴급 에스컬레이션
EmergencyContact를 배송 흐름에 연결하여 코디네이터가 PatientSite가 지연될 때 누구에게 연락해야 할지 알 수 있게 합니다.
이벤트 전송 경로
DispatchEvent.eventType, eventTime, recordedBy를 사용하여 각 핸드오프 중 발생한 사건을 보여줍니다.
AI 부트스트랩 워크플로우
하나의 구조화된 프롬프트로 백엔드 스캐폴딩 및 통합 가이드를 빠르게 생성하세요.
산소 배달 앱을 출시할 준비가 되셨습니까?
Back4app AI 에이전트가 귀하의 산소 배달 백엔드를 스캐폴드하고 TankAssignment PSI 추적, RefillLog 기록 및 EmergencyContact 조회를 하나의 프롬프트로 생성하도록 하세요.
무료 시작 — 월 50개의 AI 에이전트 프롬프트, 신용 카드 필요 없음
배달 기술 스택
이 산소 배달 백엔드 템플릿에는 모든 것이 포함되어 있습니다.
관계 맵
산소 공급 백엔드 스키마의 엔티티 관계 모델입니다.
사용자, 배달 사이트, 탱크 할당, 리필 로그, 비상 연락처 및 배치 이벤트를 다루는 스키마.
다이어그램 소스 보기
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
}
배치 통합 흐름
인증, 탱크 할당 PSI 검토, 리필 로그 생성, 배치 이벤트 업데이트 및 비상 연락처 조회를 위한 일반적인 실행 흐름.
다이어그램 소스 보기
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 records필드 가이드
산소 전달 스키마의 모든 클래스에 대한 전체 필드 레벨 참조.
| 필드 | 유형 | 설명 | 필수 |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | 자동 |
| 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 | 자동 |
| updatedAt | Date | Auto-generated last-update timestamp | 자동 |
9 필드가 User에 있습니다.
접근 및 권한
ACL 및 CLP 전략이 사용자, 사이트, 탱크, 리필 로그 및 비상 연락처를 어떻게 보호하는지.
환자 사이트 경계
권한이 있는 직원만이 deliveryWindowStart, deliveryWindowEnd 및 노트를 포함하여 PatientSite 세부정보를 생성하거나 업데이트해야 합니다.
탱크 및 보충 무결성
탱크 할당 업데이트 및 보충 로그 생성을 인증된 접근 권한을 가진 배차 코디네이터 또는 드라이버로 제한합니다.
범위 지정 배차 가시성
배차 이벤트 및 비상 연락처 읽기를 해당 경로를 처리하는 지정된 치료 팀, 배차자 또는 드라이버로 제한합니다.
JSON 스키마
복사하여 Back4app에 붙여넣거나 구현 참조로 사용할 수 있는 원시 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
},
"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
}
}
}
]
}AI 에이전트로 구축
이 템플릿에서 프런트엔드, 백엔드, 인증, 탱크, 보충 및 비상 연락처 흐름을 포함하는 실제 산소 탱크 배달 앱을 생성하기 위해 Back4app AI 에이전트를 사용하세요.
정확한 스키마와 동작으로 Back4app에서 산소 탱크 배달 앱 백엔드를 만드세요. 스키마: 1. 사용자 (필수 Back4app 내장): 사용자 이름, 이메일, 비밀번호, 역할, 전화번호, 활성; objectId, createdAt, updatedAt (시스템). 2. 환자사이트: 사이트 이름, 주소 1, 도시, 지역, 우편번호, 배달 시간 시작, 배달 시간 종료, 주요 연락처 (사용자에 대한 포인터, 필수), 메모; objectId, createdAt, updatedAt. 3. 탱크 할당: 탱크 일련번호, psi 수준, 상태, 할당된 사이트 (환자사이트에 대한 포인터, 필수), 할당된 운전사 (사용자에 대한 포인터, 필수), 마지막 점검 시간, 다음 서비스 예정 시간; objectId, createdAt, updatedAt. 4. 리필 로그: 탱크 할당 (탱크 할당에 대한 포인터, 필수), 리필 시간, psi 이전, psi 이후, 리필된 사용자 (사용자에 대한 포인터, 필수), 리필 이유, 비고; objectId, createdAt, updatedAt. 5. 비상 연락처: 사이트 (환자사이트에 대한 포인터, 필수), 연락 이름, 관계, 전화번호, 선호 언어, 주요 연락처 여부; objectId, createdAt, updatedAt. 6. 배차 이벤트: 탱크 할당 (탱크 할당에 대한 포인터, 필수), 이벤트 유형, 이벤트 시간, 기록한 사용자 (사용자에 대한 포인터, 필수), 위치 메모; objectId, createdAt, updatedAt. 보안: - 배차자는 TankAssignment, RefillLog, DispatchEvent 및 PatientSite 기록을 생성하고 업데이트할 수 있습니다. - 운전자는 할당된 TankAssignment PSI 점검을 업데이트하고, RefillLog 항목을 생성하며, 그들이 처리하는 경로에 대한 DispatchEvent 업데이트를 추가할 수 있습니다. - 치료 팀 사용자는 자신의 PatientSite 기록과 EmergencyContact 항목을 볼 수 있지만 PSI 기록을 편집할 수는 없습니다. - EmergencyContact 데이터는 사이트 또는 배차 운영에 관련된 인증된 사용자에게만 보이도록 해야 합니다. 인증: - 회원 가입, 로그인, 로그아웃. 동작: - PSI 수준을 추적하고, 리필 로그를 저장하고, 비상 연락처를 첨부하며, 배차 인수 인계를 기록합니다. - 각 사이트에 대한 최신 탱크 압력, 리필 기록, 배달 창 및 비상 연락처를 표시합니다. 배달: - Back4app 앱과 스키마, ACL, CLP; 배차 보드, 운전사 경로 점검, 리필 로그 및 비상 연락처 조회용 프론트엔드.
아래 버튼을 눌러 이 템플릿 프롬프트가 미리 채워진 에이전트를 열어보세요.
이는 기술 접미사가 없는 기본 프롬프트입니다. 생성된 프론트엔드 스택은 이후에 조정할 수 있습니다.
API 테스터
산소 전달 스키마에 대해 REST 및 GraphQL 엔드포인트를 시도해 보십시오. 응답은 모의 데이터를 사용하며 Back4app 계정이 필요하지 않습니다.
이 템플릿과 동일한 스키마를 사용합니다.
기술 선택
각 카드를 확장하여 선택한 스택으로 PatientSite, TankAssignment 및 RefillLog를 통합하는 방법을 확인하세요.
Flutter 산소 공급 백엔드
React 산소 공급 백엔드
React 네이티브 산소 공급 백엔드
Next.js 산소 공급 백엔드
JavaScript 산소 공급 백엔드
Android 산소 공급 백엔드
iOS 산소 공급 백엔드
Vue 산소 공급 백엔드
Angular 산소 공급 백엔드
GraphQL 산소 공급 백엔드
REST API 산소 공급 백엔드
PHP 산소 공급 백엔드
.NET 산소 공급 백엔드
모든 기술로 얻는 것
모든 스택은 동일한 산소 공급 백엔드 스키마 및 API 계약을 사용합니다.
통합된 산소 물류 데이터 구조
하나의 스키마로 사용자, PatientSite, TankAssignment, RefillLog, EmergencyContact 및 DispatchEvent 레코드를 관리하세요.
배달 경로에 대한 PSI 추적
탱크 압력을 표시하여 배달팀이 먼저 낮은 실린더를 우선시할 수 있도록 합니다.
기술자를 위한 리필 로그 이력
각 서비스 정지에 대해 psiBefore, psiAfter 및 refillTime을 기록합니다.
비상 연락처 라우팅
연락처를 PatientSite 기록에 연결하여 라우트가 변경될 때 에스컬레이션을 사용할 수 있습니다.
REST/GraphQL API를 통한 산소 배송
모바일, 웹 및 운영 대시보드를 동일한 백엔드 계약으로 통합합니다.
산소 물류를 위한 확장 가능한 아키텍처
핵심 배송 스키마를 변경하지 않고 나중에 경로, 재고 또는 서비스 노트를 추가합니다.
산소 전달 스택 비교
모든 지원 기술에서 설정 속도, SDK 스타일 및 AI 지원을 비교합니다.
| 프레임워크 | 설정 시간 | 산소 전달 이점 | SDK 유형 | AI 지원 |
|---|---|---|---|---|
| 약 5분 | 모바일 및 웹에서 산소 공급을 위한 단일 코드베이스입니다. | 타입된 SDK | 전체 | |
| 5분 이내 | 배차 및 PSI 검토를 위한 빠른 웹 대시보드입니다. | 타입된 SDK | 전체 | |
| ~3–7분 | 운전사 및 기술자를 위한 크로스 플랫폼 모바일 앱입니다. | 타입된 SDK | 전체 | |
| 빠른(5분) 설정 | 배달 조정을 위한 서버 렌더링 웹 앱입니다. | 입력된 SDK | 전체 | |
| 약 3–5 분 | 산소 물류를 위한 경량 웹 통합입니다. | 입력된 SDK | 전체 | |
| 약 5 분 | 경로 및 PSI 확인을 위한 Android 네이티브 앱입니다. | 입력된 SDK | 전체 | |
| 5분 미만 | 배달 및 보충 작업을 위한 네이티브 iOS 앱입니다. | 입력된 SDK | 전체 | |
| ~3–7 분 | 산소 배달 작업을 위한 React 웹 UI입니다. | 타입된 SDK | 전체 | |
| 신속한 (5분) 설정 | 발송 및 보충 로그를 위한 기업 웹 앱입니다. | 타입된 SDK | 전체 | |
| 2분 이내 | 산소 배달 데이터에 대한 유연한 GraphQL API입니다. | GraphQL API | 전체 | |
| 빠른 (2 분) 설정 | 산소 공급 시스템을 위한 REST API 통합. | REST API | 전체 | |
| 약 3 분 | 배달 조정을 위한 서버 측 PHP 백엔드. | REST API | 전체 | |
| 약 3–7 분 | 산소 공급 작업을 위한 .NET 백엔드. | 타입 SDK | 전체 |
설정 시간은 이 템플릿 스키마를 사용하여 프로젝트 부트스트랩부터 첫 번째 TankAssignment 또는 PatientSite 쿼리까지 예상되는 기간을 반영합니다.
배달 질문
이 템플릿으로 산소 탱크 배달 백엔드를 구축하는 것에 대한 일반적인 질문들.