脚手架租赁
与 AI Agent 一起构建
脚手架租赁后端

脚手架租赁后端模板
租赁台、检查日志和交付调度

一个在 Back4app 上的生产就绪的 脚手架租赁后端,用于院子、台和现场工作流程,包含 ScaffoldKit、梯子、预订、检查日志和工地交付跟踪。包括 ER 图、数据字典、JSON 架构、API 游乐场,以及一个 AI 代理 提示,以便快速设置。

租赁要点

此模板为您提供一个使用ScaffoldKit、Ladder、Booking、InspectionLog和JobSiteDelivery跟踪的支架租赁后端,以便您的办公室员工可以在发货前确认可用性和安全性。

  1. 检验优先库存在租赁释放之前,通过InspectionLog记录跟踪每个ScaffoldKit和Ladder。
  2. 高度和伸展细节存储platformLengthFeet、platformWidthFeet、maxHeightFeet和maxReachFeet,以便团队可以将合适的单位匹配到工作中。
  3. 交付排程使用JobSiteDelivery计划每个站点的deliveryWindow、contactName、contactPhone和状态。
  4. 租赁台可见性在一个可查询的后端中保留预订、用户、ScaffoldKit 和梯子状态。

概述:脚手架租赁

捆绑包和套件使脚手架租赁变得复杂:需要在替代某个项目时保持一致的行项目、依赖关系和计数。这通常不是单个错误,而是漂移。此模板对Back4app的核心实体进行了建模,以便您可以启动一个可工作的脚手架租赁平台,而无需从头开始重建预订逻辑。该模式涵盖了用户、ScaffoldKit、梯子、JobSiteDelivery、InspectionLog 和预订,并内置了身份验证和租赁工作流支持。连接您首选的前端并更快地交付。

最佳适用:

脚手架租赁操作梯子租赁预订应用程序设备检查日志工作网站交付调度MVP发布团队选择BaaS进行租赁产品

这个脚手架租赁后端是如何组织的

如果在脚手架租赁中引导新员工需要部落知识,那么您就距离单点故障只有一次离职。

无论您是从Flutter、React、Next.js还是其他支持路径开始,都可以期待相同的用户账户和联系信息、设备库存带有高度规格、租赁预订工作流程。

脚手架租赁功能

这个中心中的每个技术卡片都使用相同的脚手架租赁后端架构,包括 User、ScaffoldKit、Ladder、Booking、InspectionLog 和 JobSiteDelivery。

用户账户和联系信息

用户存储员工和客户的用户名、电子邮件、角色和密码。

设备库存及高度规格

ScaffoldKit 跟踪 kitCode、platformLengthFeet、platformWidthFeet、maxHeightFeet、inspectionStatus、location 和 owner。

租赁预订工作流程

预订存储 bookingNumber、customerName、startDate、endDate、siteAddress、requestedHeightFeet、status、scaffoldKit、ladder 和 customer。

检查日志

InspectionLog 记录了 inspectedAt、inspectedBy、inspectionType、result、heightCheckedFeet、notes、scaffoldKit、ladder 和 delivery。

工地配送跟踪

JobSiteDelivery 链接 deliveryNumber、siteName、siteAddress、deliveryWindow、status、contactName、contactPhone 和 requestedBy。

为什么要使用Back4app构建您的脚手架租赁后端?

Back4app为您提供用户、资产、检查和交付原语,以便您的团队可以专注于安全检查和调度准确性,而不是后端维护。

  • 预订和库存记录: 预订、ScaffoldKit 和 Ladder 类将 requestedHeightFeet、inspectionStatus 和 kitCode 集中在一个地方显示。
  • 检查和合规流程: InspectionLog 记录帮助桌面在发布之前验证 inspectionType、result 和 heightCheckedFeet。
  • 实时 + API 灵活性: 在保持 REST 和 GraphQL 可用于每个客户门户和内部工具的同时,通过 Live Queries 进行 JobSiteDelivery 更改。

快速构建和迭代租赁台工作流程,在 web、移动和操作屏幕之间实现一个后端合同。

租赁脚手架的好处

一个租赁后端,帮助您的办公室更快移动,同时不失去对检查和交付细节的关注。

更快的预订处理

从用户、预订和请求的高度(英尺)开始,而不是从零开始设计租赁工作流程。

更安全的发布决策

使用检查日志和检查状态来决定脚手架工具或梯子设备是否可以离开场地。

清晰的交付协调

保持工地交付、交付时间窗口和联系电话的一致,以便调度知道每个脚手架或梯子要去哪儿。

