关键要点
此模板提供了一个包含用户、班次和日程安排的班次调度后端,以便您的团队可以专注于高效的轮班管理和时间打卡。
- 以用户为中心的调度设计 — 使用清晰、可查询的结构对用户进行班次和日程安排建模。
- 实时调度更新 — 利用Back4app的实时功能进行班次更改和通知。
- 地理围栏时间打卡 — 通过地理围栏的打卡功能确保准确的时间跟踪。
- 换班逻辑 — 允许用户通过审批工作流无缝换班。
- 跨平台调度后端 — 通过单一的REST和GraphQL API为移动和网页客户端提供用户、班次和日程服务。
什么是班次调度应用后端模板?
Back4app是一个后端即服务(BaaS),用于快速产品交付。班次调度应用后端模板是一个预构建的模式,包含用户、班次和日程。连接您喜欢的前端(React、Flutter、Next.js等),更快交付。
最佳适用:
概述
一个班次排班产品需要用户档案、班次、日程安排和时间打卡。
此模板定义了用户、班次和日程安排,具有实时功能和所有权规则,以便团队可以快速实现排班交互。
核心班次调度功能
此中心的每个技术卡片都使用相同的班次调度后端架构,包括用户、班次和日程安排。
用户资料和角色
用户类存储用户名、电子邮件、密码和角色。
班次创建和管理
班次类链接用户、开始时间、结束时间和地点。
调度和时间打卡
日程安排类存储用户参考和相关班次。
班次交换
支持带审批流程的班次交换。
实时通知
通知用户日程变更和班次更新。
为什么使用Back4app构建您的班次调度后端?
Back4app为您提供用户、班次和日程安排的基本功能,因此您的团队可以专注于高效的调度和时间管理,而不是基础设施。
- •用户和班次管理: 具有角色字段的用户类和用于日程管理的班次类支持高效的轮班操作。
- •地理围栏时间打卡: 通过地理围栏的打卡功能确保准确的时间跟踪。
- •实时 + API 灵活性: 使用Live Queries进行调度更新,同时保持REST和GraphQL可用于每个客户端。
通过在所有平台上使用一个后端合同快速构建和迭代调度功能。
核心优势
一个调度后端,帮助您快速迭代而不牺牲结构。
快速调度启动
从完整的用户、班次和日程安排架构开始,而不是从零设计后端。
实时调度支持
利用实时通知和更新来增强用户参与度。
灵活的班次管理
通过调换和审批工作流程来灵活管理班次。
可扩展的权限模型
使用 ACL/CLP 以便只有用户可以编辑他们的日程和班次,并管理换班请求。
准确的时间追踪
使用地理围栏确保精确的打卡记录。
AI 启动工作流程
通过一个结构化提示快速生成后端脚手架和集成指导。
准备好推出您的班次调度应用了吗?
让 Back4app AI 代理为您的班次调度后端搭建脚手架,并从一个提示中生成用户、班次和日程。
免费开始——每月50个AI代理提示,无需信用卡
技术栈
此班次调度后端模板中包含的一切。
ER 图
值班安排后端架构的实体关系模型。
涵盖用户、班次和日程的架构。
查看图表来源
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
}
集成流程
认证、用户资料、班次、日程和时间打卡的典型运行流程。
查看图表来源
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数据字典
班次调度模式中每个类的完整字段级参考。
| 字段 | 类型 | 描述 | 必需 |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | 自动 |
| username | String | User login name | |
| String | User email address | ||
| password | String | Hashed password (write-only) | |
| role | String | Role of the user (e.g., manager, employee) | |
| createdAt | Date | Auto-generated creation timestamp | 自动 |
| updatedAt | Date | Auto-generated last-update timestamp | 自动 |
User 中的 7 字段
安全性和权限
ACL 和 CLP 策略如何保护用户、班次和日程安排。
用户拥有的日程控制
只有用户可以更新或删除他们的日程;其他人不能修改用户的班次。
班次和日程完整性
只有创建者可以创建或删除他们的班次和日程。使用云代码进行验证。
范围读取访问
限制班次和日程的读取权限给相关方(例如,用户只能看到自己的日程和公共班次)。
模式(JSON)
原始JSON模式定义,准备复制到Back4app或用作实现参考。
{
"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 上创建一个具有此精确模式和行为的班次调度应用后端。 模式: 1. 用户(使用 Back4app 内置):用户名、电子邮件、密码;objectId、createdAt、updatedAt(系统)。 2. 班次:用户(指向用户的指针,必需),开始时间(日期,必需),结束时间(日期,必需),位置(地理点,可选);objectId、createdAt、updatedAt(系统)。 3. 日程:用户(指向用户的指针,必需),班次(指向班次的指针数组,必需);objectId、createdAt、updatedAt(系统)。 安全: - 只有用户可以更新/删除他们的日程。只有创建者可以创建/删除他们的班次。使用云代码进行验证。 认证: - 注册、登录、注销。 行为: - 列出用户,创建班次,安排班次,打卡进出,并管理班次交换。 交付: - Back4app 应用,包含模式、ACLs、CLPs;用户资料、班次、日程和时间打卡的前端。
按下面的按钮打开预填此模板提示的代理。
这是没有技术后缀的基本提示。您可以在之后调整生成的前端堆栈。
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 | 完整 |
设置时间反映了从项目启动到使用此模板架构进行第一次计划查询的预期持续时间。
常见问题
关于使用此模板构建班次调度后端的常见问题。