Backend Aplikasi Penyewaan Toilet Portabel untuk Situs, Pesanan, Layanan & GPS
Rute Situs, Kunjungan Layanan, dan Pelacakan Unit
Backend penyewaan toilet portabel yang siap produksi di Back4app dibangun di sekitar User, Situs, InventoryUnit, RentalOrder, ServiceInterval, dan LocationPing. Lacak pengiriman, kunjungan layanan, dan pings GPS tanpa merajut backend khusus.
Poin Penting Sewa
Template ini memberikan backend penyewaan toilet portabel yang berfokus pada Pengguna, Lokasi, UnitInventaris, PesananSewa, IntervalLayanan, dan LokasiSinyal sehingga pengirim, pemilik, dan pelanggan dapat tetap selaras.
- Pesanan sewa tetap terhubung ke lokasi — Gunakan RentalOrder.site dan RentalOrder.assignedUnits untuk menjaga setiap pemesanan terikat ke lokasi pekerjaan yang tepat dan unit toilet portabel.
- Kunjungan layanan dapat dilacak — Model setiap ServiceInterval dengan serviceCode, scheduledAt, completedAt, unit, performedBy, dan serviceNotes.
- Status inventaris eksplisit — InventoryUnit.status dan InventoryUnit.lastServicedAt menunjukkan apakah suatu unit tersedia, dikirim, dalam pembersihan, atau pemeliharaan.
- Dukungan GPS pings untuk pekerjaan lapangan — LocationPing menyimpan gpsLat, gpsLng, sumber, unit, dan tautan pesanan opsional untuk pembaruan driver-app, pelacak, atau pengiriman.
Ikhtisar: Aplikasi Sewa Toilet Portabel
Pengembalian dan inspeksi menutup siklus dalam sewa toilet portabel — sistem harus menangkap kondisi dan tanggung jawab sebelum sewa berikutnya dimulai. Biaya muncul dalam callback dan kredit. Gunakan entitas inti di Back4app untuk mengkodekan ketersediaan sewa toilet portabel, kait harga, dan catatan pemenuhan dalam satu backend yang kohesif. Skema mencakup Pengguna, Situs, UnitInventaris, PesananSewa, IntervalLayanan, dan LocationPing dengan fitur otorisasi dan alur kerja sewa terintegrasi. Hubungkan frontend pilihan Anda dan kirim lebih cepat.
Terbaik untuk:
Bagaimana backend Penyewaan Toilet Portabel ini terorganisir
Jika pelatihan karyawan baru dalam penyewaan toilet portabel membutuhkan pengetahuan khusus, Anda hanya satu langkah dari titik kegagalan tunggal.
Pusat menjaga konsistensi bahasa catatan pengguna berbasis peran, penugasan unit dan pelacakan status, log interval layanan sehingga produk, operasional, dan teknik memiliki arti yang sama saat mereka mengatakan 'catatan.'
Fitur Utama Sewa Toilet Portable
Setiap kartu teknologi di hub ini menggunakan skema sewa toilet portabel yang sama dengan User, Site, InventoryUnit, RentalOrder, ServiceInterval, dan LocationPing.
Rekam pengguna berbasis peran
Pengguna menyimpan nama pengguna, email, kata sandi, dan peran untuk akses dispatcher, pemilik, atau pelanggan.
Penugasan unit dan pelacakan status
InventoryUnit menghubungkan unitTag, unitType, status, currentSite, dan pemilik.
Log interval layanan
ServiceInterval menyimpan serviceCode, scheduledAt, completedAt, status, unit, dan performedBy.
deteksi lokasi GPS
LocationPing menyimpan pingedAt, gpsLat, gpsLng, sumber, unit, dan pesanan.
Koordinasi lokasi dan penyewaan
Site dan RentalOrder menjaga lokasi pekerjaan, kontak, dan unit toilet portabel yang ditugaskan.
Mengapa Membangun Backend Penyewaan Toilet Portabel Anda dengan Back4app?
Back4app memberikan Anda primitif sewa, rute, dan layanan sehingga tim Anda dapat fokus pada pengiriman dan pekerjaan di lokasi alih-alih infrastruktur.
- •Rekaman situs dan pesanan tetap terhubung: Situs, RentalOrder, dan InventoryUnit menjaga setiap lokasi pekerjaan, pemesanan, dan penugasan aset dalam satu jejak.
- •Log layanan terstruktur: ServiceInterval menangkap serviceCode, scheduledAt, completedAt, serviceNotes, performedBy, dan unit yang terlibat.
- •Inventaris tetap terkini: InventoryUnit menunjukkan apakah sebuah unit tersedia, terdistribusi, dalam pembersihan, atau pemeliharaan sementara Live Queries memberikan informasi kepada meja.
Bangun dan iterasi operasi sewa dengan cepat dengan satu kontrak backend di semua platform.
Manfaat Sewa Toilet Portabel
Backend penyewaan yang membantu Anda menjaga rute, pekerjaan layanan, dan inventaris tetap sesuai.
Keputusan pengiriman yang lebih cepat
Gunakan Site, RentalOrder, dan InventoryUnit sebagai pengganti menggabungkan data rute dari awal.
Akuntabilitas layanan yang jelas
Gunakan ServiceInterval, serviceCode, dan performedBy untuk menunjukkan siapa yang menyelesaikan setiap interval dan kapan itu terjadi.
Pembaruan pelanggan tetap konsisten
Jaga User, Site.contactName, dan Site.contactPhone terhubung dengan pesanan sewa yang tepat.
Kontrol inventaris bersifat eksplisit
InventoryUnit.status dan lastServicedAt memudahkan untuk menandai unit yang tersedia, yang dikirim, dalam pembersihan, atau dalam pemeliharaan.
Operasi yang menyadari lokasi
LocationPing.gpsLat dan gpsLng membantu tim memverifikasi di mana unit dikirim atau dilayani.
Alur kerja bootstrap AI
Hasilkan kerangka backend dan panduan integrasi dengan cepat hanya dengan satu prompt terstruktur.
Siap meluncurkan aplikasi penyewaan toilet portabel Anda?
Biarkan Agen AI Back4app membuat kerangka backend penyewaan toilet portabel Anda dan menghasilkan alur Site, InventoryUnit, RentalOrder, ServiceInterval, dan LocationPing dari satu prompt.
Gratis untuk memulai — 50 prompt Agen AI/bulan, tanpa kartu kredit diperlukan
Teknologi Sewa Portabel
Semua termasuk dalam template backend sewa toilet portabel ini.
Peta Skema Penyewaan
Model hubungan entitas untuk skema backend penyewaan toilet portabel.
Skema yang mencakup pengguna, situs, unit inventaris, pesanan sewa, interval layanan, dan lokasi ping.
Lihat sumber diagram
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
}
Alur Integrasi Pengiriman
Alur waktu biasa untuk masuk, pencarian PesananSewa, penugasan UnitInventaris, pencatatan IntervalLayanan, dan pengambilan LokasiPing.
Lihat sumber diagram
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 statusPanduan Lapangan Sewa
Referensi tingkat lapangan penuh untuk setiap kelas dalam skema sewa toilet portabel.
| Field | Tipe | Deskripsi | Diperlukan |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | Otomatis |
| 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 | Otomatis |
| updatedAt | Date | Auto-generated last-update timestamp | Otomatis |
7 bidang di User
Kontrol Akses untuk Data Penyewaan
Bagaimana strategi ACL dan CLP melindungi pengguna, situs, pesanan, kunjungan layanan, dan lokasi ping.
Kontrol akun pelanggan
Hanya pelanggan yang dapat memperbarui bidang Pengguna miliknya sendiri dan melihat data Situs, RentalOrder, ServiceInterval, dan LocationPing yang ditugaskan.
Integritas layanan dan inventaris
Hanya staf yang berwenang yang dapat membuat catatan ServiceInterval dan LocationPing, dan hanya pemilik aset yang dapat mengelola status InventoryUnit.
Akses rute yang terfokus
Batasi pembacaan pada baris Site, RentalOrder, dan InventoryUnit yang terkait dengan rencana pengiriman saat ini, terutama untuk kru lapangan dan tampilan yang menghadapi pelanggan.
Skema JSON
Definisi skema JSON mentah siap untuk disalin ke dalam Back4app atau digunakan sebagai referensi implementasi.
{
"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
}
}
}
]
}Bangun dengan AI Agent
Gunakan AI Agent Back4app untuk menghasilkan aplikasi penyewaan toilet portabel yang nyata dari template ini, termasuk frontend, backend, otentikasi, dan alur Site, InventoryUnit, RentalOrder, ServiceInterval, dan LocationPing.
Buat backend Aplikasi Sewa Toilet Portable yang aman di Back4app dengan skema dan perilaku yang tepat ini. Skema: 1. Pengguna (gunakan Back4app bawaan): namaPengguna, email, sandi, peran; objectId, createdAt, updatedAt (sistem). 2. Situs: kodeSitus, nama, alamat, gpsLat, gpsLng, namaKontak, teleponKontak, pelanggan (Pointer ke Pengguna); objectId, createdAt, updatedAt (sistem). 3. UnitInventaris: tagUnit, tipeUnit, status, terakhirDilayaniPada, situsSaatIni (Pointer ke Situs), pemilik (Pointer ke Pengguna); objectId, createdAt, updatedAt (sistem). 4. PesananSewa: nomorPesanan, status, tanggalMulai, tanggalAkhir, situs (Pointer ke Situs), unitDitugaskan (Array of Pointer<InventoryUnit>), pelanggan (Pointer ke Pengguna), intervalLayananHari, catatan; objectId, createdAt, updatedAt (sistem). 5. IntervalLayanan: kodeLayanan, dijadwalkanPada, selesaiPada, status, pesanan (Pointer ke RentalOrder), unit (Pointer ke InventoryUnit), catatanLayanan, dilakukanOleh (Pointer ke Pengguna); objectId, createdAt, updatedAt (sistem). 6. LocationPing: dipingPada, gpsLat, gpsLng, sumber, unit (Pointer ke InventoryUnit), pesanan (Pointer ke RentalOrder, opsional), ditangkapOleh (Pointer ke Pengguna); objectId, createdAt, updatedAt (sistem). Keamanan: - Pelanggan hanya dapat melihat situs, pesanan sewa, interval layanan, dan entri LocationPing mereka sendiri. - Pengirim dapat membuat dan memperbarui catatan IntervalLayanan serta menangkap data LocationPing. - Pemilik aset dapat mengelola status InventoryUnit dan melihat penugasan pesanan. - Jaga agar lokasi dan bidang kontak pelanggan tetap pribadi kecuali peran diizinkan. Autentikasi: - Daftar, masuk, keluar. Perilaku: - Daftar pesanan sewa, buat situs, tugaskan unit inventaris, jadwalkan interval layanan, dan catat ping GPS. - Jaga agar status inventaris dan riwayat layanan akurat untuk pengiriman dan visibilitas pelanggan. Hasilkan: - Aplikasi Back4app dengan skema, CLP, ACL, dan alur frontend untuk staf meja sewa, pemilik aset, dan pelanggan yang memesan layanan toilet portable.
Tekan tombol di bawah untuk membuka Agen dengan prompt template ini yang sudah diisi sebelumnya.
Ini adalah prompt dasar tanpa akhiran teknologi. Anda dapat menyesuaikan tumpukan frontend yang dihasilkan setelahnya.
API Sandbox
Coba REST dan endpoint GraphQL terhadap skema penyewaan toilet portabel. Respons menggunakan data tiruan dan tidak memerlukan akun Back4app.
Menggunakan skema yang sama seperti template ini.
Pilih Stack Anda
Perluas setiap kartu untuk melihat cara mengintegrasikan Site, InventoryUnit, dan RentalOrder dengan tumpukan pilihan Anda.
Flutter Penyewaan Toilet Portabel Backend
React Penyewaan Toilet Portabel Backend
React Native Penyewaan Toilet Portabel Backend
Next.js Penyewaan Toilet Portabel Backend
JavaScript Penyewaan Toilet Portabel Backend
Android Penyewaan Toilet Portabel Backend
iOS Penyewaan Toilet Portabel Backend
Vue Penyewaan Toilet Portabel Backend
Angular Penyewaan Toilet Portabel Backend
GraphQL Penyewaan Toilet Portabel Backend
REST API Penyewaan Toilet Portabel Backend
PHP Penyewaan Toilet Portabel Backend
.NET Penyewaan Toilet Portabel Backend
Apa yang Anda Dapatkan dengan Setiap Teknologi
Setiap tumpukan menggunakan skema backend sewa toilet portabel dan kontrak API yang sama.
Struktur data sewa yang terintegrasi
Kelola Pengguna, Site, InventoryUnit, RentalOrder, ServiceInterval, dan LocationPing dengan skema yang konsisten.
Catatan interval layanan untuk sewa
Catat setiap pembersihan, pengisian ulang, dan inspeksi dengan model ServiceInterval yang sama.
Pelacakan lokasi yang sadar GPS
Jaga agar latitude dan longitude LocationPing terikat pada InventoryUnit dan RentalOrder yang tepat.
Kontrol inventaris untuk unit portabel
Tentukan status dan field lastServicedAt untuk stok, pemeliharaan, dan pengiriman.
REST/GraphQL API untuk penyewaan
Integrasikan klien mobile dan web dengan titik akhir yang fleksibel untuk alur pesanan dan layanan.
Arsitektur operasi yang dapat diperluas
Tambahkan pemberitahuan pengiriman, foto inspeksi, atau kelas penagihan kemudian tanpa merusak model dasar.
Perbandingan Tumpukan Sewa Portabel
Bandingkan kecepatan pengaturan, gaya SDK, dan dukungan AI di semua teknologi yang didukung.
| Kerangka Kerja | Waktu Setup | Manfaat Sewa | Jenis SDK | Dukungan AI |
|---|---|---|---|---|
| Sekitar 5 menit | Satu basis kode untuk layar meja sewa dan kru lapangan. | SDK Terketik | Penuh | |
| Kurang dari 5 menit | Dasbor web cepat untuk ketersediaan unit dan catatan layanan. | SDK Tertulis | Penuh | |
| ~3–7 menit | Aplikasi mobile lintas platform untuk kunjungan dan inspeksi situs. | SDK Tertulis | Penuh | |
| Pengaturan cepat (5 menit) | Portal pengiriman yang dirender di server untuk operasi penyewaan. | SDK Tertulis | Penuh | |
| ~3–5 menit | Integrasi web ringan untuk layar pemesanan dan layanan. | SDK Tertulis | Penuh | |
| Sekitar 5 menit | Aplikasi Android asli untuk pengemudi dan pembaruan rute. | SDK Tertulis | Penuh | |
| Kurang dari 5 menit | Aplikasi iOS asli untuk kunjungan situs dan pemeriksaan pengiriman. | SDK Tertulis | Penuh | |
| ~3–7 menit | Antarmuka web Reactive untuk papan layanan dan inventaris. | SDK Tertulis | Penuh | |
| Pengaturan cepat (5 menit) | Aplikasi web perusahaan untuk manajemen pengiriman dan penyewaan. | SDK Tipe | Penuh | |
| Di bawah 2 menit | API GraphQL yang fleksibel untuk kueri situs dan layanan bersarang. | API GraphQL | Penuh | |
| Pengaturan cepat (2 menit) | Integrasi REST API untuk pembaruan pemesanan dan rute. | REST API | Penuh | |
| ~3 menit | Backend PHP di sisi server untuk alur kerja meja sewa. | REST API | Penuh | |
| ~3–7 menit | Backend .NET untuk operasi pengiriman dan inventaris. | SDK Tipe | Penuh |
Waktu setup mencerminkan durasi yang diharapkan dari bootstrap proyek hingga kueri pertama InventoryUnit, RentalOrder, ServiceInterval, atau LocationPing menggunakan skema template ini.
Pertanyaan seputar Rental Portable
Pertanyaan umum tentang membangun backend penyewaan toilet portable dengan template ini.
Siap untuk Membangun Aplikasi Sewa Toilet Portabel Anda?
Mulai proyek sewa toilet portabel Anda dalam hitungan menit. Tidak diperlukan kartu kredit.