許可記錄
與 AI 助理一起建構
限制空間許可後端

限制空間許可應用程式後端範本
限制空間的許可追蹤

一個生產就緒的限制空間許可後端在Back4app,具有瓦斯監控記錄、陪伴者姓名及進出時間追蹤。包含ER圖、數據字典、JSON架構、API遊樂場,以及一個AI代理提示,用於快速啟動。

許可證日誌要點

該模板為您提供了一個包含氣體監視日誌、工作人員姓名以及進出時間的被限制空間許可證後端,以便操作人員能夠記錄進入條件並保持許可活動的組織。

  1. 在一個地方記錄許可證清晰的 Parse 類別中,為每個許可證建模其空間、狀態和授權人員。
  2. 與每次進入相關的氣體監視日誌存儲 GasMonitorLog 讀數與 readingsAt 和 monitorName,以便條件易於審查。
  3. 按姓名分配工作人員追蹤每個許可證的工作人員姓名和班次,而不是將其保留在筆記或聊天線程中。
  4. 您可以審核的進入和退出時間使用 EntryEvent 進入條目與 entryTime 和 exitTime 來顯示誰在這個空間內及何時進入。

理解限制空間許可應用後端

在限制空間許可中,“我們通常這樣做”並不是一種控制 — 文件化的步驟和捕獲的結果才是。成本體現在回調和信用中。在 Back4app 上建模許可、GasMonitorLog、隨行人員和 EntryEvent,使限制空間許可的控制運作:在實際工作發生的地方捕獲批准、證據和例外。該模式涵蓋許可(spaceName、permitNumber、status)、GasMonitorLog(permit、oxygenPct、h2sPpm、coPpm、readingsAt、monitorName)、隨行人員(permit、fullName、role、shiftStart、shiftEnd)和 EntryEvent(permit、attendant、entryTime、exitTime、remarks),並且已經建立了認證和欄位級結構。連接您首選的前端並開始更快地記錄限制空間活動。

最佳用途:

限制空間許可追蹤氣體監測器日誌捕獲隨行人員排程和名稱進出時間記錄運營和維護團隊選擇 BaaS 進行許可工作流程的團隊

您在有限空間許可模板中獲得的內容

最佳的有限空間許可儀表板是乏味的,因為基礎實體是乾淨的——而不是因為某人在午夜處理了電子表格。

這個中心突出許可、GasMonitorLog 和 Attendant,以便您可以將客戶堆棧與相同的實體、字段和關係進行比較。

核心受限空間許可證功能

此中心中的每張技術卡都使用相同的限制空間許可證架構,包括許可證、氣體監測記錄、隨行人員和 EntryEvent。

允許追蹤

允許類別儲存空間名稱、許可證號碼、狀態和位置。

氣體監測器日誌

GasMonitorLog 類別捕獲氧氣百分比、硫化氫濃度、 一氧化碳濃度、讀數時間和監測器名稱。

值班人員姓名和班次

值班人員類別儲存全名、角色、班次開始和班次結束。

進入和退出時間

EntryEvent 類別鏈接許可證、隨行人員、進入時間、退出時間和備註。

為什麼要使用 Back4app 建立您的有限空間許可後端?

Back4app 為您提供許可、氣體、陪同和進入事件原語,以便您的團隊可以專注於現場工作流程,而不是後端維護。

  • 許可證和日誌結構: 許可證和 GasMonitorLog 類別以可查詢的格式保留每個空間、讀取和監控名稱。
  • 陪護和時間追蹤: 陪護和 EntryEvent 欄位如 fullName、entryTime 和 exitTime 使得班次檢查變得簡單明瞭。
  • 實時 API 選項: 在保持 REST 和 GraphQL 可用於每個客戶的同時,使用 Live Queries 用於新的 GasMonitorLog 行。

快速構建和審查受限空間許可證工作流程,通過 web、移動和管理工具的一個後端合約。

核心許可證好處

一個限制空間許可證後端,幫助您組織氣體讀數、名稱和時間戳。

快速許可證啟動

從完整的許可證、氣體監測記錄、隨行人員和 EntryEvent 架構開始,而不是從零開始連接記錄。

清除氣體讀數歷史

儲存氧氣百分比、硫化氫ppm及一氧化碳ppm的讀數,並附上讀數時間,讓每一次讀數都可以有回顧紀錄。

指定的隨侍記錄

使用 Attendant.fullName 和 Attendant.role 來識別誰負責這個空間,以及誰負責監視進入。

進出責任

將 EntryEvent.entryTime 和 EntryEvent.exitTime 附加到同一許可證上,以便進行更清晰的班次檢查。

單一 API 接口

通過 REST 和 GraphQL 暴露許可證、氣體日誌、隨侍和進入事件數據,而不更改模型。

AI輔助設置

使用一個結構化的提示快速生成後端框架和整合備註,該提示針對受限空間許可證數據量身定制。

