CrewMember、设备租赁和拍摄表后端模板
团队调度、设备跟踪和拍摄表传递
一个在 Back4app 上的视频制作团队客户关系管理系统后端,包含 CrewMember 资料、可用性时间段安排、设备库存、设备租赁结算、拍摄表记录、拍摄表分发和客户项目跟踪。包括 ER 图、数据字典、JSON 模式、API 游戏场,以及一个用于快速启动的AI 代理提示。
Crew CRM 主要内容
此模板为您提供视频制作团队 CRM 后端,包含 CrewMember 排班、GearItem 跟踪和 CallSheet 投递,以便协调员能够保持制作日的有序。
- CrewMember 可用性一目了然 — 跟踪每个 CrewMember 和 AvailabilitySlot 窗口,以便协调员可以在拍摄日之前确认谁是空闲的。
- 可审计的 GearRental 记录 — 使用 GearItem 和 GearRental 类记录相机、灯光和音频设备的借出、归还和状况说明。
- 无猜测的 CallSheet 分发 — 存储 CallSheet 和 CallSheetDistribution 条目,以便每个部门在正确的时间收到正确的表格。
- 团队运营具有明确的所有权 — 通过 Parse 指针和角色感知访问,将任务分配、设备和拍摄单链接到合适的人。
- 一个支持移动和网页工具的后端 — 为调度员、制片人和助理提供相同的 REST 和 GraphQL API。
概述:视频制作团队 CRM
视频制作团队的报告应该能够回答领导的问题,而无需手动搜索文件夹和消息线程。可靠性是一个特性,而不是附注。在 Back4app 上构建 CrewMember、AvailabilitySlot、GearItem、GearRental 和 CallSheet,以更清晰的所有权、减少丢失任务和客户就绪的历史来处理视频制作团队事务。架构涵盖 CrewMember(fullName、email、phone、role、notes)、AvailabilitySlot(crewMember、date、startTime、endTime、status、location)、GearItem(assetTag、name、category、condition、isAvailable、location)、GearRental(gearItem、checkedOutBy、rentalDate、returnDueDate、returnedAt、status、conditionOut、conditionIn)、CallSheet(projectName、shootDate、callTime、location、status、notes、createdBy)、CallSheetDistribution(callSheet、recipientEmail、deliveryMethod、sentAt、deliveryStatus、openedAt)和 ClientProject(clientName、projectCode、title、status、producer、callSheet),并内置了权限和团队工作流控制。连接您首选的前端并加快交付速度。
最佳适合:
视频制作团队后端如何组织
视频制作团队的操作员通常在交接时首次感受到痛苦:一组更新一个表,另一组信任一个聊天线程,而两者都与客户所告知的内容不符。
该总结使团队在任何人深入 ER 图或 JSON 导出之前围绕 CrewMember、AvailabilitySlot 和 GearItem 进行定位。
Crew CRM 核心功能
本中心中的每个技术卡都使用相同的工作人员 CRM 后端架构,包括 CrewMember、AvailabilitySlot、GearItem、GearRental、CallSheet、CallSheetDistribution 和 ClientProject。
CrewMember 名册管理
CrewMember 存储全名、角色、电子邮件和电话。
可用时段窗口
可用时段跟踪 crewMember、日期、开始时间、结束时间和状态。
设备项目库存和状态
设备项目记录资产标签、名称、类别、状态和是否可用。
设备租赁结账和归还日志
设备租赁将设备项目与借出人、租赁日期、归还到期日期和状态关联。
通话表创建
通话表存储项目名称、拍摄日期、地点、通话时间、状态和备注。
电话表分发跟踪
电话表分发链接 callSheet, recipientEmail, deliveryMethod, sentAt, 和 deliveryStatus。
为什么要用 Back4app 构建你的 Crew CRM 后端?
Back4app 提供团队、设备和分发原语,以便你的团队可以花时间在通话上,而不是后端管道。
- •可用性时间段的团队排班: 与每个 CrewMember 关联的 AvailabilitySlot 记录使得确认谁可以参加拍摄、接送或夜间通话变得简单。
- •使用 GearRental 和 GearItem 的设备租赁日志: 记录 GearRental 上的借出和归还时刻,同时保持 GearItem.assetTag、状态和是否可用以便快速检查资产。
- •通话表格交付与 CallSheetDistribution: 使用每个 CallSheet 的 CallSheetDistribution 条目,让制作人能够看到谁收到了表格、何时发送以及是否被打开。
通过跨每个客户的一个后端合同快速构建和调整制作操作流程。
工作人员 CRM 优势
一个将排程、设备和电话表集中在一个地方的工作人员 CRM 后端。
更快的工作人员预订决策
使用 AvailabilitySlot 记录与 CrewMember 个人资料一起决定谁可以接下一个电话。
清除装备责任
将GearRental行与GearItem.assetTag值匹配,以便每次结账都有可追溯的所有者和到期日期。
减少沟通遗漏
在每个CallSheet上跟踪CallSheetDistribution,以便制作人员确切知道谁拥有最新版本。
更清晰的生产日记录
在准备和收尾期间保持shootDate、callTime和returnDueDate字段的组织,以便快速查看。
角色感知访问
使用ACL和CLP规则,使得只有授权协调员可以编辑装备、租赁和召唤表。
AI引导工作流
通过一个结构化的提示快速生成后端框架和集成指南。
准备好启动你的团队 CRM 吗?
让 Back4app AI 代理支架你的团队 CRM 后端,并从一个提示中生成 CrewMember 可用性、GearRental 日志和 CallSheet 分发。
免费开始 — 每月 50 个 AI 代理提示,无需信用卡
制作技术栈
这个团队 CRM 后端模板中包含的一切。
演员关系图
视频制作团队CRM架构的实体关系模型。
涵盖演员、可用时段、设备项、设备租赁、通话单、通话单分发记录和客户项目的架构。
查看图表源
erDiagram
CrewMember ||--o{ AvailabilitySlot : "has"
CrewMember ||--o{ GearRental : "checks out"
CrewMember ||--o{ CallSheet : "creates"
CallSheet ||--o{ CallSheetDistribution : "sent as"
GearItem ||--o{ GearRental : "rented in"
ClientProject ||--o{ CallSheet : "uses"
ClientProject }o--|| CrewMember : "producer"
ClientProject }o--o| CallSheet : "primary call sheet"
CrewMember {
String objectId PK
String fullName
String email
String phone
String role
String notes
Date createdAt
Date updatedAt
}
AvailabilitySlot {
String objectId PK
String crewMemberId FK
Date date
String startTime
String endTime
String status
String location
Date createdAt
Date updatedAt
}
GearItem {
String objectId PK
String assetTag
String name
String category
String condition
Boolean isAvailable
String location
Date createdAt
Date updatedAt
}
GearRental {
String objectId PK
String gearItemId FK
String checkedOutById FK
Date rentalDate
Date returnDueDate
Date returnedAt
String status
String conditionOut
String conditionIn
Date createdAt
Date updatedAt
}
CallSheet {
String objectId PK
String projectName
Date shootDate
String callTime
String location
String status
String notes
String createdById FK
Date createdAt
Date updatedAt
}
CallSheetDistribution {
String objectId PK
String callSheetId FK
String recipientEmail
String deliveryMethod
Date sentAt
String deliveryStatus
Date openedAt
Date createdAt
Date updatedAt
}
ClientProject {
String objectId PK
String clientName
String projectCode
String title
String status
String producerId FK
String callSheetId FK
Date createdAt
Date updatedAt
}
制作集成流程
验证、检查 CrewMember 可用性、创建 GearRental 日志和分发 CallSheet 记录的典型运行流程。
查看图表源
sequenceDiagram
participant User
participant App as Video Production Crew CRM App
participant Back4app as Back4app Cloud
User->>App: Login to the crew dashboard
App->>Back4app: POST /login
Back4app-->>App: Session token
User->>App: Check freelancer availability
App->>Back4app: GET /classes/AvailabilitySlot?include=crewMember
Back4app-->>App: AvailabilitySlot list
User->>App: Reserve gear for the shoot
App->>Back4app: POST /classes/GearRental
Back4app-->>App: GearRental objectId
User->>App: Send the call sheet
App->>Back4app: POST /classes/CallSheetDistribution
Back4app-->>App: Delivery status
App->>Back4app: Subscribe to CallSheet updates
Back4app-->>App: Live query events类字典
每个类在团队 CRM 模式中的全字段参考。
| 字段 | 类型 | 描述 | 必需 |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | 自动 |
| fullName | String | Crew member display name | |
| String | Crew member email address | ||
| phone | String | Crew member contact number | — |
| role | String | Crew role such as producer, camera operator, gaffer, sound mixer, or PA | |
| notes | String | Short crew notes for scheduling or on-set needs | — |
| createdAt | Date | Auto-generated creation timestamp | 自动 |
| updatedAt | Date | Auto-generated last-update timestamp | 自动 |
8 字段在 CrewMember 中
团队访问和权限
ACL 和 CLP 策略如何保护 CrewMember、GearItem、GearRental、CallSheet 和 CallSheetDistribution 记录。
团队档案控制
只有授权用户才能更新 CrewMember 资料或更改团队成员的联系信息。
装备和租赁完整性
只有协调员可以创建或编辑 GearItem 和 GearRental 行,从而保持资产标签和租赁日期历史的可靠。
范围调用表访问
限制 CallSheet 和 CallSheetDistribution 的读取权限,仅限于需要当前表格的制作团队、客户和供应商。
JSON 架构
原始 JSON 架构定义准备好以复制到 Back4app 或作为实现参考使用。
{
"classes": [
{
"className": "CrewMember",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"fullName": {
"type": "String",
"required": true
},
"email": {
"type": "String",
"required": true
},
"phone": {
"type": "String",
"required": false
},
"role": {
"type": "String",
"required": true
},
"notes": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "AvailabilitySlot",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"crewMember": {
"type": "Pointer",
"required": true,
"targetClass": "CrewMember"
},
"date": {
"type": "Date",
"required": true
},
"startTime": {
"type": "String",
"required": true
},
"endTime": {
"type": "String",
"required": true
},
"status": {
"type": "String",
"required": true
},
"location": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "GearItem",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"assetTag": {
"type": "String",
"required": true
},
"name": {
"type": "String",
"required": true
},
"category": {
"type": "String",
"required": true
},
"condition": {
"type": "String",
"required": true
},
"isAvailable": {
"type": "Boolean",
"required": true
},
"location": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "GearRental",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"gearItem": {
"type": "Pointer",
"required": true,
"targetClass": "GearItem"
},
"checkedOutBy": {
"type": "Pointer",
"required": true,
"targetClass": "CrewMember"
},
"rentalDate": {
"type": "Date",
"required": true
},
"returnDueDate": {
"type": "Date",
"required": true
},
"returnedAt": {
"type": "Date",
"required": false
},
"status": {
"type": "String",
"required": true
},
"conditionOut": {
"type": "String",
"required": false
},
"conditionIn": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "CallSheet",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"projectName": {
"type": "String",
"required": true
},
"shootDate": {
"type": "Date",
"required": true
},
"callTime": {
"type": "String",
"required": true
},
"location": {
"type": "String",
"required": true
},
"status": {
"type": "String",
"required": true
},
"notes": {
"type": "String",
"required": false
},
"createdBy": {
"type": "Pointer",
"required": true,
"targetClass": "CrewMember"
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "CallSheetDistribution",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"callSheet": {
"type": "Pointer",
"required": true,
"targetClass": "CallSheet"
},
"recipientEmail": {
"type": "String",
"required": true
},
"deliveryMethod": {
"type": "String",
"required": true
},
"sentAt": {
"type": "Date",
"required": true
},
"deliveryStatus": {
"type": "String",
"required": true
},
"openedAt": {
"type": "Date",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "ClientProject",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"clientName": {
"type": "String",
"required": true
},
"projectCode": {
"type": "String",
"required": true
},
"title": {
"type": "String",
"required": true
},
"status": {
"type": "String",
"required": true
},
"producer": {
"type": "Pointer",
"required": true,
"targetClass": "CrewMember"
},
"callSheet": {
"type": "Pointer",
"required": false,
"targetClass": "CallSheet"
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
}
]
}与 AI 代理一起构建
使用 Back4app AI 代理从此模板生成一个真实的视频制作团队 CRM 应用,包括前端、后端、认证,以及 CrewMember、GearItem 和 CallSheet 流程。
在 Back4app 上创建一个视频制作团队 CRM 应用后端,使用这个确切的架构和行为。 架构: 1. CrewMember:fullName(字符串,必填),email(字符串,必填),phone(字符串),role(字符串,必填),notes(字符串);objectId,createdAt,updatedAt(系统)。 2. AvailabilitySlot:crewMember(指向 CrewMember 的指针,必填),date(日期,必填),startTime(字符串,必填),endTime(字符串,必填),status(字符串,必填),location(字符串);objectId,createdAt,updatedAt(系统)。 3. GearItem:assetTag(字符串,必填),name(字符串,必填),category(字符串,必填),condition(字符串,必填),isAvailable(布尔值,必填),location(字符串);objectId,createdAt,updatedAt(系统)。 4. GearRental:gearItem(指向 GearItem 的指针,必填),checkedOutBy(指向 CrewMember 的指针,必填),rentalDate(日期,必填),returnDueDate(日期,必填),returnedAt(日期),status(字符串,必填),conditionOut(字符串),conditionIn(字符串);objectId,createdAt,updatedAt(系统)。 5. CallSheet:projectName(字符串,必填),shootDate(日期,必填),callTime(字符串,必填),location(字符串,必填),status(字符串,必填),notes(字符串),createdBy(指向 CrewMember 的指针,必填);objectId,createdAt,updatedAt(系统)。 6. CallSheetDistribution:callSheet(指向 CallSheet 的指针,必填),recipientEmail(字符串,必填),deliveryMethod(字符串,必填),sentAt(日期,必填),deliveryStatus(字符串,必填),openedAt(日期);objectId,createdAt,updatedAt(系统)。 7. ClientProject:clientName(字符串,必填),projectCode(字符串,必填),title(字符串,必填),status(字符串,必填),producer(指向 CrewMember 的指针,必填),callSheet(指向 CallSheet 的指针);objectId,createdAt,updatedAt(系统)。 安全性: - 只有授权的协调员可以创建/编辑 GearItem 和 GearRental。使用 Cloud Code 进行验证和通话表分发检查。 认证: - 注册、登录、登出。 行为: - 列出团队成员,检查可用时间段,创建设备租赁日志,创建通话表,并跟踪通话表分发。 交付: - 带有架构、ACL、CLP 的 Back4app 应用;用于团队名册、可用性、设备、租赁、通话表和分发的前端。
按下面的按钮以打开带有预填充模板提示的代理。
这是没有技术后缀的基本提示。您可以在之后调整生成的前端堆栈。
API沙盒
尝试对照该团队CRM架构使用REST和GraphQL端点。响应使用模拟数据,无需Back4app账户。
使用与此模板相同的架构。
选择你的技术栈
展开每个卡片以查看如何将 CrewMember、AvailabilitySlot 和 GearItem 与您选择的技术栈集成。
Flutter 团队 CRM 后端
React 团队 CRM 后端
React 原生 团队 CRM 后端
Next.js 团队 CRM 后端
JavaScript 团队 CRM 后端
Android 团队 CRM 后端
iOS 团队 CRM 后端
Vue 团队 CRM 后端
Angular 团队 CRM 后端
GraphQL 团队 CRM 后端
REST API 团队 CRM 后端
PHP 团队 CRM 后端
.NET 团队 CRM 后端
您在每项技术中获得的内容
每个技术栈都使用相同的 crew CRM 后端架构和 API 合同。
统一的生产操作数据结构
使用一个架构管理 CrewMember、AvailabilitySlot、GearItem、GearRental、CallSheet 和 CallSheetDistribution。
支持人员调度
在呼叫之前检查谁可用,并将联系信息集中在一个地方。
设备和租赁追踪
记录生产设备的借出时间、到期日期和归还状态。
呼叫单交付工作流
跟踪分发收据,以便每个部门都能获得当前的表格。
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分钟 | 用于通话表工作流程的 React 现代网页UI。 | 输入的SDK | 完整 | |
| 快速(5分钟)设置 | 用于生产运营的企业网络应用。 | 输入的SDK | 完整 | |
| 少于2分钟 | 灵活的GraphQL API用于团队CRM查询。 | GraphQL API | 完整 | |
| 快速(2分钟)配置 | REST API与团队工具的集成。 | REST API | 完整 | |
| 约3分钟 | 服务器端PHP后端用于生产工作流。 | REST API | 完整 | |
| ~3–7分钟 | .NET后端用于工作室操作。 | 输入的SDK | 完整 |
设置时间反映从项目启动到首次团队、设备或通话单查询的预期持续时间,使用此模板架构。
工作人员常见问题
关于使用此模板构建视频制作工作人员 CRM 后端的常见问题。