산소 배송
AI 에이전트로 구축
산소 탱크 배송 백엔드

산소 탱크 배송 앱 백엔드 템플릿
탱크 배정 및 배송 조정

생산 준비 완료된 산소 탱크 배송 백엔드 on Back4app로 사용자 접근, PatientSite 배송, TankAssignment PSI 추적, RefillLog 이력, EmergencyContact 조회 및 DispatchEvent 추적이 포함됩니다. ER 다이어그램, 데이터 사전, JSON 스키마, API 플레이그라운드 및 신속 부트스트랩을 위한 AI 에이전트 프롬프트가 포함됩니다.

주요 내용

이 템플릿은 사용자의 역할, PatientSite 배달 창, TankAssignment PSI 추적, RefillLog 기록 및 EmergencyContact 조회가 포함된 산소 배달 백엔드를 제공하여 조정자가 불필요한 소통 없이 배달을 관리할 수 있게 합니다.

  1. 탱크 PSI 가시성TankAssignment.psiLevel, 상태 및 lastCheckedAt를 추적하여 배달 팀이 어떤 산소 탱크에 주의가 필요한지 알 수 있도록 합니다.
  2. 쿼리 가능한 리필 기록각 RefillLog 항목을 tankAssignment, refillTime, psiBefore, psiAfter, refillReason 및 refilledBy와 함께 기록합니다.
  3. 비상 연락처 라우팅EmergencyContact 기록을 PatientSite에 연결하여 직원들이 deliveryWindowStart, deliveryWindowEnd 또는 접근 노트가 중요할 때 신속하게 조치를 취할 수 있도록 합니다.
  4. 배차 및 운전사 조정TankAssignment.assignedSite, assignedDriver 및 DispatchEvent.eventType을 사용하여 경로 및 인계가 명확하게 유지되도록 합니다.

산소 탱크 배달 앱 백엔드 이해하기

부드러운 산소 배달 체크아웃은 수십 가지 확인을 숨깁니다: 자격, 충돌, 보증금, 그리고 이행으로의 인계. Back4app에 핵심 엔터티를 모델링하여 산소 배달 팀이 단일 야드에서 다중 사이트 운영으로 성장할 수 있는 백엔드를 제공합니다. 스키마는 User, PatientSite, TankAssignment, RefillLog, EmergencyContact 및 DispatchEvent를 포함하며 인증 및 배달 워크플로우 제어가 내장되어 있습니다. 선호하는 프론트엔드를 연결하고 더 빠르게 배송하세요.

최고의 용도:

산소 탱크 배달 앱의료 장비 물류배차 조정 도구리필 추적 플랫폼비상 연락처 워크플로우팀이 BaaS을(를) 산소 배송 제품으로 선택하고 있습니다

산소 배송: 백엔드 스냅샷

모바일 팀과 백오피스 직원은 산소 배송에서 서로 다른 현실 조각을 보고 있으며, 제품의 작업은 비난 게임 없이 이러한 조각을 연결하는 것입니다.

이곳에서 이해관계자들이 발송 및 관리 팀을 위한 사용자 역할, 환자 현장 배송 위치 관리, 각 탱크 할당에 대한 파이(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 에이전트 프롬프트, 신용 카드 필요 없음

배달 기술 스택

이 산소 배달 백엔드 템플릿에는 모든 것이 포함되어 있습니다.

프론트엔드
13개 이상의 기술
백엔드
Back4app
데이터베이스
__브랜드0__
인증
내장 인증 + 세션
API
REST 및 __브랜드0__
실시간
__브랜드0__

관계 맵

산소 공급 백엔드 스키마의 엔티티 관계 모델입니다.

다이어그램 소스 보기
Mermaid
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 검토, 리필 로그 생성, 배치 이벤트 업데이트 및 비상 연락처 조회를 위한 일반적인 실행 흐름.

다이어그램 소스 보기
Mermaid
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

필드 가이드

산소 전달 스키마의 모든 클래스에 대한 전체 필드 레벨 참조.

필드유형설명필수
objectIdStringAuto-generated unique identifier자동
usernameStringUser login name
emailStringUser email address
passwordStringHashed password (write-only)
roleStringRole in the app (e.g. dispatcher, driver, careTeam, patient)
phoneNumberStringPrimary contact phone number
activeBooleanWhether the account can access the app
createdAtDateAuto-generated creation timestamp자동
updatedAtDateAuto-generated last-update timestamp자동

9 필드가 User에 있습니다.

접근 및 권한

ACL 및 CLP 전략이 사용자, 사이트, 탱크, 리필 로그 및 비상 연락처를 어떻게 보호하는지.

환자 사이트 경계

권한이 있는 직원만이 deliveryWindowStart, deliveryWindowEnd 및 노트를 포함하여 PatientSite 세부정보를 생성하거나 업데이트해야 합니다.

탱크 및 보충 무결성

탱크 할당 업데이트 및 보충 로그 생성을 인증된 접근 권한을 가진 배차 코디네이터 또는 드라이버로 제한합니다.

범위 지정 배차 가시성

배차 이벤트 및 비상 연락처 읽기를 해당 경로를 처리하는 지정된 치료 팀, 배차자 또는 드라이버로 제한합니다.

JSON 스키마

복사하여 Back4app에 붙여넣거나 구현 참조로 사용할 수 있는 원시 JSON 스키마 정의입니다.

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 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; 배차 보드, 운전사 경로 점검, 리필 로그 및 비상 연락처 조회용 프론트엔드.

아래 버튼을 눌러 이 템플릿 프롬프트가 미리 채워진 에이전트를 열어보세요.

이는 기술 접미사가 없는 기본 프롬프트입니다. 생성된 프론트엔드 스택은 이후에 조정할 수 있습니다.

몇 분 안에 배포월 50개의 무료 프롬프트신용 카드 필요 없음

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 쿼리까지 예상되는 기간을 반영합니다.

배달 질문

이 템플릿으로 산소 탱크 배달 백엔드를 구축하는 것에 대한 일반적인 질문들.

산소 배달 팀은 반납이 지연되거나 자산이 유지 보수 중일 때 어떻게 가용성을 정확하게 유지하나요?
PatientSite, TankAssignment, RefillLog를 충족 및 반품 검사에 연결하는 올바른 방법은 무엇인가요?
예약 논리를 다시 작성하지 않고 새로운 산소 배달 요금 구조나 번들을 어떻게 추가하나요?
나는 Flutter로 탱크 및 배송 사이트에 대한 쿼리를 어떻게 실행하나요?
나는 Next.js Server Actions와 비상 연락처 통합을 어떻게 관리하나요?
React 네이티브는 오프라인에서 탱크 PSI 데이터를 캐시할 수 있나요?
나는 무단 리필 수정을 어떻게 방지하나요?
Android에서 배송 경로를 표시하는 가장 좋은 방법은 무엇인가요?
산소 공급 흐름은 처음부터 끝까지 어떻게 작동하나요?
이 산소 탱크 배송 템플릿을 지원하는 클래스는 무엇인가요?

전 세계 개발자들이 신뢰함

팀과 함께 Back4app 템플릿으로 산소 배송 제품을 더 빠르게 배송하세요

G2 Users Love Us Badge

산소 탱크 배송 앱을 만들 준비가 되셨나요?

몇 분 안에 산소 배송 프로젝트를 시작하세요. 신용 카드가 필요하지 않습니다.

기술 선택