可攜式廁所租賃應用程式後端,包含網站、訂單、服務和 GPS
網站路由、服務訪問和單位追蹤
一個生產就緒的 可攜式廁所租賃後端 在 Back4app 的核心是 用戶、網站、庫存單位、租賃訂單、服務間隔 和 位置回報。追蹤發送、服務訪問和 GPS 回報,無需拼湊自定義後端。
主要租賃要點
此模板為您提供一個以使用者、站點、庫存單位、租賃訂單、服務間隔和地點訊號為中心的便攜式廁所租賃後端,以便派遣員、擁有者和客戶保持一致。
- 租賃訂單與站點保持連結 — 使用 RentalOrder.site 和 RentalOrder.assignedUnits 使每個預訂與正確的工作站點和便攜式廁所單位相連。
- 服務訪問是可追蹤的 — 使用 serviceCode、scheduledAt、completedAt、unit、performedBy 和 serviceNotes 模型每個 ServiceInterval。
- 庫存狀態是明確的 — InventoryUnit.status 和 InventoryUnit.lastServicedAt 顯示單位是否可用、已派遣、清潔或維護。
- GPS 鳴叫支援現場工作 — LocationPing 儲存 gpsLat、gpsLng、source、unit 和可選的訂單連結,用於司機應用、追蹤器或調度更新。
概述:可攜式廁所租賃應用
退貨和檢查在可攜式廁所租賃中關閉循環 — 系統應在下一次租賃開始之前捕獲條件和責任。成本將會在回調和信用中出現。使用 Back4app 上的核心實體來編碼可攜式廁所租賃的可用性、價格鉤和實現記錄,形成一個整體後端。該模式涵蓋用戶、網站、庫存單元、租賃訂單、服務間隔和包含授權和租賃工作流程功能的 LocationPing。連接您首選的前端並更快發貨。
最佳用途:
這個可攜式廁所租賃後端是如何組織的
如果在可攜式廁所租賃中入職新員工需要部落知識,那麼您就離單點故障只有一步之遙。
這個中心保持基於角色的用戶記錄、單元分配和狀態跟踪、服務間隔日誌的語言一致,因此產品、運營和工程在說「記錄」時意味著相同的事情。
便攜式廁所租賃核心功能
此中心中的每個技術卡片都使用相同的便攜廁所租賃結構,包括 User、Site、InventoryUnit、RentalOrder、ServiceInterval 和 LocationPing。
基於角色的用戶記錄
用戶存儲用戶名、電子郵件、密碼和調度員、擁有者或客戶訪問的角色。
單位分配和狀態跟蹤
InventoryUnit 連結 unitTag、unitType、status、currentSite 和 owner。
服務間隔日誌
ServiceInterval 存儲 serviceCode、scheduledAt、completedAt、status、unit 和 performedBy。
GPS 位置響應
LocationPing 保留 pingedAt,gpsLat,gpsLng,source,unit 和 order。
現場與租賃協調
現場和 RentalOrder 保留工作現場、聯絡人和指派的便攜廁所單元。
為什麼要使用 Back4app 構建您的可攜式廁所租賃後端?
Back4app 為您提供租賃、路徑和服務原始功能,使您的團隊能夠專注於調度和現場工作,而不是基礎設施。
- •網站和訂單記錄保持鏈接: 網站、租賃訂單和庫存單位在同一流程中保留每個工作地點、預訂和資產分配。
- •服務日誌是結構化的: ServiceInterval 捕捉 serviceCode、scheduledAt、completedAt、serviceNotes、performedBy,以及它觸及的單位。
- •庫存保持最新: InventoryUnit 顯示單位是可用、已派遣、清潔中還是維護中,而 Live Queries 使辦公桌保持資訊更新。
快速構建和迭代租賃操作,通過所有平台的一個後端合同。
可攜式廁所租賃的好處
一個幫助您保持路線、服務工作和庫存一致的租賃後端。
更快的調度決策
使用 Site、RentalOrder 和 InventoryUnit,而不是從頭開始拼湊路線數據。
清晰的服務責任
使用 ServiceInterval、serviceCode 和 performedBy 來顯示每個間隔的完成者及其發生的時間。
客戶更新保持一致
保持 User、Site.contactName 和 Site.contactPhone 與正確的租賃訂單相關聯。
庫存控制明確
InventoryUnit.status 和 lastServicedAt 更容易標示可用、已派遣、清潔或維護的單位。
位置感知操作
LocationPing.gpsLat 和 gpsLng 幫助工作人員驗證單元的交付或服務位置。
AI 啟動工作流程
透過一個結構化提示快速生成後端框架和整合指導。
準備啟動您的可移動廁所租賃應用程序了嗎?
讓 Back4app AI 代理為您的可移動廁所租賃後端構建框架,並從一個提示生成 Site、InventoryUnit、RentalOrder、ServiceInterval 和 LocationPing 流程。
免費開始 — 每月 50 次 AI 代理提示,不需要信用卡
可攜式租賃技術組合
此可攜式馬桶租賃後端模板中包含所有內容。
租賃架構圖
便攜式廁所租賃後端架構的實體關係模型。
涵蓋用戶、網站、庫存單位、租賃訂單、服務時間間隔和位置數據包的架構。
查看圖表來源
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
}
調度集成流程
登錄、租賃訂單查找、庫存單位分配、服務時間間隔登錄和位置數據包捕獲的典型運行時流程。
查看圖表來源
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租賃現場指南
便攜式衛生間租賃架構中每個類別的完整現場級別參考。
| 欄位 | 類型 | 描述 | 必填 |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | 自動 |
| 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 | 自動 |
| updatedAt | Date | Auto-generated last-update timestamp | 自動 |
7 欄位在 User 中
租賃數據的存取控制
如何使用 ACL 和 CLP 策略保護用戶、網站、訂單、服務訪問和地點標記。
客戶帳戶控制
只有客戶可以更新他們自己的用戶欄位並查看分配的網站、租賃訂單、服務間隔和地點標記數據。
服務及庫存完整性
只有授權的工作人員可以創建 ServiceInterval 和 LocationPing 記錄,而只有資產擁有者可以管理 InventoryUnit 的狀態。
範圍路由訪問
將讀取限制在與當前調度計劃相關的 Site、RentalOrder 和 InventoryUnit 行,特別是對於現場工作小組和面對客戶的視圖。
JSON Schema
原始 JSON schema 定義可準備複製到 Back4app 或用作實施參考。
{
"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
}
}
}
]
}使用 AI Agent 建立
使用 Back4app AI Agent 根據此模板生成一個真正的可攜式廁所租賃應用,包含前端、後端、身份驗證、以及 Site、InventoryUnit、RentalOrder、ServiceInterval 和 LocationPing 流程。
在 Back4app 上根據此精確的架構和行為創建一個安全的可攜式廁所租賃應用後端。 架構: 1. 用戶(使用 Back4app 內建):用戶名,電子郵件,密碼,角色;objectId,createdAt,updatedAt(系統)。 2. 現場:siteCode,名稱,地址,gpsLat,gpsLng,聯繫人姓名,聯繫人電話,客戶(指向用戶的指針);objectId,createdAt,updatedAt(系統)。 3. 存貨單位:unitTag,unitType,狀態,最後服務於,當前現場(指向現場的指針),擁有者(指向用戶的指針);objectId,createdAt,updatedAt(系統)。 4. 租賃訂單:orderNumber,狀態,開始日期,結束日期,現場(指向現場的指針),指派單位(Pointer<InventoryUnit> 的數組),客戶(指向用戶的指針),服務間隔天數,備註;objectId,createdAt,updatedAt(系統)。 5. 服務間隔:serviceCode,安排於,完成於,狀態,訂單(指向租賃訂單的指針),單位(指向存貨單位的指針),服務備註,由誰執行(指向用戶的指針);objectId,createdAt,updatedAt(系統)。 6. 位置Ping:pingedAt,gpsLat,gpsLng,來源,單位(指向存貨單位的指針),訂單(指向租賃訂單的指針,可選),由誰捕獲(指向用戶的指針);objectId,createdAt,updatedAt(系統)。 安全性: - 客戶只能查看自己的現場、租賃訂單、服務間隔和位置Ping條目。 - 調度員可以創建和更新服務間隔記錄並捕獲位置Ping數據。 - 資產擁有者可以管理存貨單位狀態並查看訂單指派。 - 除非角色被授權,否則保持位置和客戶聯繫人字段的私密性。 身份驗證: - 註冊,登錄,登出。 行為: - 列出租賃訂單,創建現場,指派存貨單位,安排服務間隔,記錄GPS pings。 - 保持存貨狀態和服務歷史的準確性,以便調度和客戶可見性。 交付: - Back4app 應用程序,包含模式、CLPs、ACLs 和前端流程,供租賃台員工、資產擁有者和預訂可攜式廁所服務的客戶使用。
按下下面的按鈕以使用此模板提示打開代理。
這是沒有技術後綴的基本提示。您可以在之後調整生成的前端堆疊。
API 沙盒
嘗試使用 REST 和 GraphQL 端點來測試可攜式廁所租賃架構。響應使用模擬數據,無需 Back4app 帳戶。
使用與此模板相同的架構。
選擇您的技術堆疊
展開每張卡片以查看如何將 Site、InventoryUnit 和 RentalOrder 與您選擇的技術堆疊整合。
Flutter 便攜式廁所租賃後端
React 便攜式廁所租賃後端
React 原生 便攜式廁所租賃後端
Next.js 便攜式廁所租賃後端
JavaScript 便攜式廁所租賃後端
Android 便攜式廁所租賃後端
iOS 便攜式廁所租賃後端
Vue 便攜式廁所租賃後端
Angular 便攜式廁所租賃後端
GraphQL 便攜式廁所租賃後端
REST API 便攜式廁所租賃後端
PHP 便攜式廁所租賃後端
.NET 便攜式廁所租賃後端
每種技術所提供的內容
每個堆疊都使用相同的可攜式廁所租賃後端架構和 API 合約。
統一的租賃數據結構
使用一致的架構管理用戶、站點、InventoryUnit、RentalOrder、ServiceInterval 和 LocationPing。
租賃的服務間隔日誌
記錄每次清理、重新補貨和檢查,使用相同的 ServiceInterval 模型。
具備 GPS 的位置追蹤
將 LocationPing 的緯度和經度與正確的 InventoryUnit 和 RentalOrder 綁定。
可攜式單位的庫存控制
為庫存、維護和派送定義狀態和 lastServicedAt 欄位。
REST/GraphQL API 供租賃使用
將移動端和網頁客戶端整合,使用靈活的端點進行訂單和服務流程。
可擴展的操作架構
稍後添加派送警報、檢查照片或計費類別,而不會破壞基本模型。
可攜式租賃堆疊比較
比較所有支援技術的設置速度、SDK風格和AI支援。
| 框架 | 設置時間 | 租賃優惠 | SDK 類型 | AI 支援 |
|---|---|---|---|---|
| 約 5 分鐘 | 租賃櫃台與現場工作人員螢幕的單一代碼庫。 | 類型化 SDK | 完整 | |
| 少於 5 分鐘 | 快速的網站儀表板,用於單元可用性和服務日誌。 | 輸入式 SDK | 完整 | |
| 約 3–7 分鐘 | 跨平台移動應用程序,用於現場訪問和檢查。 | 輸入式 SDK | 完整 | |
| 快速設定(5 分鐘) | 伺服器渲染的調度門戶,用於租賃操作。 | 輸入式 SDK | 完整 | |
| 約 3–5 分鐘 | 輕量級網路整合,可用於預訂和服務螢幕。 | 輸入式 SDK | 完整 | |
| 約 5 分鐘 | 原生 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 | 完整 |
設置時間反映從項目啟動到使用此模板架構的第一個 InventoryUnit、RentalOrder、ServiceInterval 或 LocationPing 查詢的預期持續時間。
便攜式租賃問題
有關使用此範本構建便攜式廁所租賃後端的常見問題。