ATM 維護
使用 AI 代理建構
ATM 維護管理員後端

ATM 維護管理員後端範本
匣子追蹤、現金監控及審核準備

一個在 Back4app 上準備生產的 ATM 維護後端,包括匣子日誌、現金水平和安全審核。包含 ER 圖、數據字典、JSON 架構、API 體驗以及一個 AI 代理 提示以便快速設置。

自動提款機操作的關鍵要點

此模板為您的團隊提供一個自動提款機維護後端,用於卡匣日誌、現金水平和安全審計,讓協調員和現場工作人員可以從一個真實來源進行工作。

  1. 卡匣日誌集中管理追蹤每個 CassetteLog 條目對應至一臺自動提款機及其卡匣槽。
  2. 現金水平可見性保持每臺自動提款機面額和服務訪問的 CashLevel 快照最新。
  3. 安全審計跟蹤當自動提款機被打開、檢查或封閉時記錄 SecurityAudit 的結果。

概覽:ATM 維護管理

ATM 維護資產從不靜態:物品在箱子、地點、維修和檢疫之間移動——每一次移動都需要有時間戳的故事。解決方案是操作性的,而不是激勵性的。使用基於 Back4app 乾淨設計的 ATM、CassetteLog、CashLevel 和 SecurityAudit,ATM 維護利益相關者可以獲得一致的報告,而無需導出五個不同的電子表格。該架構涵蓋了 ATM (atmId、位置、狀態)、CassetteLog (atm、cassetteSlot、cashAdded、cashRemoved、technician)、CashLevel (atm、面值、已計算金額、預期金額) 和 SecurityAudit (atm、auditType、checklistStatus、發現項、執行者) 並內建身份驗證和存取規則。連接您首選的前端,快速開始追踪服務工作。

最佳適用於:

ATM 維護團隊現金補充協調安全審核追踪現場服務操作運營儀表板團隊選擇 BaaS 用於 ATM 工作流程

這個 ATM 維護後端是如何組織的

在 ATM 維護中,小的不一致性會累積:錯誤的狀態變成了錯誤的發貨,然後是錯誤的發票,最後是丟失的客戶。

利益相關者可以在這裡檢查 ATM、CassetteLog 和 CashLevel 的覆蓋範圍:名稱、關係以及它們啟用的工作流程。

核心ATM維護功能

此樞紐中的每張技術卡都使用相同的 ATM 後端架構,包括 ATM、CassetteLog、CashLevel 和 SecurityAudit。

ATM資產登記

ATM類別存儲atmId、位置、狀態和branchCode。

盒帶日誌追蹤

CassetteLog 類別記錄 cassetteSlot、cashAdded、cashRemoved 以及技術人員。

現金水平快照

CashLevel 類別儲存面額、計數金額、預期金額和變異。

安全審計檢查

SecurityAudit 類別捕捉 auditType、checklistStatus、findings 和 performedBy。

為什麼要使用 Back4app 建立您的 ATM 維護管理後端?

Back4app 為您的運營團隊提供一個乾淨的 ATM、盒帶和審計數據模型,讓您可以專注於服務工作,而不是布線基礎設施。

  • ATM 和盒帶記錄保持緊密聯繫: ATM 類別和 CassetteLog 類別將服務操作與正確的機器和盒帶槽保持聯繫。
  • 現金水平和安全審計查詢非常簡單: 使用現金水平快照和安全審計條目來檢查現金差異和檢查清單結果,而無需自定義數據庫處理。
  • 現場操作的即時更新: Live Queries可以在服務路線中的磁帶日誌或安全審計行變更時通知協調員。

從一個後端合約運行ATM維護工作流程,支持移動端和網頁。

ATM 團隊的核心好處

一個 ATM 維護後端,讓服務數據和審計記錄井然有序,無需額外的佈線。

更快的服務協調

從 ATM 和 CassetteLog 類別開始,而不是從零開始建立維護架構。

更乾淨的現金對帳

使用 CashLevel.countedAmount 和 CashLevel.expectedAmount 比較技術人員在現場找到的數據。

審計友好的記錄