更强的设备控制

跟踪组件代码、梯子代码、最大高度(英尺)和最大延伸(英尺),以减少不匹配的预订。

租赁历史的单一来源

将预订、检查和交付工作合并存储,而无需在工具之间拆分记录。

AI 引导工作流程

通过一个结构化提示快速生成后端脚手架和集成指导。

准备好启动您的脚手架租赁应用程序了吗?

让 Back4app AI 代理为您的租赁后端搭建脚手架,并从一个提示中生成检查、高度规格和交付流程。

免费开始 - 每月 50 个 AI 代理提示,无需信用卡

租赁技术栈

此脚手架租赁后端模板中包含一切。

前端
13+ 技术
后端
Back4app
数据库
MongoDB
认证
内置认证 + 会话
API
REST 和 GraphQL
实时
Live Queries

资产 ER 图

脚手架租赁后端架构的实体关系模型。

查看图表源
Mermaid
erDiagram
    User ||--o{ ScaffoldKit : "owner"
    User ||--o{ Ladder : "owner"
    User ||--o{ JobSiteDelivery : "requestedBy"
    User ||--o{ InspectionLog : "inspectedBy"
    User ||--o{ Booking : "customer"
    ScaffoldKit ||--o{ InspectionLog : "scaffoldKit"
    ScaffoldKit ||--o{ Booking : "scaffoldKit"
    Ladder ||--o{ InspectionLog : "ladder"
    Ladder ||--o{ Booking : "ladder"
    JobSiteDelivery ||--o{ InspectionLog : "delivery"

    User {
        String objectId PK
        String username
        String email
        String password
        String role
        Date createdAt
        Date updatedAt
    }

    ScaffoldKit {
        String objectId PK
        String kitCode
        Number platformLengthFeet
        Number platformWidthFeet
        Number maxHeightFeet
        String inspectionStatus
        String location
        String ownerId FK
        Date createdAt
        Date updatedAt
    }

    Ladder {
        String objectId PK
        String ladderCode
        String type
        Number maxReachFeet
        String inspectionStatus
        String conditionNotes
        String ownerId FK
        Date createdAt
        Date updatedAt
    }

    JobSiteDelivery {
        String objectId PK
        String deliveryNumber
        String siteName
        String siteAddress
        String deliveryWindow
        String status
        String contactName
        String contactPhone
        String requestedById FK
        Date createdAt
        Date updatedAt
    }

    InspectionLog {
        String objectId PK
        Date inspectedAt
        String inspectedById FK
        String inspectionType
        String result
        Number heightCheckedFeet
        String notes
        String scaffoldKitId FK
        String ladderId FK
        String deliveryId FK
        Date createdAt
        Date updatedAt
    }

    Booking {
        String objectId PK
        String bookingNumber
        String customerName
        Date startDate
        Date endDate
        String status
        String siteAddress
        Number requestedHeightFeet
        String scaffoldKitId FK
        String ladderId FK
        String customerId FK
        Date createdAt
        Date updatedAt
    }

租赁流程

登录、资产查找、检查日志记录、预订和交付调度的典型运行流程。

查看图表源
Mermaid
sequenceDiagram
  participant User
  participant App as Scaffolding & Ladder Rental App
  participant Back4app as Back4app Cloud

  User->>App: Sign in
  App->>Back4app: POST /login
  Back4app-->>App: Session token

  User->>App: Open active bookings
  App->>Back4app: GET /classes/Booking?include=scaffoldKit,ladder,customer
  Back4app-->>App: Booking rows with height specs

  User->>App: Add job site delivery
  App->>Back4app: POST /classes/JobSiteDelivery
  Back4app-->>App: deliveryNumber and status

  User->>App: Record inspection log
  App->>Back4app: POST /classes/InspectionLog
  Back4app-->>App: InspectionLog objectId

  App->>Back4app: Subscribe to Booking and JobSiteDelivery updates
  Back4app-->>App: LiveQuery delivery and inspection changes

字段字典

脚手架租赁模式中每个类的完整字段级参考。

字段类型描述必填
objectIdStringAuto-generated unique identifier自动
usernameStringUser login name
emailStringUser email address
passwordStringHashed password (write-only)
roleStringRole of the user (e.g., admin, staff, customer)
createdAtDateAuto-generated creation timestamp自动
updatedAtDateAuto-generated last-update timestamp自动

7 字段在 User

权限与安全

ACL 和 CLP 策略如何保护用户、资产、预订、检查和交付工作。

用户和角色控制

只有帐户所有者或经过授权的桌面用户可以更新用户联系信息和角色。

设备和检查完整性

仅工作人员可以创建或修改 ScaffoldKit、梯子和 InspectionLog 条目;在 Cloud Code 中验证通过/失败过渡。

范围预订访问

将预订和 JobSiteDelivery 读取限制为客户、桌面工作人员、调度员和指定团队。

JSON 架构

准备好的原始 JSON 架构定义,可复制到 Back4app 或用作实施参考。

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
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "ScaffoldKit",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "kitCode": {
          "type": "String",
          "required": true
        },
        "platformLengthFeet": {
          "type": "Number",
          "required": true
        },
        "platformWidthFeet": {
          "type": "Number",
          "required": true
        },
        "maxHeightFeet": {
          "type": "Number",
          "required": true
        },
        "inspectionStatus": {
          "type": "String",
          "required": true
        },
        "location": {
          "type": "String",
          "required": true
        },
        "owner": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Ladder",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "ladderCode": {
          "type": "String",
          "required": true
        },
        "type": {
          "type": "String",
          "required": true
        },
        "maxReachFeet": {
          "type": "Number",
          "required": true
        },
        "inspectionStatus": {
          "type": "String",
          "required": true
        },
        "conditionNotes": {
          "type": "String",
          "required": false
        },
        "owner": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "JobSiteDelivery",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "deliveryNumber": {
          "type": "String",
          "required": true
        },
        "siteName": {
          "type": "String",
          "required": true
        },
        "siteAddress": {
          "type": "String",
          "required": true
        },
        "deliveryWindow": {
          "type": "String",
          "required": true
        },
        "status": {
          "type": "String",
          "required": true
        },
        "contactName": {
          "type": "String",
          "required": true
        },
        "contactPhone": {
          "type": "String",
          "required": true
        },
        "requestedBy": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "InspectionLog",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "inspectedAt": {
          "type": "Date",
          "required": true
        },
        "inspectedBy": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "inspectionType": {
          "type": "String",
          "required": true
        },
        "result": {
          "type": "String",
          "required": true
        },
        "heightCheckedFeet": {
          "type": "Number",
          "required": false
        },
        "notes": {
          "type": "String",
          "required": false
        },
        "scaffoldKit": {
          "type": "Pointer",
          "required": false,
          "targetClass": "ScaffoldKit"
        },
        "ladder": {
          "type": "Pointer",
          "required": false,
          "targetClass": "Ladder"
        },
        "delivery": {
          "type": "Pointer",
          "required": false,
          "targetClass": "JobSiteDelivery"
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Booking",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "bookingNumber": {
          "type": "String",
          "required": true
        },
        "customerName": {
          "type": "String",
          "required": true
        },
        "startDate": {
          "type": "Date",
          "required": true
        },
        "endDate": {
          "type": "Date",
          "required": true
        },
        "status": {
          "type": "String",
          "required": true
        },
        "siteAddress": {
          "type": "String",
          "required": true
        },
        "requestedHeightFeet": {
          "type": "Number",
          "required": true
        },
        "scaffoldKit": {
          "type": "Pointer",
          "required": false,
          "targetClass": "ScaffoldKit"
        },
        "ladder": {
          "type": "Pointer",
          "required": false,
          "targetClass": "Ladder"
        },
        "customer": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    }
  ]
}

与 AI Agent 一起构建

使用 Back4app AI Agent 从此模板生成真实的脚手架租赁应用,包括前端、后端、身份验证以及检查、预订和交付流程。

Back4app AI Agent
准备好构建
在 Back4app 上创建一个安全的脚手架租赁应用后端,具有这个确切的架构和行为。

架构:
1. 用户(使用 Back4app 内置):用户名(字符串,必填),电子邮件(字符串,必填),密码(字符串,必填),角色(字符串,必填);objectId,createdAt,updatedAt(系统)。
2. ScaffoldKit:kitCode(字符串,必填),平台长度(英尺,数字,必填),平台宽度(英尺,数字,必填),最大高度(英尺,数字,必填),检验状态(字符串,必填),位置(字符串,必填),拥有者(指向用户的指针,必填);objectId,createdAt,updatedAt(系统)。
3. 梯子:ladderCode(字符串,必填),类型(字符串,必填),最大可达高度(英尺,数字,必填),检验状态(字符串,必填),条件说明(字符串,选填),拥有者(指向用户的指针,必填);objectId,createdAt,updatedAt(系统)。
4. JobSiteDelivery:deliveryNumber(字符串,必填),工地名称(字符串,必填),工地地址(字符串,必填),交货时段(字符串,必填),状态(字符串,必填),联系人名称(字符串,必填),联系人电话(字符串,必填),请求者(指向用户的指针,必填);objectId,createdAt,updatedAt(系统)。
5. InspectionLog:inspectedAt(日期,必填),inspectedBy(指向用户的指针,必填),inspectionType(字符串,必填),结果(字符串,必填),检查高度(英尺,数字,选填),备注(字符串,选填),脚手架套件(指向ScaffoldKit的指针,选填),梯子(指向Ladder的指针,选填),交货(指向JobSiteDelivery的指针,选填);objectId,createdAt,updatedAt(系统)。
6. 预订:bookingNumber(字符串,必填),客户名称(字符串,必填),开始日期(日期,必填),结束日期(日期,必填),状态(字符串,必填),工地地址(字符串,必填),请求高度(英尺,数字,必填),脚手架套件(指向ScaffoldKit的指针,选填),梯子(指向Ladder的指针,选填),客户(指向用户的指针,必填);objectId,createdAt,updatedAt(系统)。

安全性:
- 员工可以管理ScaffoldKit、Ladder、InspectionLog和JobSiteDelivery条目。
- 客户可以创建预订请求并查看自己的预订。
- 只有授权用户可以标记检验状态、调整交货状态或附加检验日志。

权限:
- 注册、登录、登出。

行为:
- 列出脚手架套件和梯子,包括平台长度、平台宽度、最大高度和最大可达高度。
- 为工地创建带有请求高度规格的预订。
- 在租赁之前、交付后和归还时记录检验日志。
- 调度和更新工地交付状态。

交付:
- Back4app 应用程序,包含架构、CLPs、ACLs,以及供租赁办公室员工、资产所有者和客户使用的前端。

按下面的按钮打开带有此模板提示的代理。

这是没有技术后缀的基本提示。您可以在之后调整生成的前端堆栈。

几分钟内部署每月 50 个免费提示无需信用卡

API 测试器

尝试使用 REST 和 GraphQL 端点与脚手架租赁模式。响应使用模拟数据,并且不需要 Back4app 账户。

加载演示区…

使用与此模板相同的模式。

选择技术

展开每个卡片,查看如何将 ScaffoldKit、Ladder 和 JobSiteDelivery 与您选择的技术栈集成。

Flutter 脚手架租赁后端

React 脚手架租赁后端

React 原生 脚手架租赁后端

Next.js 脚手架租赁后端

JavaScript 脚手架租赁后端

Android 脚手架租赁后端

iOS 脚手架租赁后端

Vue 脚手架租赁后端

Angular 脚手架租赁后端

GraphQL 脚手架租赁后端

REST API 脚手架租赁后端

PHP 脚手架租赁后端

.NET 脚手架租赁后端

每项技术带来的价值

每个技术栈都使用相同的脚手架租赁后端架构和 API 合同。

统一的租赁数据结构

使用一致的架构轻松管理用户、ScaffoldKit、Ladder、Booking、InspectionLog 和 JobSiteDelivery。

基于检查的租赁团队运营

在发货前保持 inspectionType、result 和 heightCheckedFeet 可见。

工地的交付跟踪

通过 JobSiteDelivery、contactName 和状态更新让客户保持知情。

高度规格和负载细节

定义平台长度(platformLengthFeet)、平台宽度(platformWidthFeet)、最大高度(maxHeightFeet)和最大伸展(maxReachFeet)以进行设备选择。

脚手架技术比较

比较所有支持技术的设置速度、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完整

设置时间反映了从项目启动到使用此模板架构进行首次设备或预订查询的预期持续时间。

租赁常见问题

有关使用此模板构建脚手架租赁后端的常见问题。

如何在不减慢结账速度的情况下保持脚手架租赁定价和押金的公平?
脚手架租赁模型应该如何在一个连贯的图中处理预订、冲突和押金?
这个脚手架租赁后端能否扩展到多站点库存和集中定价规则?
我如何使用Flutter进行设备和预订的查询?
我如何使用Next.js Server Actions管理脚手架租赁访问?
可以让 React 本地缓存检查和交付工作吗?
我该如何防止未经授权的设备编辑?
在 Android 上显示梯子高度规格的最佳方法是什么?

受到全球开发者的信赖

使用 Back4app 模板,与团队一起更快发布租赁产品

G2 Users Love Us Badge

准备好构建您的脚手架租赁应用了吗?

在几分钟内开始您的租赁项目。无需信用卡。

选择技术