排班
使用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 代理为您的班次调度后端搭建脚手架,并从一个提示中生成用户、班次和日程。

免费开始——每月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;用户资料、班次、日程和时间打卡的前端。

按下面的按钮打开预填此模板提示的代理。

这是没有技术后缀的基本提示。您可以在之后调整生成的前端堆栈。

几分钟内部署每月50个免费提示无需信用卡

API 操作台

尝试针对班次安排模式使用 REST 和 GraphQL 端点。响应使用模拟数据,不需要 Back4app 账户。

正在加载游乐场…

使用与此模板相同的模式。

选择您的技术

展开每张卡片以查看集成步骤、状态模式、数据模型示例和离线备注。

Flutter 排班后台

React 排班后台

React 原生 排班后台

Next.js 排班后台

JavaScript 排班后台

Android 排班后台

iOS 排班后台

Vue 排班后台

Angular 排班后台

GraphQL 排班后台

REST API 排班后台

PHP 排班后台

.NET 排班后台

每种技术的优势

每个技术栈都使用相同的班次调度后端架构和 API 合同。

统一的班次数据结构

使用 班次调度 的一致数据架构轻松管理班次和用户。

实时调度更新

实时通知班次的变更,增强 班次调度 管理。

安全的用户访问控制

通过强大的访问权限保护敏感的 班次调度 信息。

REST/GraphQL API 用于 班次调度

使用针对 班次调度 定制的灵活 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

准备好构建您的班次安排应用了吗?

在几分钟内开始您的安排项目。无需信用卡。

选择技术