班次排程
使用AI代理構建
班次排程後端

班次排程應用程式後端模板
輪班管理和地理圍欄打卡

在 Back4app 上的生產就緒班次排程後端,包含用戶、班次和排程。包括 ER 圖、數據字典、JSON 架構、API 操作台,以及快速啟動的AI 代理提示。

關鍵要點

此模板提供具有用戶、班次和排程的班次排程後端,讓您的團隊可以專注於高效的輪班管理和時間打卡。

  1. 以用戶為中心的排程設計以清晰、可查詢的結構建模用戶與班次和排程。
  2. 實時排程更新利用 Back4app 的實時功能進行班次變更和通知。
  3. 地理圍欄時間打卡確保準確的時間追蹤,具有地理圍欄的打卡和簽退功能。
  4. 班次交換邏輯允許用戶通過批准工作流程無縫交換班次。
  5. 跨平台排班後端通過單一的 REST 和 GraphQL API 為移動和網絡客戶端提供用戶、班次和排班服務。

什麼是班次排班應用後端模板?

Back4app 是一種後端即服務 (BaaS),用於快速產品交付。班次排班應用後端模板是一個預構建的模式,包含用戶、班次和排班。連接您偏好的前端(React、Flutter、Next.js 等)並更快交付。

最佳適用於:

班次排班應用勞動力管理平台時間追蹤和出勤應用程式以移動設備為優先的排班應用程式MVP 上市選擇 BaaS 來進行排班產品的團隊

概覽

一個班次排班產品需要用戶資料、班次、時間表和打卡功能。

此模板定義了用戶、班次和時間表,具有實時功能和所有權規則,使團隊能夠快速實施排班互動。

核心班次排程功能

此中心的每個技術卡片都使用相同的班次排程後端架構,包括用戶、班次和排程。

用戶資料和角色

用戶類別存儲用戶名、電子郵件、密碼和角色。

班次創建和管理

班次類別連接用戶、開始時間、結束時間和地點。

排班和打卡

排班類別儲存用戶參考和相關班次。

班次交換

支持班次交換及審批流程。

即時通知

通知用戶排班變更和班次更新。

為什麼要用 Back4app 構建您的班次排程後端?

Back4app 提供用戶、班次和排程的基本功能,讓您的團隊可以專注於高效的排程和時間管理,而不是基礎設施。

  • 用戶和班次管理: 具有角色欄位的用戶類別和用於排程管理的班次類別支持高效的輪班操作。
  • 地理圍欄時間打卡: 通過地理圍欄的打卡功能確保準確的時間追蹤。
  • 實時 + API 靈活性: 使用 Live Queries 進行排程更新,同時保持 REST 和 GraphQL 可供每個客戶端使用。

通過在所有平台上使用一個後端合約快速構建和迭代排程功能。

核心優勢

一個幫助您快速迭代而不犧牲結構的排程後端。

快速排程啟動

從完整的用戶、班次和排程架構開始,而不是從零設計後端。

實時排程支持

利用實時通知和更新來增強用戶參與度。

靈活的班次管理

通過調班和批准工作流程來靈活管理班次。

可擴展的權限模型

使用 ACL/CLP 以便只有用戶可以編輯他們的日程和班次,並管理換班請求。

精確的時間追蹤

使用地理圍欄以確保精確的打卡和下班記錄。

AI 引導工作流程

使用一個結構化提示快速生成後端框架和整合指導。

準備好推出您的班次排程應用程式了嗎?

讓 Back4app AI Agent 為您的班次排程後端搭建框架,並從一個提示中生成用戶、班次和日程。

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

技術堆疊

此班次排程後端模板中包含的一切。

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

ER 圖

排班後端架構的實體關係模型。

