烟囱清扫日志
与AI代理一起构建
烟囱清扫日志后端

烟囱清扫日志应用后端模板
检查照片、烟尘清除日志和安全证书跟踪

一个在 Back4app 上的生产就绪 烟囱清扫日志后端,包含检查照片、烟尘清除日志和安全证书跟踪。包括 ER 图、数据字典、JSON 模式、API 游乐场和为快速设置提供的 AI 代理 提示。

关键要点

此模板为您提供一个烟囱清扫日志后端,包含清扫作业、检查照片、灰烬去除日志和安全证书跟踪,以便办公室协调员和现场团队保持同步。

  1. 清扫作业跟踪以协调员可以查询的方式,为每个清扫作业建模,包括地址、服务日期和团队分配。
  2. 检查照片捕获将检查照片文件存储在相关清扫作业旁边,以便前后证据附加到正确的访问。
  3. 灰烬去除日志记录每个服务调用的灰烬去除日志详情,例如清洁的烟道、灰烬量和备注。

烟囱清扫日志应用模板是什么?

当烟囱清扫数据被结构化而不是困在PDF和边聊中时,路由、零件和客户沟通才会显得轻松。细节不可忽视。该架构以SweepJob、InspectionPhoto、SootRemovalLog和SafetyCert为中心,基于Back4app进行实时查询,为烟囱清扫操作员提供一个整个组织都可以信任的事实来源。该架构涵盖SweepJob(propertyName,serviceDate,technician,status)、InspectionPhoto(sweepJob,photoUrl,caption)、SootRemovalLog(sweepJob,sootLevel,removedBy,notes)和SafetyCert(sweepJob,certNumber,issuedAt,expiresAt,status),并内置认证和工作流支持。连接你喜欢的前端,开始更快地记录现场工作。

最佳用途:

烟囱清扫操作检查照片捕捉烟灰去除日志安全证书跟踪现场服务调度MVP启动

这个烟囱清洁后端是如何组织的

最好的烟囱清洁仪表盘看起来很无聊,因为基础实体是干净的——而不是因为有人在午夜对电子表格进行了处理。

使用此概述查看SweepJob、InspectionPhoto和SootRemovalLog如何结合在一起,然后再将工程时间投入到具体的客户框架中。

核心烟囱清扫日志功能

这个中心的每个技术卡片使用相同的烟囱清扫后端架构,包括 SweepJob、InspectionPhoto、SootRemovalLog 和 SafetyCert。

SweepJob调度

SweepJob存储propertyName、serviceDate、technician和status。

InspectionPhoto 捕获

InspectionPhoto 链接 photoUrl、标题和 sweepJob。

SootRemovalLog 条目

SootRemovalLog 记录 sootLevel、removedBy、备注和 sweepJob。

SafetyCert 跟踪

SafetyCert 存储 certNumber、issuedAt、expiresAt、status 和 sweepJob。

为什么要使用Back4app构建您的烟囱清洁日志应用后端?

Back4app为您提供工作、照片、日志和证书原语,方便您的团队专注于服务质量,而不是管道问题。

  • SweepJob和SafetyCert在一个模型中: 使用SweepJob类进行服务访问,使用SafetyCert跟踪证书,而不是将状态分散在电子表格中。
  • 检查照片文件与访问保持关联: 在InspectionPhoto上存储photoUrl并将其链接到正确的SweepJob,以便轻松查看前后的图像。
  • 实时更新活动路线: 在保持每个客户端可用的REST和GraphQL的同时,使用Live Queries进行SweepJob和SootRemovalLog的更改。

通过一个后端合同,快速构建和更新烟囱清扫工作流程,适用于移动端和网页。

核心优势

一个帮助现场团队和协调员保持一致的烟囱清扫后端。

更快的工作接收

从 SweepJob、InspectionPhoto、SootRemovalLog 和 SafetyCert 类开始,而不是从零设计每个表。

照片支持的服务证明

使用 InspectionPhoto.photoUrl,以便每次烟囱访问都有清晰的证据附加到正确的工作。

办公室与现场之间的更顺畅交接

技术人员在协调员从同一后端查看作业状态和证书状态时更新SootRemovalLog笔记。

证书可见性