儲存每個服務事件的 SecurityAudit.checklistStatus 和 SecurityAudit.findings。

角色感知的字段訪問

使用 ACL 和 CLP,使協調員、技術人員和評審者僅觸及他們所需的 ATM 數據。

跨平台機器可見性

從移動工具、調度儀表板或分行控制台查詢 ATM、CassetteLog 和 CashLevel。

人工智能輔助推出

在一個提示中生成後端腳手架和服務流程,然後將其適應於您的路由操作。

準備好啟動您的 ATM 維護應用程序了嗎?

讓 Back4app AI 代理人搭建您的 ATM 維護後端,並從一個提示生成紙幣日誌、現金水平跟蹤和安全審核。

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

技術棧

此 ATM 維護後端模板中包含所有內容。

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

自動提款機操作的ER圖

自動提款機維護後台架構的實體關係模型。

查看圖表來源
Mermaid
erDiagram
    User ||--o{ ATM : "assignedManager"
    User ||--o{ CassetteLog : "sealedBy"
    User ||--o{ CashLevel : "checkedBy"
    User ||--o{ SecurityAudit : "auditor"
    User ||--o{ MaintenanceTicket : "assignedTo"
    ATM ||--o{ CassetteLog : "atm"
    ATM ||--o{ CashLevel : "atm"
    ATM ||--o{ SecurityAudit : "atm"
    ATM ||--o{ MaintenanceTicket : "atm"

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

    ATM {
        String objectId PK
        String atmId
        String locationName
        String status
        String assignedManagerId FK
        Date createdAt
        Date updatedAt
    }

    CassetteLog {
        String objectId PK
        String atmId FK
        String cassetteNumber
        Number cashDenomination
        Number countBefore
        Number countAfter
        String sealedById FK
        Date loggedAt
        Date createdAt
        Date updatedAt
    }

    CashLevel {
        String objectId PK
        String atmId FK
        Number currentAmount
        Number fillThreshold
        Number forecastAmount
        String checkedById FK
        Date checkedAt
        Date createdAt
        Date updatedAt
    }

    SecurityAudit {
        String objectId PK
        String atmId FK
        String auditType
        String result
        String notes
        String auditorId FK
        Date auditedAt
        Date createdAt
        Date updatedAt
    }

    MaintenanceTicket {
        String objectId PK
        String atmId FK
        String ticketNumber
        String priority
        String issueSummary
        String assignedToId FK
        String resolutionStatus
        Date reportedAt
        Date createdAt
        Date updatedAt
    }

自動提款機整合流程

登錄、自動提款機查詢、盒帶記錄、現金水平更新和安全審計的典型運行流程。

查看圖表來源
Mermaid
sequenceDiagram
  participant User
  participant App as ATM Maintenance Manager App
  participant Back4app as Back4app Cloud

  User->>App: Sign in to review ATM worklists
  App->>Back4app: POST /login
  Back4app-->>App: Session token

  User->>App: Load ATM roster
  App->>Back4app: GET /classes/ATM?include=assignedManager&order=locationName
  Back4app-->>App: ATM rows with status and assignedManager

  User->>App: Record cassette log and cash level
  App->>Back4app: POST /classes/CassetteLog
  App->>Back4app: POST /classes/CashLevel
  Back4app-->>App: New objectIds

  User->>App: Submit security audit
  App->>Back4app: POST /classes/SecurityAudit
  Back4app-->>App: Audit saved

  App->>Back4app: Subscribe to live updates for MaintenanceTicket
  Back4app-->>App: MaintenanceTicket changes

ATM維護的數據字典

ATM維護模式中每個類別的完整字段級參考。

字段類型描述必填
objectIdStringAuto-generated unique identifier自動
usernameStringUser login name
emailStringUser email address
passwordStringHashed password (write-only)
roleStringUser role such as manager, coordinator, or fieldTech
createdAtDateAuto-generated creation timestamp自動
updatedAtDateAuto-generated last-update timestamp自動

7字段在User中

ATM數據的安全性與權限

ACL和CLP策略如何保護ATM資產、盒帶日誌、現金水平和審計項目。

基於角色的服務訪問

技術人員可以為指派的ATM創建盒帶日誌條目,而審查員可以檢查安全審計記錄。

現金水平完整性

只有授權用戶可以更改現金水平值,並且雲代碼可以拒絕不匹配的計數金額更新。

審計追蹤保護

安全審計記錄保留檢查清單狀態和發現,以便服務歷史在班次之間保持可追溯性。

架構(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": "ATM",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "atmId": {
          "type": "String",
          "required": true
        },
        "locationName": {
          "type": "String",
          "required": true
        },
        "status": {
          "type": "String",
          "required": true
        },
        "assignedManager": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "CassetteLog",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "atm": {
          "type": "Pointer",
          "required": true,
          "targetClass": "ATM"
        },
        "cassetteNumber": {
          "type": "String",
          "required": true
        },
        "cashDenomination": {
          "type": "Number",
          "required": true
        },
        "countBefore": {
          "type": "Number",
          "required": true
        },
        "countAfter": {
          "type": "Number",
          "required": true
        },
        "sealedBy": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "loggedAt": {
          "type": "Date",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "CashLevel",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "atm": {
          "type": "Pointer",
          "required": true,
          "targetClass": "ATM"
        },
        "currentAmount": {
          "type": "Number",
          "required": true
        },
        "fillThreshold": {
          "type": "Number",
          "required": true
        },
        "forecastAmount": {
          "type": "Number",
          "required": true
        },
        "checkedBy": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "checkedAt": {
          "type": "Date",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "SecurityAudit",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "atm": {
          "type": "Pointer",
          "required": true,
          "targetClass": "ATM"
        },
        "auditType": {
          "type": "String",
          "required": true
        },
        "result": {
          "type": "String",
          "required": true
        },
        "notes": {
          "type": "String",
          "required": true
        },
        "auditor": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "auditedAt": {
          "type": "Date",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "MaintenanceTicket",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "atm": {
          "type": "Pointer",
          "required": true,
          "targetClass": "ATM"
        },
        "ticketNumber": {
          "type": "String",
          "required": true
        },
        "priority": {
          "type": "String",
          "required": true
        },
        "issueSummary": {
          "type": "String",
          "required": true
        },
        "assignedTo": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "resolutionStatus": {
          "type": "String",
          "required": true
        },
        "reportedAt": {
          "type": "Date",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    }
  ]
}

使用 AI 代理構建

使用 Back4app AI 代理根據此模板生成一個真正的 ATM 維護應用程序,包括前端、後端、身份驗證、以及捲筒、現金和審計流程。

Back4app AI 代理
準備構建
在 Back4app 創建一個 ATM 維護管理器應用程序的後端,使用這個精確的架構和行為。

架構:
1. 用戶(使用 Back4app 內建):用戶名、電子郵件、密碼;objectId、createdAt、updatedAt(系統)。
2. ATM:atmId(字串,必填)、位置(字串,必填)、狀態(字串,必填)、branchCode(字串,可選);objectId、createdAt、updatedAt(系統)。
3. CassetteLog:atm(指向 ATM 的指標,必填)、cassetteSlot(字串,必填)、cashAdded(數字,必填)、cashRemoved(數字,必填)、technician(指向用戶的指標,必填)、note(字串,可選);objectId、createdAt、updatedAt(系統)。
4. CashLevel:atm(指向 ATM 的指標,必填)、denomination(字串,必填)、countedAmount(數字,必填)、expectedAmount(數字,必填)、variance(數字,必填);objectId、createdAt、updatedAt(系統)。
5. SecurityAudit:atm(指向 ATM 的指標,必填)、auditType(字串,必填)、checklistStatus(字串,必填)、findings(字串,可選)、performedBy(指向用戶的指標,必填);objectId、createdAt、updatedAt(系統)。

安全性:
- 技術人員為指定的 ATM 創建 CassetteLog 條目。只有授權用戶可以編輯 CashLevel 數據。通過雲代碼驗證保留 SecurityAudit 記錄。

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

行為:
- 列出 ATM、創建捲筒日志、更新現金水平、記錄安全審計。

交付:
- Back4app 應用程序,包含架構、ACL、CLP;ATM 列表、捲筒日志、現金水平和安全審計的前端。

按下下面的按鈕以打開已填充此模板提示的代理。

這是沒有技術後綴的基本提示。您可以在後面調整生成的前端堆疊。

幾分鐘內部署每月 50 次免費提示無需信用卡

ATM 維護的 API 遊樂場

對 ATM 維護架構嘗試 REST 和 GraphQL 端點。響應使用模擬數據,無需 Back4app 帳戶。

正在加載遊樂場…

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

選擇您的技術

展開每個卡片以查看如何將 ATM、CassetteLog 和 CashLevel 與您選擇的技術堆疊整合。

Flutter ATM 維護後端

React ATM 維護後端

React 本地 ATM 維護後端

Next.js ATM 維護後端

JavaScript ATM 維護後端

Android ATM 維護後端

iOS ATM 維護後端

Vue ATM 維護後端

Angular ATM 維護後端

GraphQL ATM 維護後端

REST API ATM 維護後端

PHP ATM 維護後端

.NET ATM 維護後端

您每項技術獲得的內容

每個堆疊都使用相同的 ATM 維護架構和 API 合約。

統一的 ATM 操作數據結構

在一個架構中追蹤 ATM 資產、卡帶日誌、現金水平和安全審核。

現場團隊的卡帶日誌追蹤

在服務訪問期間捕捉 cassetteSlot 變更、cashAdded 和 cashRemoved。

現金水平監控操作

在標記一台機器為完成之前,比較 countedAmount 和 expectedAmount。

符合性安全審計工作流程

記錄每次檢查的 checklistStatus、發現和執行者。

REST/GraphQL API 用於調度工具

將行動應用程式、協調器儀表板和服務入口網站與相同的後端整合。

ATM 維護框架比較

比較所有支援技術的設置速度、SDK風格和AI支援。

框架設置時間ATM維護效益SDK類型AI支援
約5分鐘移動端和網頁的單一代碼庫,以進行自動櫃員機維護。類型化SDK完整
低於5分鐘快速的自動櫃員機操作網頁控制台。輸入型SDK完整
約3至7分鐘面向技術人員的跨平台移動應用。輸入型SDK完整
快速(5分鐘)設置為自動櫃員機團隊提供的伺服器渲染調度門戶。輸入型SDK完整
~3–5分鐘輕量級瀏覽器整合用於ATM維護。類型化SDK完整
大約5分鐘針對路線技術人員的原生Android應用程序。類型化SDK完整
少於5分鐘適用於現金和審核檢查的原生iPhone應用。類型化SDK完整
~3–7分鐘React服務協調員的網絡UI。輸入式SDK完整
快速(5分鐘)設置用於維護操作的企業網絡應用程序。輸入式SDK完整
少於2分鐘靈活的GraphQL ATM維護API。GraphQL API完整
快速(2分鐘)設置REST API 整合 ATM 現場系統。REST API完整
約 3 分鐘伺服器端 PHP 整合維護工具。REST API完整
約 3–7 分鐘.NET 背端用於 ATM 操作。類型化 SDK完整

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

常見問題

有關使用此模板構建 ATM 維護管理後端的常見問題。

ATM維護組織如何防止“不可見”的庫存,即物理存在但系統中不存在的庫存?
ATM維護團隊應該如何表示套件、捆綁包和替代品而不破壞查詢?
該模型是否足夠靈活,以支持像掃描器或ERP數據源的ATM維護集成?
我如何在 Flutter 中查詢ATM和現金水平?
我如何在 Next.js 中處理技術人員的訪問?
React Native是否支持離線緩存軌道日誌?
我如何阻止未經授權的現金水平編輯?
在 Android 上顯示 ATM 列表的最佳方式是什麼?

受到全球開發者的信任

與 Back4app 範本一起,讓團隊更快速地交付 ATM 維護產品

G2 Users Love Us Badge

準備好建立您的 ATM 維護管理器了嗎?

在幾分鐘內開始您的 ATM 維護專案。無需信用卡。

選擇技術