烟雾探测器审计后端模板
电池更换日志和现场测试地图
一个准备投入生产的 烟雾探测器审计后端 运行于 Back4app,包括电池更换日志、灵敏度测试和检查路线的地图标记。包含 ER 图、数据字典、JSON 架构、API 游乐场,以及一个用于快速设置的 AI 代理 提示。
审核收获
此模板为您提供一个烟雾探测器审核后端,包括电池更换日志、灵敏度测试和网站地图,使协调员和现场工作人员能够减少手动工作来跟踪检查。
- 电池更换历史 — 记录每个`BatteryLog`条目,包括探测器序列号、更换日期和技术人员备注。
- 按探测器进行灵敏度测试 — 为每个`Detector`存储`SensitivityTest`结果,以便轻松发现和跟进失败的检查。
- 地图就绪现场跟踪 — 使用`Site`和`MapPin`记录在地图上放置探测器并规划现场访问。
什么是烟雾探测器审核模板?
当烟雾探测器审核团队在不同地点操作时,一致的分类法可以防止审核记录中的“同样的问题,有五个不同的名字”。解决方案是操作性的,而不是激励性的。Back4app保持现场、探测器、电池日志、灵敏度测试和地图针都有时间戳和可归属性——这是烟雾探测器审核团队在审查到来时所需的基础。该架构涵盖用户(用户名、电子邮件、密码)、现场(名称、地址、地图位置)、探测器(现场、序列号、状态)、电池日志(探测器、更换时间、电池类型)、灵敏度测试(探测器、测试时间、结果)和地图针(现场、纬度、经度),同时内置了身份验证、报告和地图友好的记录。连接您的前端,开始更快地跟踪审核。
最佳适用:
烟雾探测器审核后端概览
烟雾探测器审核中的操作员通常会在交接过程中感到痛苦:一个团队更新表格,另一个团队信任聊天记录,而这两者都与客户所被告知的不符。
无论您发布的是网页还是移动端,站点、探测器和电池日志始终是支柱——此页面是协调利益相关者的最快方式。
核心烟雾探测器审计功能
此中心中的每个技术卡都使用相同的烟雾探测器审计架构,包含地点、检测器、电池日志、灵敏度测试和地图图钉。
站点注册和地图锚点
`Site` 存储每栋建筑或楼层平面的名称、地址和地图位置。
检测器库存
`Detector` 链接序列号、状态和站点。
电池更换日志
`BatteryLog` 存储 replacedAt、batteryType 和 technicianNote。
灵敏度测试结果
`SensitivityTest` 记录 testedAt、结果和检测器。
地图图钉放置
`MapPin` 使用纬度、经度和地点。
为什么要使用Back4app构建您的烟雾探测器审核后端?
Back4app为您提供站点、探测器和审核原语,以便您的团队可以专注于电池、测试和路线规划,而不是后端管道。
- •所有探测器和站点记录集中在一处: `Detector`类链接到`Site`,因此电池检查和灵敏度测试与正确的地址和地图图钉保持关联。
- •易于查询的电池日志历史: `BatteryLog` 行记录 `replacedAt`、`batteryType` 和 `technicianNote`,帮助管理者按探测器或日期查看更换工作。
- •检查和路线变更的实时状态: 在保持 REST 和 GraphQL 为网络仪表板和移动现场工具准备的同时,使用 Live Queries 进行 `SensitivityTest` 和 `MapPin` 更新。
构建一次审计后端,然后重用相同的类进行路线规划、检查历史和后续工作。
核心优势
一个烟雾探测器审计后台,帮助团队保持组织而不丢失重要的细节。
更快的字段更新
在访问发生时写入 `BatteryLog` 和 `SensitivityTest` 条目,而不是等待电子表格清理。
清除探测器历史记录
使用 `Detector.serialNumber` 加上链接日志来查看任何单元的维护历史。
基于地图的规划
`Site.mapLocation` 和 `MapPin.latitude` / `MapPin.longitude` 使路线规划减少了猜测。
更好地跟进失败的测试
失败的 `SensitivityTest.result` 可以立即过滤,以便监督人员知道哪个探测器需要关注。
一个移动端和桌面端的后端
REST 和 GraphQL 向每个需要它的应用程序暴露相同的 `Site`、`Detector` 和日志数据。
可重用的设置以供未来审计使用
后续可以添加额外字段,但保持围绕 `BatteryLog` 和 `SensitivityTest` 的核心模式不变。
准备好启动您的烟雾探测器审计应用程序吗?
让 Back4app AI 代理搭建您的审计后端,并从一个提示中生成电池日志、敏感性测试和地图视图。
免费开始 - 每月 50 个 AI 代理提示,无需信用卡
技术栈
此烟雾探测器审核后端模板中包含的所有内容。
烟雾审核ER图
烟雾探测器审核后端架构的实体关系模型。
涵盖站点、探测器、电池日志、灵敏度测试和地图钉的架构。
查看图表来源
erDiagram
Inspector ||--o{ Building : "primaryCoordinator"
Inspector ||--o{ Audit : "inspector"
Inspector ||--o{ BatteryReplacement : "replacedBy"
Inspector ||--o{ SensitivityTest : "testedBy"
Building ||--o{ Detector : "building"
Building ||--o{ Audit : "building"
Building ||--o{ SiteMap : "building"
Detector ||--o{ BatteryReplacement : "detector"
Detector ||--o{ SensitivityTest : "detector"
Inspector {
String objectId PK
String username
String email
String password
String role
String phoneNumber
Date createdAt
Date updatedAt
}
Building {
String objectId PK
String buildingName
String address
String city
String state
Number latitude
Number longitude
String primaryCoordinatorId FK
Date createdAt
Date updatedAt
}
Detector {
String objectId PK
String buildingId FK
String roomLabel
String deviceId
String modelNumber
Number batteryLevel
Date lastBatteryChangeAt
String status
Date createdAt
Date updatedAt
}
Audit {
String objectId PK
String buildingId FK
String inspectorId FK
Date auditDate
String overallStatus
String notes
Date createdAt
Date updatedAt
}
BatteryReplacement {
String objectId PK
String detectorId FK
String replacedById FK
Date replacementDate
String batteryType
String oldBatteryCondition
Date createdAt
Date updatedAt
}
SensitivityTest {
String objectId PK
String detectorId FK
String testedById FK
Date testDate
String testResult
Number readingValue
String notes
Date createdAt
Date updatedAt
}
SiteMap {
String objectId PK
String buildingId FK
String mapName
Number floorNumber
String mapUrl
String legendNotes
Date createdAt
Date updatedAt
}
审核集成流程
用于身份验证、站点查找、电池日志、敏感度测试和地图更新的典型运行流程。
查看图表来源
sequenceDiagram
participant Inspector
participant App as Smoke Detector Audit App
participant Back4app as Back4app Cloud
Inspector->>App: Sign in
App->>Back4app: POST /login
Back4app-->>App: Session token
Inspector->>App: Open building list
App->>Back4app: GET /classes/Building?include=primaryCoordinator
Back4app-->>App: Buildings and coordinators
Inspector->>App: Review detector batteries
App->>Back4app: GET /classes/Detector?include=building&order=-updatedAt
Back4app-->>App: Detector battery levels and statuses
Inspector->>App: Save a battery replacement or sensitivity test
App->>Back4app: POST /classes/BatteryReplacement
App->>Back4app: POST /classes/SensitivityTest
Back4app-->>App: Saved audit trail records
Inspector->>App: Load site maps for a building
App->>Back4app: GET /classes/SiteMap?include=building
Back4app-->>App: Floor plans and detector locations审核数据字典
烟雾探测器审核模式中每个类的完整字段级参考。
| 字段 | 类型 | 描述 | 必需 |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | 自动 |
| username | String | Inspector login name | |
| String | Inspector email address | ||
| password | String | Hashed password (write-only) | |
| role | String | Role of the user (e.g., manager, coordinator, field_tech) | |
| phoneNumber | String | Contact number for site coordination | — |
| createdAt | Date | Auto-generated creation timestamp | 自动 |
| updatedAt | Date | Auto-generated last-update timestamp | 自动 |
8 字段在 Inspector 中
安全性和权限
ACL和CLP策略如何保护站点记录、检测器历史和审计日志。
技术人员拥有的审计条目
只有创建了`BatteryLog`或`SensitivityTest`条目的用户才能编辑或删除它。
站点级读取访问
在共享审计路线时,将`Site`和`Detector`的可见性限制为分配的员工或经理角色。
更改检测器状态的控制
使用 Cloud Code 验证 `Detector.status` 转换,以便干净地记录失败的测试或更换。
模式 (JSON)
原始 JSON 模式定义,准备复制到 Back4app 或用作实现参考。
{
"classes": [
{
"className": "Inspector",
"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": "Building",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"buildingName": {
"type": "String",
"required": true
},
"address": {
"type": "String",
"required": true
},
"city": {
"type": "String",
"required": true
},
"state": {
"type": "String",
"required": true
},
"latitude": {
"type": "Number",
"required": false
},
"longitude": {
"type": "Number",
"required": false
},
"primaryCoordinator": {
"type": "Pointer",
"required": true,
"targetClass": "Inspector"
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "Detector",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"building": {
"type": "Pointer",
"required": true,
"targetClass": "Building"
},
"roomLabel": {
"type": "String",
"required": true
},
"deviceId": {
"type": "String",
"required": true
},
"modelNumber": {
"type": "String",
"required": true
},
"batteryLevel": {
"type": "Number",
"required": false
},
"lastBatteryChangeAt": {
"type": "Date",
"required": false
},
"status": {
"type": "String",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "Audit",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"building": {
"type": "Pointer",
"required": true,
"targetClass": "Building"
},
"inspector": {
"type": "Pointer",
"required": true,
"targetClass": "Inspector"
},
"auditDate": {
"type": "Date",
"required": true
},
"overallStatus": {
"type": "String",
"required": true
},
"notes": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "BatteryReplacement",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"detector": {
"type": "Pointer",
"required": true,
"targetClass": "Detector"
},
"replacedBy": {
"type": "Pointer",
"required": true,
"targetClass": "Inspector"
},
"replacementDate": {
"type": "Date",
"required": true
},
"batteryType": {
"type": "String",
"required": true
},
"oldBatteryCondition": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "SensitivityTest",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"detector": {
"type": "Pointer",
"required": true,
"targetClass": "Detector"
},
"testedBy": {
"type": "Pointer",
"required": true,
"targetClass": "Inspector"
},
"testDate": {
"type": "Date",
"required": true
},
"testResult": {
"type": "String",
"required": true
},
"readingValue": {
"type": "Number",
"required": false
},
"notes": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "SiteMap",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"building": {
"type": "Pointer",
"required": true,
"targetClass": "Building"
},
"mapName": {
"type": "String",
"required": true
},
"floorNumber": {
"type": "Number",
"required": false
},
"mapUrl": {
"type": "String",
"required": true
},
"legendNotes": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
}
]
}与 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(系统)。 6. 地图针:站点(指向站点的指针,必填),纬度(数字,必填),经度(数字,必填),标签(字符串),路线顺序(数字);objectId,createdAt,updatedAt(系统)。 安全性: - 使用 ACL/CLP 以便技术人员可以写自己的电池日志和灵敏度测试条目,而经理可以查看站点和探测器的历史。 - 使用云代码验证探测器状态更改并要求链接的站点数据。 身份验证: - 注册,登录,登出。 行为: - 列出站点,按站点显示探测器,创建电池更换日志,提交灵敏度测试,并刷新下一个路线的地图针。 交付: - Back4app 应用程序,包含架构、ACL、CLP;用于站点、探测器、电池日志、灵敏度测试和地图视图的前端。
按下面的按钮以预填充这个模板提示打开代理。
这是没有技术后缀的基本提示。您可以随后调整生成的前端堆栈。
API游乐场
在烟雾探测器审计架构上试用 REST 和 GraphQL 端点。响应使用模拟数据,不需要 Back4app 账户。
使用与此模板相同的架构。
选择您的技术
展开每个卡片以查看如何将网站、探测器和电池日志与您选择的堆栈进行集成。
Flutter 烟雾检测器审核后端
React 烟雾检测器审核后端
React 原生 烟雾检测器审核后端
Next.js 烟雾检测器审核后端
JavaScript 烟雾检测器审核后端
Android 烟雾检测器审核后端
iOS 烟雾检测器审核后端
Vue 烟雾检测器审核后端
Angular 烟雾检测器审核后端
GraphQL 烟雾检测器审核后端
REST API 烟雾检测器审核后端
PHP 烟雾检测器审核后端
.NET 烟雾检测器审核后端
您在每种技术中获得的内容
每个堆栈使用相同的烟雾探测器审核后端架构和 API 合同。
统一的审核数据结构
使用一致的架构管理站点、探测器、电池日志、灵敏度测试和地图标记。
现场团队的电池更换日志
跟踪每次电池更换的时间戳、探测器指针和技术人员备注。
符合检查的灵敏度测试跟踪
记录每个探测器的合格或不合格结果,以便后续工作明显。
地图感知的现场规划
使用现场坐标和固定记录来规划路线,减少漏检。
REST/GraphQL APIs用于审计应用
通过一个后端合同集成网页、移动和内部工具。
烟雾审计技术比较
比较所有支持的技术的设置速度、SDK 风格和 AI 支持。
| 框架 | 设置时间 | 审计收益 | SDK 类型 | AI 支持 |
|---|---|---|---|---|
| 大约 5 分钟 | 移动和 web 上字段审计的单一代码库。 | 类型化 SDK | 完整 | |
| 少于 5 分钟 | 快速的检测器历史网页仪表板。 | 输入的SDK | 完整 | |
| ~3–7分钟 | 跨平台移动应用程序用于电池日志。 | 输入的SDK | 完整 | |
| 快速(5分钟)设置 | 服务器渲染的网站地图和审计仪表板。 | 输入的SDK | 完整 | |
| ~3–5分钟 | 轻量级浏览器集成用于检查表单。 | 输入的SDK | 完整 | |
| 大约 5 分钟 | 本地 Android 应用程序用于现场检查。 | 输入的 SDK | 完整 | |
| 少于 5 分钟 | 本地 iPhone 应用程序用于技术人员工作流程。 | 输入的 SDK | 完整 | |
| 约 3–7 分钟 | React 站点地图的 Web UI。 | 输入的 SDK | 完整 | |
| 快速(5分钟)设置 | 供运营团队使用的企业审计门户。 | 输入式 SDK | 完整 | |
| 少于2分钟 | 用于嵌套检测器数据的灵活 GraphQL API。 | GraphQL API | 完整 | |
| 快速(2分钟)设置 | REST API集成用于日志提交。 | REST API | 完整 | |
| 约3分钟 | 服务器端 __品牌0__ 后端用于审计管理工具。 | __品牌0__ | 完整 | |
| ~3–7分钟 | __品牌0__ 后端用于探测器检查工作流。 | 类型化SDK | 完整 |
设置时间反映了从项目启动到第一次使用此模板架构进行站点、检测器或日志查询的预期持续时间。
常见问题
有关使用此模板构建烟雾探测器审计后端的常见问题。