搬家劳动力市场后端模板
团队搜索、预订申请、分配和审核
一个生产就绪的 搬家劳动力市场后端 在 Back4app,具有 CrewListing 搜索、BookingRequest 接收、CrewAssignment 日志和 CrewReview 记录。包括 ER 图、数据字典、JSON 架构、API 沙盒,以及快速启动的 AI 代理 提示。
关键要点
此模板为您提供一个搬运工市场后端,具有 CrewListing 搜索、BookingRequest 录入及 CrewAssignment 跟踪,使运营商可以更快地将需求与可用的团队进行匹配。
- CrewListing 搜索 — 使用 hourlyRate、crewSize、heavyLiftingCapability、serviceArea、equipmentNotes 和 availabilityStatus 模型 CrewListing,以便买家在预订前可以比较不同的团队。
- BookingRequest 录入 — 存储 BookingRequest,包括 jobTitle、moveDate、startTime、hoursNeeded、pickupZip、dropoffZip 和 heavyItems,以捕获搬家详情。
- CrewAssignment 日志 — 将 CrewAssignment 与 bookingRequest、crewListing、assignedBy、crewSizeLogged 和 arrivalStatus 关联,以便每个派遣的工作都有详细记录。
- CrewReview 历史 — 使用 CrewReview 记录评级、评论和安全标志,以跟踪完成的 BookingRequest 记录后的结果。
理解移动劳动力市场后台
在移动劳动力市场中,运营的真相是时间表——如果日历错误,那么每一个下游承诺也都是错误的。可靠性是一个特性,而不是脚注。在 Back4app 上建模核心实体,为移动劳动力市场团队提供一个可以从单个场地扩展到多地点运营的后台。该架构涵盖用户、CrewListing、BookingRequest、CrewAssignment 和 CrewReview,并内置身份验证和市场工作流功能。连接您首选的前端并更快交付。
最佳用于:
搬运劳动力市场后端概述
客户关心的不是您的内部工具;他们关心搬运劳动力市场的承诺是否能按时兑现,拥有正确的资产和正确的文件。
此摘要使团队围绕用户账户和角色、CrewListing市场简介、BookingRequest收集进行定位,以便在任何人深入ER图或JSON导出之前。
核心搬运劳动力市场功能
此中心中的每个技术卡片都使用相同的移动劳动力后端架构,包括用户、机组人员列表、预定请求、机组人员分配和机组人员评审。
用户账户和角色
用户存储用户名、电子邮件、角色、显示名称、电话号码和服务区域。
CrewListing 市场档案
CrewListing 存储标题、每小时费率、人员规模、重物搬运能力、服务区域和可用状态。
BookingRequest 收集
BookingRequest 捕获职位名称、搬家日期、开始时间、所需小时数、取件邮政编码、送达邮政编码和重物。
机组人员分配跟踪
机组人员分配链接预定请求、机组人员列表、分配人、记录的机组人员数量和到达状态。
机组人员评审反馈
机组人员评审存储预定请求、评论者、机组人员列表、评级、评论和安全标志。
为什么要使用Back4app构建您的搬运劳动力市场后端?
Back4app为您提供用户、BookingRequest和CrewListing原语,使您的团队可以专注于匹配团队和搬迁工作,而不是接线基础设施。
- •船员列表和预订管理: 用户、船员列表和预订请求类将登录身份、服务区域、移动日期、取件邮政编码和送达邮政编码集中在一个地方。
- •分配和审核流程控制: 船员分配和船员审核记录在派遣后使船员数量、到达状态、评分和安全标志可见。
- •实时 + API 灵活性: 使用 Live Queries 更新预订请求,同时保持 REST 和 GraphQL 可用于派遣仪表板。
通过一个后端合同快速构建和迭代搬运劳动力功能,涵盖所有平台。
核心优势
一个移动劳动后端,帮助您从潜在客户转变为团队分配,而无需重写数据层。
更快的预订处理
从BookingRequest开始,包含moveDate、startTime、hoursNeeded、pickupZip和dropoffZip,而不是发明新的移动表单。
清晰的团队能力检查
使用CrewListing和heavyLiftingCapability、crewSize和equipmentNotes,确保在调度前可以看到楼梯搬运、小车和绳索。
您可以审计的团队分配
CrewAssignment在工作确认时保持bookingRequest、crewListing、assignedBy、crewSizeLogged和arrivalStatus可见。
为操作员和搬运工提供有限访问
使用ACL/CLP,以便只有合适的用户可以编辑User、CrewListing、BookingRequest和CrewAssignment行。
劳动和审核历史
存储BookingRequest状态更改、CrewAssignment时间戳和CrewReview评分而不破坏架构。
AI引导工作流
通过一个结构化提示快速生成后端脚手架和集成指导。
搬运劳动技术栈
此搬运劳动市场后台模板中包含所有内容。
市场类图
移动劳动力市场后端架构的实体关系模型。
涵盖用户、船员列表、预订请求、船员分配和船员评审的架构。
查看图表源
erDiagram
User ||--o{ CrewListing : "owner"
User ||--o{ BookingRequest : "buyer"
User ||--o{ CrewAssignment : "assignedBy"
User ||--o{ CrewReview : "reviewer"
CrewListing ||--o{ BookingRequest : "preferredCrew"
CrewListing ||--o{ CrewAssignment : "crewListing"
CrewListing ||--o{ CrewReview : "crewListing"
BookingRequest ||--o{ CrewAssignment : "bookingRequest"
BookingRequest ||--o{ CrewReview : "bookingRequest"
User {
String objectId PK
String username
String email
String password
String role
String displayName
String phoneNumber
String serviceArea
Date createdAt
Date updatedAt
}
CrewListing {
String objectId PK
String title
Number hourlyRate
Number crewSize
Boolean heavyLiftingCapability
String serviceArea
String equipmentNotes
String availabilityStatus
String ownerId FK
Date createdAt
Date updatedAt
}
BookingRequest {
String objectId PK
String jobTitle
Date moveDate
String startTime
Number hoursNeeded
String pickupZip
String dropoffZip
Boolean heavyItems
String status
String buyerId FK
String preferredCrewId FK
Date createdAt
Date updatedAt
}
CrewAssignment {
String objectId PK
String bookingRequestId FK
String crewListingId FK
String assignedById FK
Number crewSizeLogged
String arrivalStatus
Date startedAt
Date finishedAt
Date createdAt
Date updatedAt
}
CrewReview {
String objectId PK
String bookingRequestId FK
String reviewerId FK
String crewListingId FK
Number rating
String comment
Boolean safetyFlag
Date createdAt
Date updatedAt
}
预订工作流程顺序
登录、船员列表搜索、预订请求创建、船员分配记录和船员评审更新的典型运行流程。
查看图表源
sequenceDiagram
participant Buyer
participant App as Moving Labor Marketplace App
participant Back4app as Back4app Cloud
Buyer->>App: Login
App->>Back4app: POST /login
Back4app-->>App: Session token
Buyer->>App: Search crew listings by hourlyRate, crewSize, and heavyLiftingCapability
App->>Back4app: GET /classes/CrewListing?where=...
Back4app-->>App: Matching CrewListing rows
Buyer->>App: Submit BookingRequest for a moveDate and hoursNeeded
App->>Back4app: POST /classes/BookingRequest
Back4app-->>App: BookingRequest objectId
Operator->>App: Assign CrewAssignment and log crewSizeLogged
App->>Back4app: POST /classes/CrewAssignment
Back4app-->>App: Assignment saved
App->>Back4app: Live query updates for BookingRequest status and CrewReview
Back4app-->>App: Updated move workflow and ratings字段字典
移动劳动力市场架构中每个类的完整字段级参考。
| 字段 | 类型 | 描述 | 必需的 |
|---|---|---|---|
| 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 (buyer, seller, operator) | |
| displayName | String | Public name shown in the marketplace | |
| phoneNumber | String | Contact phone number | — |
| serviceArea | String | Primary metro area or region served | — |
| createdAt | Date | Auto-generated creation timestamp | 自动 |
| updatedAt | Date | Auto-generated last-update timestamp | 自动 |
10 字段在 User 中
用户、团队和预订的访问规则
ACL 和 CLP 策略如何保护用户、CrewListing、BookingRequest、CrewAssignment 和 CrewReview。
用户资料控制
只有账户拥有者或操作员可以更新用户名、角色、显示名称、电话号码和服务区域。
预订完整性
只有买方或调度员可以创建、编辑或取消 BookingRequest 和 CrewAssignment 行。
范围审核可见性
限制 CrewReview 阅读仅限于匹配的 BookingRequest 参与者和已批准的操作人员。
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
},
"displayName": {
"type": "String",
"required": true
},
"phoneNumber": {
"type": "String",
"required": false
},
"serviceArea": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "CrewListing",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"title": {
"type": "String",
"required": true
},
"hourlyRate": {
"type": "Number",
"required": true
},
"crewSize": {
"type": "Number",
"required": true
},
"heavyLiftingCapability": {
"type": "Boolean",
"required": true
},
"serviceArea": {
"type": "String",
"required": true
},
"equipmentNotes": {
"type": "String",
"required": false
},
"availabilityStatus": {
"type": "String",
"required": true
},
"owner": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "BookingRequest",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"jobTitle": {
"type": "String",
"required": true
},
"moveDate": {
"type": "Date",
"required": true
},
"startTime": {
"type": "String",
"required": true
},
"hoursNeeded": {
"type": "Number",
"required": true
},
"pickupZip": {
"type": "String",
"required": true
},
"dropoffZip": {
"type": "String",
"required": true
},
"heavyItems": {
"type": "Boolean",
"required": true
},
"status": {
"type": "String",
"required": true
},
"buyer": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"preferredCrew": {
"type": "Pointer",
"required": false,
"targetClass": "CrewListing"
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "CrewAssignment",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"bookingRequest": {
"type": "Pointer",
"required": true,
"targetClass": "BookingRequest"
},
"crewListing": {
"type": "Pointer",
"required": true,
"targetClass": "CrewListing"
},
"assignedBy": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"crewSizeLogged": {
"type": "Number",
"required": true
},
"arrivalStatus": {
"type": "String",
"required": true
},
"startedAt": {
"type": "Date",
"required": false
},
"finishedAt": {
"type": "Date",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "CrewReview",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"bookingRequest": {
"type": "Pointer",
"required": true,
"targetClass": "BookingRequest"
},
"reviewer": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"crewListing": {
"type": "Pointer",
"required": true,
"targetClass": "CrewListing"
},
"rating": {
"type": "Number",
"required": true
},
"comment": {
"type": "String",
"required": false
},
"safetyFlag": {
"type": "Boolean",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
}
]
}与 AI 代理一起构建
使用 Back4app AI 代理从此模板生成一个真正的移动劳动力市场应用,包括前端、后端、身份验证,以及 CrewListing、BookingRequest、CrewAssignment 和 CrewReview 流程。
在 Back4app 上创建一个安全的移动劳动力市场应用程序后端,使用此确切的模式和行为。 模式: 1. 用户: 用户名 (字符串,必填),电子邮件 (字符串,必填),密码 (字符串,必填),角色 (字符串,必填),显示名称 (字符串,必填),电话号码 (字符串,选填),服务区域 (字符串,选填); objectId,创建时间,更新时间 (系统)。 2. 创建列表: 标题 (字符串,必填),小时费率 (数字,必填),团队规模 (数字,必填),重物搬运能力 (布尔,必填),服务区域 (字符串,必填),设备说明 (字符串,选填),可用状态 (字符串,必填),所有者 (指向用户的指针,必填); objectId,创建时间,更新时间 (系统)。 3. 预订请求: 工作名称 (字符串,必填),搬家日期 (日期,必填),开始时间 (字符串,必填),所需小时数 (数字,必填),提货邮政编码 (字符串,必填),送货邮政编码 (字符串,必填),重物 (布尔,必填),状态 (字符串,必填),买家 (指向用户的指针,必填),首选团队 (指向创建列表的指针,选填); objectId,创建时间,更新时间 (系统)。 4. 队伍分配: 预订请求 (指向预订请求的指针,必填),团队列表 (指向创建列表的指针,必填),分配人 (指向用户的指针,必填),记录的团队规模 (数字,必填),到达状态 (字符串,必填),开始时间 (日期,选填),结束时间 (日期,选填); objectId,创建时间,更新时间 (系统)。 5. 团队评价: 预订请求 (指向预订请求的指针,必填),评审人 (指向用户的指针,必填),团队列表 (指向创建列表的指针,必填),评分 (数字,必填),评论 (字符串,选填),安全标记 (布尔,选填); objectId,创建时间,更新时间 (系统)。 安全性: - 买家可以创建预订请求记录并查看自己的预订。 - 卖家可以管理自己的团队列表记录。 - 操作员可以创建团队分配记录并更新预订请求状态。 - 团队评价记录必须在完成的预订后创建。 行为: - 按小时费率、团队规模、重物搬运能力和服务区域搜索团队。 - 创建带有搬家日期和所需小时数的预订请求。 - 分配团队并记录团队规模。 - 收集工作后评分和安全反馈。 交付: - 一个包含模式、ACL、CLP 以及面向买家、卖家和操作员的 UI 流程的 Back4app 应用,包括团队列表搜索、预订请求录入、团队分配跟踪和团队评价记录。
按下面的按钮打开带有此模板提示已预填的代理。
这是没有技术后缀的基础提示。您可以在之后调整生成的前端堆栈。
API 沙盒
尝试对移动劳动力市场架构使用 REST 和 GraphQL 端点。响应使用模拟数据,无需 Back4app 账户。
使用与此模板相同的架构。
选择您的技术栈
展开每个卡片以查看如何将 CrewListing、BookingRequest 和 CrewAssignment 与您选择的技术栈集成。
Flutter 移动劳工市场后端
React 移动劳工市场后端
React 原生 移动劳工市场后端
Next.js 移动劳工市场后端
JavaScript 移动劳工市场后端
Android 移动劳工市场后端
iOS 移动劳工市场后端
Vue 移动劳工市场后端
Angular 移动劳工市场后端
GraphQL 移动劳工市场后端
REST API 移动劳工市场后端
PHP 移动劳工市场后端
.NET 移动劳工市场后端
您从每项技术中获得的内容
每个技术栈使用相同的移动劳动力后端架构和 API 合同。
统一的移动劳动力数据结构
使用一致的架构轻松管理用户、CrewListing、BookingRequest、CrewAssignment 和 CrewReview。
按费率和规模进行人员匹配
比较 CrewListing 行并为每个移动请求分配合适的人员规模。
重型搬运能力跟踪
将 heavyLiftingCapability 和 equipmentNotes 附加到每个 Crew Listing。
可定制的操作员工作流程
定义针对买方、卖方和操作员量身定制的访问级别和权限。
移动劳动力市场框架对比
比较所有支持技术的设置速度、SDK 风格和 AI 支持。
| 框架 | 设置时间 | 搬运工市场优势 | SDK 类型 | AI支持 |
|---|---|---|---|---|
| 大约5分钟 | 移动和网络上的搬运调度单一代码库。 | 类型化SDK | 完整 | |
| 少于5分钟 | 快速的网络仪表板用于人员名单和预订。 | 类型化SDK | 完整 | |
| ~3–7分钟 | 用于调度搬运工的跨平台移动应用。 | 输入型SDK | 完整 | |
| 快速(5分钟)设置 | 用于搬运劳动力操作的服务器渲染网络应用。 | 输入型SDK | 完整 | |
| ~3–5分钟 | 用于劳动力匹配的轻量级网络集成。 | 输入型SDK | 完整 | |
| 大约5分钟 | 适用于搬运工和调度员的本地Android应用程序。 | 输入的SDK | 完整 | |
| 少于5分钟 | 适用于搬运协调的本地iOS应用程序。 | 输入的SDK | 完整 | |
| 大约3-7分钟 | 用于劳动市场操作的Reactive网页用户界面。 | 输入的SDK | 完整 | |
| 快速(5分钟)设置 | 调度工作流程的企业网页应用。 | 输入的SDK | 完整 | |
| 少于 2 分钟 | 灵活的 GraphQL API 用于劳动匹配。 | GraphQL API | 完整 | |
| 快速(2分钟)设置 | REST API 与劳动系统的集成。 | REST API | 完整 | |
| 约 3 分钟 | 服务器端 PHP 后端用于劳动调度。 | REST API | 完整 | |
| ~3–7分钟 | .NET 后端用于搬运劳动力操作。 | 输入的SDK | 完整 |
设置时间反映从项目启动到第一次使用此模板架构的CrewListing或BookingRequest查询的预期持续时间。
帮助中心
关于使用此模板构建搬运劳动力市场后端的常见问题。