煙囪清掃日誌
與AI代理一起建立
煙囪清掃日誌後端

煙囪清掃日誌應用程式後端範本
檢查照片、煙灰移除日誌和安全證書追蹤

一個在 Back4app 上準備好的煙囪清掃日誌後端,擁有檢查照片、煙灰移除日誌和安全證書追蹤。包括ER 圖、數據字典、JSON 架構、API 遊樂場,及快速設置的AI 代理提示。

重要重點

這個模板提供了一個煙囪清掃日誌後端,包括清掃工作、檢查照片、煙塵清除日誌和安全證書跟蹤,讓辦公室協調員和現場團隊保持協調。

  1. 清掃工作跟蹤以協調員可查詢的方式,每個SweepJob都包含地址、服務日期和團隊分配。
  2. 檢查照片捕捉將InspectionPhoto文件存儲在相關的SweepJob旁邊,這樣前後證據將附加到正確的訪問上。
  3. 煙塵清除日誌記錄每次服務呼叫的SootRemovalLog詳情,例如清潔的煙道、煙塵體積和備註。

煙囪清掃日誌應用模板是什麼?

路由、零件和客戶通信只有在煙囪清掃數據結構化而不是困在 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。

掃描任務排程

掃描任務儲存 propertyName、serviceDate、technician 和 status。

檢查照片捕捉

檢查照片連結照片網址、標題和清掃工作。

煙灰去除日誌條目

煙灰去除日誌記錄煙灰水平、移除者、備註和清掃工作。

安全證書追踪

安全證書儲存 certNumber、issuedAt、expiresAt、status 和 sweepJob。

為什麼要使用 Back4app 構建您的煙囪清掃日誌應用後端?

Back4app 為您提供工作、照片、日誌和證書原始信息,以便您的團隊可以專注於服務質量而不是管道問題。

  • SweepJob 和 SafetyCert 結合在一個模型中: 使用 SweepJob 類來進行服務拜訪,使用 SafetyCert 進行證書跟踪,而不是將狀態分散在電子表格中。
  • 檢查照片檔案與訪問保持綁定: 將 photoUrl 儲存在 InspectionPhoto 上,並將其連結到正確的 SweepJob,這樣可以方便地查看前後照片。
  • 即時更新活動路線: 在進行 SweepJob 和 SootRemovalLog 更新時使用 Live Queries,同時保持 REST 和 GraphQL 對每個客戶可用。

快速建立和更新煙囪清掃工作流程,使用一個後端合約覆蓋移動端和網頁。

核心優勢

一個煙囪清掃後端,幫助現場團隊和協調人保持一致。

更快的工作接收

從 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 策略保護清掃工作、檢查照片、煙塵紀錄及安全證書。

技術人員擁有的清掃紀錄

只有指定的技術人員或協調人應創建、更新或關閉他們所控制的 SweepJob。

照片和記錄完整性

使用 Cloud Code 確保 InspectionPhoto 和 SootRemovalLog 項目在保存之前指向真實的 SweepJob。

證書訪問控制

限制安全證書的讀取和編輯僅限已批准的員工,以便問題和到期詳細資訊保持準確。

架構(JSON)

原始 JSON 架構定義,準備複製到 Back4app 或用作實施參考。

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. 清掃工作:propertyName(字符串,必填),serviceDate(日期,必填),technician(指向用戶的指針,必填),status(字符串,必填),notes(字符串);objectId,createdAt,updatedAt(系統)。
3. 檢查照片:sweepJob(指向清掃工作的指針,必填),photoUrl(字符串,必填),caption(字符串),takenAt(日期,必填);objectId,createdAt,updatedAt(系統)。
4. 煤煙清除日誌:sweepJob(指向清掃工作的指針,必填),sootLevel(字符串,必填),removedBy(指向用戶的指針,必填),notes(字符串),cleanedAt(日期,必填);objectId,createdAt,updatedAt(系統)。
5. 安全證書:sweepJob(指向清掃工作的指針,必填),certNumber(字符串,必填),issuedAt(日期,必填),expiresAt(日期,必填),status(字符串,必填);objectId,createdAt,updatedAt(系統)。

安全性:
- 只有被指派的技術人員或協調員應該創建、更新或關閉他們控制的清掃工作。使用雲代碼來驗證檢查照片和煤煙清除日誌項目指向一個真實的清掃工作。限制安全證書的訪問權限給經批准的工作人員。

身份驗證:
- 註冊,登錄,登出。

行為:
- 列出清掃工作,上傳檢查照片,記錄煤煙清除日誌,和發放安全證書。

交付:
- 具有結構、ACL、CLP 的 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分鐘React 的煙囪清掃日誌的網頁 UI。輸入式 SDK完整
快速(5 分鐘)設置運營儀表板,用於調度和證書追蹤。輸入式 SDK完整
不到 2 分鐘靈活的 GraphQL API 用於嵌套清掃工作視圖。GraphQL API完整
快速(2 分鐘)設置REST API 整合以記錄和上傳字段日誌。REST API完整
約 3 分鐘伺服器端 PHP 後端用於清掃日誌工具。REST API完整
約 3–7 分鐘.NET 後端用於煙囪服務記錄。類型化 SDK完整

設置時間反映了從專案啟動到首次 SweepJob 或 InspectionPhoto 查詢使用此範本架構的預期持續時間。

常見問題

有關使用此範本建立一個煙囪清掃日誌應用後端的常見問題。

煙囪清掃團隊在辦公室和現場之間最多浪費多少時間?
煙囪清掃如何在不過度複雜化架構的情況下建模分配、狀態和部件使用?
當煙囪清掃的服務產品或服務包發生變化時,調整架構有多難?
我該如何在 Flutter 中運行掃描工作查詢?
我該如何使用 Next.js Server Actions 管理技術人員訪問?
React Native 可以離線儲存煙囪清掃日誌嗎?
我該如何防止未經授權的證書編輯?
在 Android 上顯示掃描工作狀態的最佳方法是什麼?
檢查照片流程如何從頭到尾運作?

全球開發者信賴

使用 Back4app 模板,加入團隊更快發佈煙囪清掃日誌產品

G2 Users Love Us Badge

準備好建構您的煙囪清掃日誌應用程式了嗎?

在幾分鐘內開始您的煙囪清掃項目。不需要信用卡。

選擇技術