查看圖表來源
Mermaid
erDiagram
    User ||--o{ Schedule : "user"
    User ||--o{ SwapRequest : "fromUser"
    User ||--o{ SwapRequest : "toUser"
    User ||--o{ ClockIn : "user"
    Shift ||--o{ Schedule : "shift"
    Shift ||--o{ SwapRequest : "shift"
    Shift ||--o{ ClockIn : "shift"

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

    Shift {
        String objectId PK
        String title
        Date startTime
        Date endTime
        GeoPoint location
        Date createdAt
        Date updatedAt
    }

    Schedule {
        String objectId PK
        Pointer user FK
        Pointer shift FK
        String status
        Date createdAt
        Date updatedAt
    }

    SwapRequest {
        String objectId PK
        Pointer fromUser FK
        Pointer toUser FK
        Pointer shift FK
        String status
        Date createdAt
        Date updatedAt
    }

    ClockIn {
        String objectId PK
        Pointer user FK
        Pointer shift FK
        Date clockInTime
        GeoPoint location
        Date createdAt
        Date updatedAt
    }

整合流程

身份驗證、用戶資料、班次、時間表和打卡的典型運行流程。

查看圖表來源
Mermaid
sequenceDiagram
  participant User
  participant App as Shift Scheduling App
  participant Back4app as Back4app Cloud

  User->>App: Login
  App->>Back4app: POST /login
  Back4app-->>App: Session token

  User->>App: View schedule
  App->>Back4app: GET /classes/Schedule
  Back4app-->>App: Schedule data

  User->>App: Request shift swap
  App->>Back4app: POST /classes/SwapRequest
  Back4app-->>App: SwapRequest objectId

  User->>App: Clock in
  App->>Back4app: POST /classes/ClockIn
  Back4app-->>App: ClockIn confirmation

資料字典

班次排程架構中每個類別的完整字段級別參考。

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

User中的7字段

安全性和權限

ACL和CLP策略如何保護用戶、班次和排程。

用戶擁有的時間表控制

只有用戶可以更新或刪除他們的時間表;其他人無法修改用戶的班次。

班次和時間表完整性

只有創建者可以創建或刪除他們的班次和時間表。使用雲端代碼進行驗證。

範圍讀取訪問

限制班次和時間表的讀取權限給相關方(例如,用戶只能看到自己的時間表和公共班次)。

架構(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": "Shift",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "title": {
          "type": "String",
          "required": true
        },
        "startTime": {
          "type": "Date",
          "required": true
        },
        "endTime": {
          "type": "Date",
          "required": true
        },
        "location": {
          "type": "GeoPoint",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Schedule",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "user": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "shift": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Shift"
        },
        "status": {
          "type": "String",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "SwapRequest",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "fromUser": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "toUser": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "shift": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Shift"
        },
        "status": {
          "type": "String",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "ClockIn",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "user": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "shift": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Shift"
        },
        "clockInTime": {
          "type": "Date",
          "required": true
        },
        "location": {
          "type": "GeoPoint",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    }
  ]
}

使用 AI 代理構建

使用 Back4app AI Agent 從此模板生成一個真正的班次排程應用,包括前端、後端、身份驗證以及用戶、班次、排程和打卡流程。

Back4app AI Agent
準備構建
在 Back4app 上使用此精確的架構和行為創建一個班次排程應用後端。

架構:
1. 用戶(使用 Back4app 內建):用戶名、電子郵件、密碼;objectId, createdAt, updatedAt(系統)。
2. 班次:用戶(指向用戶的指針,必需),開始時間(日期,必需),結束時間(日期,必需),地點(地理點,可選);objectId, createdAt, updatedAt(系統)。
3. 排程:用戶(指向用戶的指針,必需),班次(指向班次的指針數組,必需);objectId, createdAt, updatedAt(系統)。

安全性:
- 只有用戶可以更新/刪除他們的排程。只有創建者可以創建/刪除他們的班次。使用雲代碼進行驗證。

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

行為:
- 列出用戶,創建班次,排程班次,打卡和管理班次交換。

交付:
- Back4app 應用,包含架構、ACLs、CLPs;用於用戶資料、班次、排程和打卡的前端。

按下面的按鈕以使用此模板提示預填內容打開 Agent。

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

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

API 操作台

嘗試針對班次排程架構使用 REST 和 GraphQL 端點。回應使用模擬數據,且不需要 Back4app 帳戶。

正在載入遊樂場…

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

選擇您的技術

展開每張卡片以查看集成步驟、狀態模式、數據模型示例和離線說明。

Flutter 排班後端

React 排班後端

React 原生 排班後端

Next.js 排班後端

JavaScript 排班後端

Android 排班後端

iOS 排班後端

Vue 排班後端

Angular 排班後端

GraphQL 排班後端

REST API 排班後端

PHP 排班後端

.NET 排班後端

每種技術的獲得

每個技術棧使用相同的班次排程後端架構和 API 合約。

統一班次數據結構

利用 班次排程 的一致數據架構輕鬆管理班次和用戶。

即時排程更新

對排班變更的即時通知,提升 班次排程 管理。

安全的用戶訪問控制

通過強大的訪問權限保護敏感的 班次排程 信息。

REST/GraphQL APIs 用於 班次排程

使用適合 班次排程 的靈活 API 無縫整合任何前端。

自動班次提醒

通過自動通知讓用戶了解即將到來的 班次排程 班次。

可擴展的 班次排程 框架

輕鬆定制和擴展功能以滿足您的特定 班次排程 需求。

班次排程框架比較

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

框架設置時間班次排程好處SDK類型AI支持
大約 5 分鐘針對行動和網頁的單一代碼庫進行班次排程。Typed SDK完整
少於 5 分鐘快速的網頁儀表板進行班次排程。Typed SDK完整
~3–7 分鐘跨平台的行動應用程式進行班次排程。Typed SDK完整
快速(5分鐘)設置伺服器渲染的網頁應用程式進行班次排程。Typed SDK完整
~3 分鐘輕量級的網頁整合進行班次排程。Typed SDK完整
大約 5 分鐘原生 Android 應用程式進行班次排程。Typed SDK完整
少於 5 分鐘原生 iOS 應用程式進行班次排程。Typed SDK完整
~3–7 分鐘React 的網頁 UI 進行班次排程。Typed SDK完整
快速(5分鐘)設置企業網頁應用程式進行班次排程。Typed SDK完整
快速(2分鐘)設置靈活的 GraphQL API 用於班次排程。GraphQL API完整
~2 分鐘REST API 整合進行班次排程。REST API完整
少於 5 分鐘伺服器端 PHP 後端進行班次排程。REST API完整
~3–7 分鐘.NET 後端進行班次排程。Typed SDK完整

設置時間反映了從項目啟動到使用此模板架構進行首次計劃查詢的預期持續時間。

常見問題

關於使用此模板構建班次排程後端的常見問題。

什麼是班次排程後端?
班次排程模板包含什麼?
為什麼使用 Back4app 來製作排程應用?
如何使用 Flutter 查詢用戶和班次?
如何使用 Next.js Server Actions 創建排程?
React Native 能否離線緩存用戶和班次?
如何防止重複的班次?
在 Android 上顯示用戶個人資料和班次的最佳方式是什麼?
時間打卡流程是如何從頭到尾運作的?

受到全球開發者的信賴

加入使用Back4app模板更快交付排程產品的團隊

G2 Users Love Us Badge

準備好建立您的班次排程應用程式了嗎?

在幾分鐘內開始您的排程專案。不需要信用卡。

選擇技術