跟踪SafetyCert.expiresAt和状态,以便在访问关闭后不会丢失更新。

友好的工作人员和设备

通过一个API向平板电脑、手机和网络仪表板提供清扫作业、照片和日志。

AI辅助设置

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

准备好启动您的烟囱清扫日志应用程序了吗?

让 Back4app AI 代理搭建你的烟囱清扫后端,并从一个提示生成检查照片、烟灰清除日志和安全证书流程。

免费启动 — 每月 50 个 AI 代理提示,无需信用卡

技术栈

此烟囱清扫日志应用模板中的一切。

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

ER图

烟囱清扫日志后端架构的实体关系模型。

查看图表来源
Mermaid
erDiagram
    SweepUser ||--o{ Property : "assignedCoordinator"
    SweepUser ||--o{ Inspection : "inspector"
    SweepUser ||--o{ InspectionPhoto : "takenBy"
    SweepUser ||--o{ SootRemovalLog : "technician"
    SweepUser ||--o{ SafetyCertificate : "issuedBy"

    Property ||--o{ Inspection : "property"
    Inspection ||--o{ InspectionPhoto : "inspection"
    Inspection ||--o{ SootRemovalLog : "inspection"
    Inspection ||--o{ SafetyCertificate : "inspection"

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

    Property {
        String objectId PK
        String propertyName
        String addressLine
        String contactName
        String contactPhone
        String assignedCoordinatorId FK
        Date createdAt
        Date updatedAt
    }

    Inspection {
        String objectId PK
        String propertyId FK
        String inspectorId FK
        Date inspectionDate
        String chimneyCondition
        String inspectionNotes
        String status
        Date createdAt
        Date updatedAt
    }

    InspectionPhoto {
        String objectId PK
        String inspectionId FK
        String photoUrl
        String caption
        String takenById FK
        Date createdAt
        Date updatedAt
    }

    SootRemovalLog {
        String objectId PK
        String inspectionId FK
        String technicianId FK
        String sootLevel
        String removalMethod
        Number amountRemoved
        String workNotes
        Date createdAt
        Date updatedAt
    }

    SafetyCertificate {
        String objectId PK
        String inspectionId FK
        String certificateNumber
        String issuedById FK
        Date issueDate
        Date expiryDate
        String certificateStatus
        Date createdAt
        Date updatedAt
    }

集成流程

典型的登录、清扫工作列表、上传检查照片、记录烟灰清理和发放安全证书的运行流程。

查看图表源
Mermaid
sequenceDiagram
  participant User
  participant App as Chimney Sweep Log App
  participant Back4app as Back4app Cloud

  User->>App: Sign in as manager or technician
  App->>Back4app: POST /login
  Back4app-->>App: Session token

  User->>App: Load property list
  App->>Back4app: GET /classes/Property?include=assignedCoordinator
  Back4app-->>App: Properties with coordinator pointers

  User->>App: Open an inspection
  App->>Back4app: GET /classes/Inspection?include=property,inspector
  Back4app-->>App: Inspection rows and status values

  User->>App: Add inspection photos and soot removal log
  App->>Back4app: POST /classes/InspectionPhoto and POST /classes/SootRemovalLog
  Back4app-->>App: Saved photo and removal log objects

  User->>App: Issue a safety certificate
  App->>Back4app: POST /classes/SafetyCertificate
  Back4app-->>App: Certificate number and expiry date

数据字典

烟囱清扫日志架构中每个类的完整字段级参考。

字段类型描述必需
objectIdStringAuto-generated unique identifier自动
usernameStringLogin name for a coordinator, manager, or field user
emailStringEmail address for notifications and access
passwordStringHashed password (write-only)
fullNameStringDisplay name for the sweep user
roleStringRole in the chimney sweep workflow (e.g. manager, coordinator, technician)
createdAtDateAuto-generated creation timestamp自动
updatedAtDateAuto-generated last-update timestamp自动

8 字段在 SweepUser 中

安全和权限

如何通过ACL和CLP策略保护清扫作业、检查照片、烟灰日志和安全证书。

技术人员拥有的清扫记录

只有指定的技术人员或协调员应该创建、更新或关闭他们控制的清扫作业。

照片和日志完整性

使用云代码确保检查照片和烟灰移除日志条目在保存前指向一个真实的清扫作业。

证书访问控制

限制安全证书的读取和编辑权限给已批准的员工,以保持发放和到期详细信息准确。

架构(JSON)

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

JSON
{
  "classes": [
    {
      "className": "SweepUser",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "username": {
          "type": "String",
          "required": true
        },
        "email": {
          "type": "String",
          "required": true
        },
        "password": {
          "type": "String",
          "required": true
        },
        "fullName": {
          "type": "String",
          "required": true
        },
        "role": {
          "type": "String",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Property",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "propertyName": {
          "type": "String",
          "required": true
        },
        "addressLine": {
          "type": "String",
          "required": true
        },
        "contactName": {
          "type": "String",
          "required": true
        },
        "contactPhone": {
          "type": "String",
          "required": true
        },
        "assignedCoordinator": {
          "type": "Pointer",
          "required": true,
          "targetClass": "SweepUser"
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Inspection",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "property": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Property"
        },
        "inspector": {
          "type": "Pointer",
          "required": true,
          "targetClass": "SweepUser"
        },
        "inspectionDate": {
          "type": "Date",
          "required": true
        },
        "chimneyCondition": {
          "type": "String",
          "required": true
        },
        "inspectionNotes": {
          "type": "String",
          "required": false
        },
        "status": {
          "type": "String",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "InspectionPhoto",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "inspection": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Inspection"
        },
        "photoUrl": {
          "type": "String",
          "required": true
        },
        "caption": {
          "type": "String",
          "required": false
        },
        "takenBy": {
          "type": "Pointer",
          "required": true,
          "targetClass": "SweepUser"
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "SootRemovalLog",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "inspection": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Inspection"
        },
        "technician": {
          "type": "Pointer",
          "required": true,
          "targetClass": "SweepUser"
        },
        "sootLevel": {
          "type": "String",
          "required": true
        },
        "removalMethod": {
          "type": "String",
          "required": true
        },
        "amountRemoved": {
          "type": "Number",
          "required": true
        },
        "workNotes": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "SafetyCertificate",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "inspection": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Inspection"
        },
        "certificateNumber": {
          "type": "String",
          "required": true
        },
        "issuedBy": {
          "type": "Pointer",
          "required": true,
          "targetClass": "SweepUser"
        },
        "issueDate": {
          "type": "Date",
          "required": true
        },
        "expiryDate": {
          "type": "Date",
          "required": true
        },
        "certificateStatus": {
          "type": "String",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    }
  ]
}

与AI代理一起构建

使用 Back4app AI代理从此模板生成一个真实的烟囱清扫日志应用,包括前端、后端、认证以及清扫工作、照片、日志和证书流程。

Back4app AI代理
准备构建
在 Back4app 上创建一个具有此确切架构和行为的烟囱清扫日志应用后端。

架构:
1. 用户(使用 Back4app 内置):用户名,电子邮箱,密码;objectId,createdAt,updatedAt(系统)。
2. 清扫工作:物业名称(字符串,必填),服务日期(日期,必填),技术人员(指向用户的指针,必填),状态(字符串,必填),备注(字符串);objectId,createdAt,updatedAt(系统)。
3. 检查照片:清扫工作(指向清扫工作的指针,必填),照片网址(字符串,必填),标题(字符串),拍摄时间(日期,必填);objectId,createdAt,updatedAt(系统)。
4. 煤烟清除日志:清扫工作(指向清扫工作的指针,必填),煤烟水平(字符串,必填),清除者(指向用户的指针,必填),备注(字符串),清理时间(日期,必填);objectId,createdAt,updatedAt(系统)。
5. 安全证书:清扫工作(指向清扫工作的指针,必填),证书编号(字符串,必填),签发时间(日期,必填),到期时间(日期,必填),状态(字符串,必填);objectId,createdAt,updatedAt(系统)。

安全性:
- 只有被分配的技术人员或协调员可以创建、更新或关闭他们控制的清扫工作。使用云代码验证检查照片和煤烟清除日志条目指向真实的清扫工作。限制安全证书访问给被批准的员工。

认证:
- 注册,登录,登出。

行为:
- 列出清扫工作,上传检查照片,记录煤烟清除日志,并签发安全证书。

交付:
- 带有架构、ACLs、CLPs的 Back4app 应用;用于清扫工作、检查照片、煤烟日志和安全证书跟踪的前端。

按下面的按钮打开代理,模板提示将预先填写。

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

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

API 操作台

尝试针对烟囱清扫者架构的 REST 和 GraphQL 端点。响应使用模拟数据,无需 Back4app 账户。

加载演示环境…

使用与此模板相同的架构。

选择您的技术

展开每个卡片以查看如何将 SweepJob、InspectionPhoto 和 SootRemovalLog 与您选择的技术栈集成。

Flutter 烟囱清扫日志后台

React 烟囱清扫日志后台

React 原生 烟囱清扫日志后台

Next.js 烟囱清扫日志后台

JavaScript 烟囱清扫日志后台

Android 烟囱清扫日志后台

iOS 烟囱清扫日志后台

Vue 烟囱清扫日志后台

Angular 烟囱清扫日志后台

GraphQL 烟囱清扫日志后台

REST API 烟囱清扫日志后台

PHP 烟囱清扫日志后台

.NET 烟囱清扫日志后台

每种技术带给您的好处

每个烟囱清洁工使用相同的烟囱清洁后端架构和API合同。

统一的烟囱工作数据

使用一个一致的模型管理SweepJob、InspectionPhoto、SootRemovalLog和SafetyCert。

照片支持的服务证明

将检查照片附加到正确的清洁工作以便后续审核。

为团队追踪安全证书

监控问题和到期日期,以便证书状态对协调员可见。

明确技术人员的工作流程

分配工作、记录烟灰清除,和使用共享后端更新工作状态。

烟囱清扫框架比较

比较所有支持的技术的设置速度、SDK 风格和 AI 支持。

框架设置时间烟囱清扫好处SDK 类型AI 支持
大约 5 分钟移动和网络上的烟囱清扫工作统一代码库。类型化 SDK全部
少于5分钟为烟囱清扫协调员提供快速的网络仪表板。类型化SDK全部
大约3-7分钟针对现场技术人员的跨平台移动应用。类型化SDK全部
快速(5分钟)设置用于烟囱清扫操作的服务器渲染网络应用。类型化SDK全部
~3–5 分钟轻量级网络集成用于清扫日志。键入 SDK全部
大约 5 分钟用于现场检查照片的原生 Android 应用。键入 SDK全部
不到 5 分钟用于烟囱服务备注的原生 iPhone 应用。键入 SDK全部
~3–7 分钟智能品牌网络用户界面用于烟囱清扫日志。输入的 SDK全部
快速(5分钟)设置调度和认证跟踪的操作仪表板。输入的 SDK全部
少于 2 分钟灵活的品牌 0 API 用于嵌套清扫作业视图。品牌 0 API全部
快速(2分钟)设置REST API 集成用于现场日志和上传。品牌 0全部
大约 3 分钟服务器端 PHP 后端用于清扫日志工具。REST API全部
大约 3–7 分钟.NET 后端用于烟囱服务记录。类型化 SDK全部

设置时间反映从项目启动到使用此模板架构的第一次 SweepJob 或 InspectionPhoto 查询的预期持续时间。

常见问题

关于使用此模板构建烟囱清扫日志应用后端的常见问题。

烟囱清扫团队在办公室和现场之间最容易浪费时间在哪里?
烟囱清扫应该如何分配模型、状态和零件使用,而不使架构过于复杂?
当烟囱清扫的产品或服务套餐发生变化时,调整架构有多困难?
我如何在 Flutter 中运行扫除工作的查询?
我如何使用 Next.js Server Actions 管理技术员访问权限?
React Native 能离线缓存烟囱清扫日志吗?
我如何防止未经授权的证书编辑?
在 Android 上显示扫除工作状态的最佳方式是什么?
检查照片流程是如何端到端工作的?

全球开发者信赖

加入更快交付烟囱清扫日志产品的团队,使用 Back4app 模板

G2 Users Love Us Badge

准备好构建你的烟囱清扫日志应用吗?

在几分钟内开始您的烟囱清扫项目。不需要信用卡。

选择技术