移动汽车美容应用后端模板
现场调度、服务选择和支付记录
一个在 Back4app 上的可生产移动汽车美容后端,提供客户位置追踪、服务层级选择和支付历史。包括 ER 图、数据字典、JSON 模式、API 游乐场,以及一个用于快速设置的AI 代理提示。
派遣要点
此模板为您提供一个移动汽车美容后端,具备客户位置跟踪、服务等级选择和支付历史,以便协调员和现场员工能够从同一可信来源工作。
- 客户位置跟踪 — 将每个服务工作与客户纬度、客户经度和服务地址存储,以实现准确的现场路线规划。
- 服务等级选择 — 建模 TierPackage,并在 ServiceJob 上添加 chosenTierPointer,以记录确切的洗车、抛光或内部套餐。
- 支付历史集中管理 — 将支付记录与 ServiceJob 和客户关联,以便轻松审核账单历史。
概述:移动汽车美容应用
即使是强大的移动汽车美容手册,如果技术人员无法相信工作包与客户所承诺的内容匹配,也会失败。可靠性是一个特性,而不是脚注。该架构以客户、车辆、等级包、服务工作和支付为中心,提供 Back4app 实时查询,给移动汽车美容运营商一个整个组织可以信任的真实来源。该架构涵盖客户(全名,电话号码,电子邮件)、车辆(客户、品牌、型号、车牌号)、等级包(名称,价格,持续时间(分钟),是否包括内部)、服务工作(客户,车辆,选择的等级,服务地址,客户纬度,客户经度,状态)和支付(服务工作,金额,方式,支付状态,支付时间),并内置身份验证和现场操作流程。连接您首选的前端并更快发布。
最佳用途:
您在移动汽车清洗模板中获得的内容
移动汽车清洗不仅仅是关于速度;当有人问“告诉我你怎么知道这是真的”时,这关乎于可辩护性。
使用此概述查看客户、车辆和 TierPackage 如何结合在一起,然后再将工程时间承诺给特定的客户端框架。
核心移动细节功能
此中心的每张技术卡都使用相同的清洁架构,包括客户、车辆、等级套餐、ServiceJob 和付款。
客户资料和联系信息
客户存储 fullName、phoneNumber、email 和 defaultServiceAddress。
每个预约的车辆记录
车辆连接到客户,并存储品牌、型号、年份和车牌号码。
服务等级选择
TierPackage定义名称、价格、时长(分钟),并包括内部服务。
准备派遣的服务工作
ServiceJob 记录状态,服务地址,客户纬度,客户经度和分配的洗车工。
付款历史和费用跟踪
付款链接到 ServiceJob、客户、金额、方式、付款状态和付款日期。
为什么要使用 Back4app 构建您的移动汽车清洗应用后端?
Back4app 为您提供客户、服务和支付原语,以便您的团队可以专注于调度和详细质量,而不是后端维护。
- •位置感知服务工作: ServiceJob 存储 customerLatitude、customerLongitude 和 serviceAddress,以便协调人员可以将清洗者引导到正确的地址。
- •按级别划分的预订: TierPackage 和 chosenTierPointer 将每个洗车、抛光或完整清洗请求与所选套餐关联。
- •支付历史和收据: 与 ServiceJob 和 Customer 关联的支付使每个收费、退款和支付状态在一个地方可见。
通过不同平台的一个后端合同更快地启动预订、调度和账单工作流程。
核心优势
一个能对接排程、路线规划和账单的清洁后端。
更快的预订设置
从客户、车辆和服务工作类开始,而不是从头设计预订表格。
更清晰的调度决策
使用ServiceJob.customerLatitude和ServiceJob.customerLongitude来排序路线并减少未按时到达。
为员工和客户提供清晰的级别
TierPackage和ServiceJob.chosenTier消除了团队确认所选详细包时的猜测。
可以审计的付款历史
与ServiceJob和Customer相关的付款记录使收费检查和退款审核变得简单。
跨平台服务可见性
REST和GraphQL可以从一个架构为移动应用、协调面板和报告工具提供数据。
AI辅助的后端启动
使用单一结构化提示生成细节应用程序框架和集成计划。
准备好推出您的移动汽车细节应用程序了吗?
让Back4app AI代理为您搭建细节后端,并从一个提示生成客户位置跟踪、服务层选择和支付历史。
免费开始 — 每月50个AI代理提示,无需信用卡
技术栈
此移动汽车美容后端模板中包含所有内容。
ER 图
用于移动汽车美容后端架构的实体关系模型。
涵盖客户、车辆、美容级别、服务工作和支付的架构。
查看图表源
erDiagram
User ||--o{ Booking : "assignedTo"
User ||--o{ LocationPing : "detailer"
Customer ||--o{ Booking : "customer"
Customer ||--o{ PaymentHistory : "customer"
ServiceTier ||--o{ Booking : "serviceTier"
Booking ||--o{ LocationPing : "booking"
Booking ||--o{ PaymentHistory : "booking"
User {
String objectId PK
String username
String email
String password
String role
String phoneNumber
Date createdAt
Date updatedAt
}
Customer {
String objectId PK
String fullName
String phoneNumber
String email
String homeAddress
String preferredVehicle
String notes
Date createdAt
Date updatedAt
}
ServiceTier {
String objectId PK
String name
Number price
Number durationMinutes
String description
Boolean isActive
Date createdAt
Date updatedAt
}
Booking {
String objectId PK
String customerId FK
String serviceTierId FK
Date scheduledAt
String status
String assignedToId FK
String vehicleDetails
Number estimatedTotal
String specialInstructions
Date createdAt
Date updatedAt
}
LocationPing {
String objectId PK
String bookingId FK
String detailerId FK
Number latitude
Number longitude
Date capturedAt
String status
Date createdAt
Date updatedAt
}
PaymentHistory {
String objectId PK
String bookingId FK
String customerId FK
Number amount
String currency
String paymentMethod
String paymentStatus
Date paidAt
String receiptUrl
Date createdAt
Date updatedAt
}
集成流程
登录、服务等级选择、地址跟踪和支付历史的典型运行流程。
查看图表源
sequenceDiagram
participant Staff as Mobile Car Detailing App User
participant App as Mobile Car Detailing App
participant Back4app as Back4app Cloud
Staff->>App: Sign in
App->>Back4app: POST /login
Back4app-->>App: Session token
Staff->>App: Review customer location tracking
App->>Back4app: GET /classes/Booking?include=customer,serviceTier,assignedTo
Back4app-->>App: Booking list with customer addresses and tier selection
Staff->>App: Send a GPS location ping
App->>Back4app: POST /classes/LocationPing
Back4app-->>App: LocationPing objectId
Staff->>App: Check payment history
App->>Back4app: GET /classes/PaymentHistory?include=booking,customer
Back4app-->>App: Payment history entries
App->>Back4app: Subscribe to Booking updates
Back4app-->>App: Live update for status changes数据字典
移动汽车美容架构中每个类的字段级参考。
| 字段 | 类型 | 描述 | 必填 |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | 自动 |
| username | String | Login name for managers, coordinators, or field staff | |
| String | Email address used for account access and notifications | ||
| password | String | Hashed password stored by Parse (write-only) | |
| role | String | Account role such as manager, coordinator, or detailer | |
| phoneNumber | String | Direct contact number for dispatch and schedule updates | — |
| createdAt | Date | Auto-generated creation timestamp | 自动 |
| updatedAt | Date | Auto-generated last-update timestamp | 自动 |
8 字段在 User 中
安全性和权限
ACL 和 CLP 策略如何保护客户、服务工作和支付记录。
客户资料控制
只有客户或授权的协调员可以更新客户资料。
工作所有权和派遣检查
服务工作创建和更新应在云代码中进行验证,以便只有已批准的员工可以分配详细人员或更改状态。
范围支付访问
支付读取应仅限于相关的客户、协调员或财务角色,以保护计费历史。
架构 (JSON)
原始 JSON 架构定义准备好可以复制到 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
},
"phoneNumber": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "Customer",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"fullName": {
"type": "String",
"required": true
},
"phoneNumber": {
"type": "String",
"required": true
},
"email": {
"type": "String",
"required": true
},
"homeAddress": {
"type": "String",
"required": true
},
"preferredVehicle": {
"type": "String",
"required": false
},
"notes": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "ServiceTier",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"name": {
"type": "String",
"required": true
},
"price": {
"type": "Number",
"required": true
},
"durationMinutes": {
"type": "Number",
"required": true
},
"description": {
"type": "String",
"required": true
},
"isActive": {
"type": "Boolean",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "Booking",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"customer": {
"type": "Pointer",
"required": true,
"targetClass": "Customer"
},
"serviceTier": {
"type": "Pointer",
"required": true,
"targetClass": "ServiceTier"
},
"scheduledAt": {
"type": "Date",
"required": true
},
"status": {
"type": "String",
"required": true
},
"assignedTo": {
"type": "Pointer",
"required": false,
"targetClass": "User"
},
"vehicleDetails": {
"type": "String",
"required": false
},
"estimatedTotal": {
"type": "Number",
"required": true
},
"specialInstructions": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "LocationPing",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"booking": {
"type": "Pointer",
"required": true,
"targetClass": "Booking"
},
"detailer": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"latitude": {
"type": "Number",
"required": true
},
"longitude": {
"type": "Number",
"required": true
},
"capturedAt": {
"type": "Date",
"required": true
},
"status": {
"type": "String",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "PaymentHistory",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"booking": {
"type": "Pointer",
"required": true,
"targetClass": "Booking"
},
"customer": {
"type": "Pointer",
"required": true,
"targetClass": "Customer"
},
"amount": {
"type": "Number",
"required": true
},
"currency": {
"type": "String",
"required": true
},
"paymentMethod": {
"type": "String",
"required": true
},
"paymentStatus": {
"type": "String",
"required": true
},
"paidAt": {
"type": "Date",
"required": false
},
"receiptUrl": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
}
]
}使用 AI 代理构建
使用 Back4app AI 代理从此模板生成一个真实的移动汽车美容应用,包括前端、后端、身份验证以及服务工作、级别和支付流程。
在 Back4app 上根据此确切的架构和行为创建一个移动汽车美容应用后端。 架构: 1. 客户:fullName(字符串,必填),phoneNumber(字符串,必填),email(字符串),defaultServiceAddress(字符串),notes(字符串);objectId,createdAt,updatedAt(系统)。 2. 车辆:customer(指向客户的指针,必填),make(字符串,必填),model(字符串,必填),year(数字,必填),plateNumber(字符串,必填),color(字符串);objectId,createdAt,updatedAt(系统)。 3. 套餐:name(字符串,必填),price(数字,必填),durationMinutes(数字,必填),includesInterior(布尔值,必填),description(字符串);objectId,createdAt,updatedAt(系统)。 4. 服务工作:customer(指向客户的指针,必填),vehicle(指向车辆的指针,必填),chosenTier(指向套餐的指针,必填),serviceAddress(字符串,必填),customerLatitude(数字),customerLongitude(数字),scheduledAt(日期,必填),assignedDetailer(字符串),status(字符串,必填),notes(字符串);objectId,createdAt,updatedAt(系统)。 5. 付款:serviceJob(指向服务工作的指针,必填),customer(指向客户的指针,必填),amount(数字,必填),method(字符串,必填),paymentStatus(字符串,必填),paidAt(日期),transactionRef(字符串);objectId,createdAt,updatedAt(系统)。 安全性: - 客户只能更新自己的档案。使用云代码来验证服务工作状态更改和付款写入。 认证: - 注册、登录、退出。 行为: - 列出套餐,创建服务工作,跟踪服务地址和坐标,显示付款历史。 交付: - 带架构、ACL、CLP 的 Back4app 应用;针对客户、车辆、服务等级、工作和付款历史的前端。
按下面的按钮打开代理,模板提示已预先填写。
这是没有技术后缀的基础提示。您可以随后调整生成的前端技术栈。
API Playground
尝试 REST 和 GraphQL 端点与移动汽车美容架构。响应使用模拟数据,不需要 Back4app 账户。
使用与该模板相同的架构。
选择您的技术
展开每个卡片,查看如何将客户、车辆和级别包与您选择的技术栈集成。
Flutter 移动汽车美容后端
React 移动汽车美容后端
React 原生 移动汽车美容后端
Next.js 移动汽车美容后端
JavaScript 移动汽车美容后端
Android 移动汽车美容后端
iOS 移动汽车美容后端
Vue 移动汽车美容后端
Angular 移动汽车美容后端
GraphQL 移动汽车美容后端
REST API 移动汽车美容后端
PHP 移动汽车美容后端
.NET 移动汽车美容后端
每项技术所提供的内容
每个技术栈使用相同的详细后台架构和API合同。
统一的详细数据结构
使用一个架构管理客户、车辆、服务级别、工作和支付。
基于位置的预订流程
跟踪现场派遣和到达计划的服务地址和坐标。
操作支付历史
查看每项服务工作的费用和付款状态。
角色友好的访问模式
让协调员、细节师和客户查看属于他们的数据。
REST/GraphQL API用于服务应用程序
使用灵活的API访问连接移动和网页客户端。
详细技术比较
比较所有支持技术的设置速度、SDK 风格和 AI 支持。
| 框架 | 设置时间 | 详细说明利益 | SDK 类型 | AI 支持 |
|---|---|---|---|---|
| 大约 5 分钟 | 客户和详细信息应用的单一代码库。 | 类型化 SDK | 全部 | |
| 少于 5 分钟 | 用于调度和计费的快速网页仪表板。 | 类型化 SDK | 全部 | |
| ~3–7 分钟 | 跨平台移动应用程序,适用于现场人员。 | 类型化 SDK | 全部 | |
| 快速设置(5分钟) | 服务器渲染的预订和管理页面。 | 类型化 SDK | 全部 | |
| 大约 3-5 分钟 | 轻量级网页集成,用于客户门户。 | 类型化 SDK | 全部 | |
| 大约 5 分钟 | 原生 Android 应用程序,用于调度和现场更新。 | 类型化 SDK | 全部 | |
| 少于 5 分钟 | 用于客户预订和状态检查的原生 iPhone 应用。 | 输入型 SDK | 全部 | |
| ~3–7 分钟 | Reactive 网站 UI 以进行服务协调。 | 输入型 SDK | 全部 | |
| 快速(5 分钟)设置 | 用于更大详细团队的操作控制台。 | 输入型 SDK | 全部 | |
| 少于 2 分钟 | 灵活的 GraphQL API,用于工作、层级和支付。 | GraphQL API | 全部 | |
| 快速 (2 分钟) 设置 | REST API 集成用于移动细节应用。 | REST API | 全部 | |
| ~3 分钟 | 服务器端 PHP 集成用于预订流程。 | REST API | 全部 | |
| ~3–7 分钟 | .NET 集成用于服务操作。 | 类型化 SDK | 全部 |
设置时间反映从项目启动到使用此模板架构的第一次服务工作或付款查询的预期持续时间。
常见问题解答
有关使用此模板构建移动汽车精洗后端的常见问题。