準備好啟動您的密閉空間許可應用程式了嗎?

讓 Back4app AI 代理為您的密閉空間許可後端搭建框架,並從一個提示生成氣體記錄、隨行人員姓名和進出時間流程。

免費開始 — 每月 50 個 AI 代理提示,不需要信用卡

技術堆疊

此密閉空間許可後端模板中包含的所有內容。

前端
13+ 種技術
後端
Back4app
資料庫
MongoDB
身份驗證
內建身份驗證 + 會話
API
REST 和 GraphQL
即時
Live Queries

許可證ER圖

限制空間許可後端架構的實體關係模型。

查看圖表來源
Mermaid
erDiagram
    User ||--o{ Permit : "issuedBy"
    User ||--o{ GasMonitorLog : "monitoredBy"
    User ||--o{ AttendantAssignment : "attendant"
    User ||--o{ EntryExitLog : "person"
    ConfinedSpace ||--o{ Permit : "confinedSpace"
    Permit ||--o{ GasMonitorLog : "permit"
    Permit ||--o{ AttendantAssignment : "permit"
    Permit ||--o{ EntryExitLog : "permit"

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

    ConfinedSpace {
        String objectId PK
        String spaceTag
        String location
        String hazardNotes
        String status
        Date createdAt
        Date updatedAt
    }

    Permit {
        String objectId PK
        String permitNumber
        String confinedSpaceId FK
        String issuedById FK
        String entryPurpose
        String permitStatus
        Date validFrom
        Date validTo
        Date createdAt
        Date updatedAt
    }

    GasMonitorLog {
        String objectId PK
        String permitId FK
        String monitoredById FK
        Number oxygenPercent
        Number lelPercent
        Number h2sPpm
        Number coPpm
        Date loggedAt
        Date createdAt
        Date updatedAt
    }

    AttendantAssignment {
        String objectId PK
        String permitId FK
        String attendantId FK
        String shiftName
        String assignmentStatus
        Date createdAt
        Date updatedAt
    }

    EntryExitLog {
        String objectId PK
        String permitId FK
        String personId FK
        String eventType
        Date eventTime
        String notes
        Date createdAt
        Date updatedAt
    }

許可證整合流程

典型的登入、許可證查詢、燃氣監控日誌記錄、工作人員分配、以及進入或退出時間捕捉。

查看圖示來源
Mermaid
sequenceDiagram
  participant User
  participant App as Confined Space Permit App
  participant Back4app as Back4app Cloud

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

  User->>App: Load permits for a spaceTag
  App->>Back4app: GET /classes/Permit?include=confinedSpace,issuedBy
  Back4app-->>App: Permit list

  User->>App: Add gas monitor log
  App->>Back4app: POST /classes/GasMonitorLog
  Back4app-->>App: GasMonitorLog objectId

  User->>App: Record attendant assignment and entry/exit times
  App->>Back4app: POST /classes/AttendantAssignment
  App->>Back4app: POST /classes/EntryExitLog
  Back4app-->>App: Assignment and time log saved

許可證數據字典

受限空間許可證架構中每個類別的字段級別參考。

字段類型描述是否必需
objectIdStringAuto-generated unique identifier自動
usernameStringUser login name
emailStringUser email address
passwordStringHashed password (write-only)
roleStringRole of the user (e.g. manager, coordinator, attendant, worker)
createdAtDateAuto-generated creation timestamp自動
updatedAtDateAuto-generated last-update timestamp自動

7 欄位在 User 中

安全性和權限

如何通過 ACL 和 CLP 策略保護許可證、燃氣日誌、出席者和進入事件。

許可證所有權控制

只有授權用戶可以為限制空間工作創建、更新或關閉許可證。

燃氣日誌完整性

GasMonitorLog 條目應由經過身份驗證的用戶創建,並且 Cloud Code 驗證 readingsAt 和 monitorName。

對工作組數據的範圍訪問

限制對出席者和進入事件的讀取,僅限於擁有該許可證的工作組,以免廣泛暴露姓名和時間。

架構 (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": "ConfinedSpace",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "spaceTag": {
          "type": "String",
          "required": true
        },
        "location": {
          "type": "String",
          "required": true
        },
        "hazardNotes": {
          "type": "String",
          "required": true
        },
        "status": {
          "type": "String",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Permit",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "permitNumber": {
          "type": "String",
          "required": true
        },
        "confinedSpace": {
          "type": "Pointer",
          "required": true,
          "targetClass": "ConfinedSpace"
        },
        "issuedBy": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "entryPurpose": {
          "type": "String",
          "required": true
        },
        "permitStatus": {
          "type": "String",
          "required": true
        },
        "validFrom": {
          "type": "Date",
          "required": true
        },
        "validTo": {
          "type": "Date",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "GasMonitorLog",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "permit": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Permit"
        },
        "monitoredBy": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "oxygenPercent": {
          "type": "Number",
          "required": true
        },
        "lelPercent": {
          "type": "Number",
          "required": true
        },
        "h2sPpm": {
          "type": "Number",
          "required": true
        },
        "coPpm": {
          "type": "Number",
          "required": true
        },
        "loggedAt": {
          "type": "Date",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "AttendantAssignment",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "permit": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Permit"
        },
        "attendant": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "shiftName": {
          "type": "String",
          "required": true
        },
        "assignmentStatus": {
          "type": "String",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "EntryExitLog",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "permit": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Permit"
        },
        "person": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "eventType": {
          "type": "String",
          "required": true
        },
        "eventTime": {
          "type": "Date",
          "required": true
        },
        "notes": {
          "type": "String",
          "required": false
        },
        "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. 氣體監測日志:許可(指向許可的指針,必填)、氧氣百分比(數字,必填)、氫化硫ppm(數字,必填)、一氧化碳ppm(數字,必填)、讀數時間(日期,必填)、監測員名稱(字串,必填);objectId、createdAt、updatedAt(系統)。
4. 隨行人員:許可(指向許可的指針,必填)、全名(字串,必填)、角色(字串,必填)、班次開始(日期,必填)、班次結束(日期);objectId、createdAt、updatedAt(系統)。
5. 進入事件:許可(指向許可的指針,必填)、隨行人員(指向隨行人員的指針,必填)、進入時間(日期,必填)、退出時間(日期)、備註(字串);objectId、createdAt、updatedAt(系統)。

安全性:
- 只有授權用戶可以創建、更新或關閉許可。請在 Cloud Code 中驗證氣體讀數和許可擁有權。

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

行為:
- 列出許可、創建氣體監測日志、分配隨行人員,以及記錄進入或退出時間。

交付:
- Back4app 應用,包含架構、ACLs、CLPs;用於許可跟踪、氣體日志、隨行人員和進入事件的前端。

按下下面的按鈕以打開帶有預填模板提示的助手。

這是沒有技術後綴的基本提示。您可以在之後自定義生成的前端堆棧。

幾分鐘內部署每月 50 個免費提示不需要信用卡

API 遊樂場

在受限空間許可證架構上嘗試 REST 和 GraphQL 端點。回應使用模擬數據,並不需要 Back4app 帳戶。

加載遊樂場…

使用與此模板相同的架構。

選擇您的技術

展開每個卡片以查看如何將 Permit、GasMonitorLog 和 Attendant 與您選擇的堆疊整合。

Flutter 密閉空間許可後端

React 密閉空間許可後端

React 原生 密閉空間許可後端

Next.js 密閉空間許可後端

JavaScript 密閉空間許可後端

Android 密閉空間許可後端

iOS 密閉空間許可後端

Vue 密閉空間許可後端

Angular 密閉空間許可後端

GraphQL 密閉空間許可後端

REST API 密閉空間許可後端

PHP 密閉空間許可後端

.NET 密閉空間許可後端

您每個技術可獲得的內容

每個技術棧使用相同的受限空間許可證架構和 API 合約。

統一的許可證數據結構

在一個一致的模型中追蹤許可證、氣體日誌、隨行人員和進入事件。

受限空間的氣體監測日誌

為每次讀取存儲 oxygenPct、h2sPpm、coPpm 和 readingsAt 字段。

隨行人員和時間追蹤

將 fullName、shiftStart、entryTime 和 exitTime 與正確的許可證綁定。

針對角色的許可證工作流程

為經理、協調員和現場工作人員定義對許可記錄的訪問權限。

REST/GraphQL 應用程式介面 (APIs) 用於許可應用程式

將網頁、行動裝置或後台工具與一個後端契約進行整合。

許可證框架比較

比較所有支援技術的設置速度、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全部

設置時間反映從專案啟動到第一次許可或燃氣日誌查詢所需的預期時間,使用此模板架構。

常見問題

有關使用該模板構建受限空間許可證後端的常見問題。

當操作跨越多個站點時,哪些限制空間許可證控制最為重要?
哪些許可證追踪、氣體監測日誌、隨行人員名稱和班次之間的關係使得有限空間許可證審計更容易敘述?
以結構化的方式為外部審查者導出有限空間許可證證據是否實用?
我如何使用 Flutter 查詢許可證和氣體日誌?
我如何使用 Next.js Server Actions 管理許可證數據?
React Native 能否離線緩存許可證記錄?
我該如何防止未經授權訪問燃氣日誌?
在 Android 上顯示許可證狀態的最佳方法是什麼?
受限空間工作流程是如何從頭到尾運作的?

全球開發者的信任之選

使用 Back4app 模板,加入更快運送許可追蹤產品的團隊

G2 Users Love Us Badge

準備好構建您的限制空間許可應用程序了嗎?

幾分鐘內開始您的許可項目。無需信用卡。

選擇技術