工程資源 CRM 後端範本
工程師檔案、認證、專案分配及可計費小時跟蹤
一個可投入生產的工程資源 CRM 後端在 Back4app 上,包含用戶、工程師檔案、認證、專案、分配和可計費小時類別。使用它來跟蹤人力配置、憑證和可計費時間,無需重建後端。
關鍵人員招聘要點
此模板為您提供一個擁有 EngineerProfile、認證、項目、分配和可計費工時記錄的工程資源 CRM 後端,以便協調員可以從電子表格的繁瑣操作轉向結構化的工作流程。
- 了解 EngineerProfile 的人員配置 — 建模用戶和 EngineerProfile 記錄,以便任務決策可以尊重學科、就業狀態和時薪。
- 認證過期檢查 — 根據每個 EngineerProfile 跟踪認證,以便在預訂之前,員工可以根據發佈日期、到期日期和狀態進行篩選。
- 項目分配規劃 — 使用分配將 EngineerProfile 連接到項目,包含分配百分比、任務角色和日期範圍。
工程資源CRM模板是什麼?
當工程資源CRM事務敏感時,存取控制是產品的一部分—而不是最後附加的考慮。成本體現在回調和信貸上。這裡的工程資源CRM工作流程在數據上是明確的:在 Back4app 上用 EngineerProfile、Certification、Project、Allocation 和 BillableHour 替換臨時筆記,以結構化且可查詢的進展。模式涵蓋用戶 (用戶名、電子郵件、密碼、角色)、EngineerProfile (用戶、全名、學科、就業狀態)、Certification (工程師、認證名稱、發證機構、狀態)、Project (項目代碼、項目名稱、客戶名稱、項目經理)、Allocation (工程師、項目、分配百分比) 和 BillableHour (工程師、項目、工作日期、工時、計費狀態),其中內置了身份驗證和分配跟蹤。連接您首選的前端,並加速交付。
最佳適用於:
工程資源 CRM:後端快照
工程資源 CRM 團隊在例行工作無趣時會獲勝:可預測的記錄、明顯的所有權,以及在小問題變成事故之前的警報。
這裡的每個技術卡片都映射到相同的 EngineerProfile、Certification 和 Project 模型——在不重新談判您的後端合約的情況下選擇技術堆疊。
工程師人員配置功能
此中心中的每個技術卡片都使用相同的工程資源 CRM 後端架構,包含用戶、工程師檔案、認證、項目、分配和計費小時。
工程師檔案管理
EngineerProfile 存儲 fullName、discipline、employmentStatus 和 hourlyRate。
證書追蹤
證書鏈接工程師、證書名稱、發佈日期、到期日期和狀態。
項目分配規劃
分配連接工程師、項目、分配百分比、開始日期和任務角色。
計費小時捕獲
計費小時記錄工程師、項目、工作日期、小時數和計費狀態。
為什麼要使用 Back4app 構建您的工程資源 CRM 後端?
Back4app 為您提供 User、EngineerProfile、Project、Allocation 和 BillableHour 原始資料,讓您的團隊可以專注於人員配置決策和利用率報告,而不是後端的基礎設施。
- •認證和分配控制: EngineerProfile 和 Certification 類別允許您在 Allocation 被保存之前按專業、employmentStatus 和 expiresOn 進行篩選。
- •項目人員配置和審核記錄: 項目和分配記錄捕獲 projectCode、projectManager、allocationPercent 和 assignmentRole 每個預訂。
- •可收費小時的可見性: BillableHour 行將小時連接回工程師、項目、分配和 submittedBy,這使報告基於實際工作。
快速建立和調整所有平台的後端合約人員配置流程。
核心 CRM 優勢
一個工程資源 CRM 後端,幫助協調員更快地移動,而不失去對人員配置數據的控制。
更快的人員配置決策
從用戶和工程師檔案類別開始,而不是從頭重建名冊和證書表。
降低分配風險
利用分配字段,如 allocationPercent、startDate 和 endDate,來在它們達到生產計劃之前識別重疊的任務分配。
可計費小時報告
BillableHour.hours 和 billingStatus 使工時表在報告和開票時保持一致。
有權限的訪問
使用 ACL/CLP 以便只有獲准的工作人員可以編輯 EngineerProfile、Project、Allocation 和 BillableHour 記錄。
可重複數據模型
將認證、項目分配和工作日誌存儲在一個可以隨著新學科或辦公室增長的模式中。
AI 助力的後端設置
使用一個結構化提示快速生成後端骨架和集成指導。
準備好啟動你的工程資源 CRM 應用程式了嗎?
讓 Back4app AI 代理為您的工程資源 CRM 後端搭建結構,並從一個提示中生成用戶、工程師檔案、認證、項目、分配和可計費小時的追蹤。
免費開始 — 每月 50 個 AI 代理提示,不需要信用卡
工程堆疊
此工程資源 CRM 後端模板包含的所有內容。
工程 ER 圖
工程資源 CRM 後端架構的實體關係模型。
涵蓋用戶帳戶、工程師檔案、認證、項目、分配和可計費小時條目的架構。
查看圖表來源
erDiagram
User ||--o{ EngineerProfile : "linked account"
EngineerProfile ||--o{ Certification : "holds"
User ||--o{ Project : "project manager"
EngineerProfile ||--o{ Allocation : "assigned"
Project ||--o{ Allocation : "receives"
EngineerProfile ||--o{ BillableHour : "logs"
Project ||--o{ BillableHour : "charged to"
Allocation ||--o{ BillableHour : "context"
User ||--o{ BillableHour : "submitted by"
User {
String objectId PK
String username
String email
String password
String role
Date createdAt
Date updatedAt
}
EngineerProfile {
String objectId PK
String userId FK
String fullName
String discipline
String employmentStatus
String primaryLocation
Number hourlyRate
Date createdAt
Date updatedAt
}
Certification {
String objectId PK
String engineerId FK
String certificationName
String issuer
String certificationNumber
Date issuedOn
Date expiresOn
String status
String documentUrl
Date createdAt
Date updatedAt
}
Project {
String objectId PK
String projectCode
String projectName
String clientName
String status
Date startDate
Date endDate
String projectManagerId FK
String requiredDiscipline
Date createdAt
Date updatedAt
}
Allocation {
String objectId PK
String engineerId FK
String projectId FK
Number allocationPercent
Date startDate
Date endDate
String assignmentRole
String status
String notes
Date createdAt
Date updatedAt
}
BillableHour {
String objectId PK
String engineerId FK
String projectId FK
String allocationId FK
Date workDate
Number hours
String taskCode
String billingStatus
String submittedById FK
String notes
Date createdAt
Date updatedAt
}
人力資源整合流程
授權、工程師檔案名單查詢、認證檢查、分配計劃和可計費小時條目的典型運行流程。
查看工作流程源
sequenceDiagram
participant User
participant App as Engineering Firm Resource CRM App
participant Back4app as Back4app Cloud
User->>App: Sign in to review staffing and time entries
App->>Back4app: POST /login
Back4app-->>App: Session token
User->>App: Open engineer roster
App->>Back4app: GET /classes/EngineerProfile?include=user&order=fullName
Back4app-->>App: EngineerProfile rows
User->>App: Check expiring credentials
App->>Back4app: GET /classes/Certification?where={"status":"Expiring"}
Back4app-->>App: Certification list
User->>App: Assign engineer to project
App->>Back4app: POST /classes/Allocation
Back4app-->>App: Allocation objectId
User->>App: Submit billable hours
App->>Back4app: POST /classes/BillableHour
Back4app-->>App: BillableHour objectId
App->>Back4app: Subscribe to allocation and hour updates
Back4app-->>App: Live query events字段字典
每個類別在工程資源 CRM 架構中的完整字段級別參考。
| 字段 | 類型 | 描述 | 必需 |
|---|---|---|---|
| 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., administrator, coordinator, engineer, clientLead) | |
| createdAt | Date | Auto-generated creation timestamp | 自動 |
| updatedAt | Date | Auto-generated last-update timestamp | 自動 |
7 字段在 User 中
人事記錄的安全性
ACL 和 CLP 策略如何保護用戶帳號、工程師檔案、認證資料、項目分配及可計費工時的條目。
用戶擁有的檔案控制
只有已登入的用戶可以更新或刪除自己的檔案;工程師記錄僅限授權人員查看。
認證和分配的完整性
只有協調者或管理員可以創建或修改認證和分配記錄;使用 Cloud Code 來拒絕過期或衝突的分配。
範圍內的工時批准
在批准後限制可計費工時的編輯,以便工時對項目經理和財務人員保持可審計性。
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": "EngineerProfile",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"user": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"fullName": {
"type": "String",
"required": true
},
"discipline": {
"type": "String",
"required": true
},
"employmentStatus": {
"type": "String",
"required": true
},
"primaryLocation": {
"type": "String",
"required": false
},
"hourlyRate": {
"type": "Number",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "Certification",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"engineer": {
"type": "Pointer",
"required": true,
"targetClass": "EngineerProfile"
},
"certificationName": {
"type": "String",
"required": true
},
"issuer": {
"type": "String",
"required": true
},
"certificationNumber": {
"type": "String",
"required": false
},
"issuedOn": {
"type": "Date",
"required": true
},
"expiresOn": {
"type": "Date",
"required": false
},
"status": {
"type": "String",
"required": true
},
"documentUrl": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "Project",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"projectCode": {
"type": "String",
"required": true
},
"projectName": {
"type": "String",
"required": true
},
"clientName": {
"type": "String",
"required": true
},
"status": {
"type": "String",
"required": true
},
"startDate": {
"type": "Date",
"required": false
},
"endDate": {
"type": "Date",
"required": false
},
"projectManager": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"requiredDiscipline": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "Allocation",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"engineer": {
"type": "Pointer",
"required": true,
"targetClass": "EngineerProfile"
},
"project": {
"type": "Pointer",
"required": true,
"targetClass": "Project"
},
"allocationPercent": {
"type": "Number",
"required": true
},
"startDate": {
"type": "Date",
"required": true
},
"endDate": {
"type": "Date",
"required": false
},
"assignmentRole": {
"type": "String",
"required": true
},
"status": {
"type": "String",
"required": true
},
"notes": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "BillableHour",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"engineer": {
"type": "Pointer",
"required": true,
"targetClass": "EngineerProfile"
},
"project": {
"type": "Pointer",
"required": true,
"targetClass": "Project"
},
"allocation": {
"type": "Pointer",
"required": false,
"targetClass": "Allocation"
},
"workDate": {
"type": "Date",
"required": true
},
"hours": {
"type": "Number",
"required": true
},
"taskCode": {
"type": "String",
"required": false
},
"billingStatus": {
"type": "String",
"required": true
},
"submittedBy": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"notes": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
}
]
}使用 AI 代理建立
使用 Back4app AI 代理從此模板生成一個真正的工程資源 CRM 應用,包括前端、後端、身份驗證和工程、認證、分配以及計費小時流程。
在 Back4app 上根據此確切的結構和行為創建一個工程資源 CRM 應用後端。 結構: 1. 用戶(使用 Back4app 內建):objectId、用戶名(字符串,必需)、電子郵件(字符串,必需)、密碼(字符串,必需)、角色(字符串,必需)、創建時間、更新時間。 2. 工程師檔案:objectId、用戶(指向<User>,必需)、全名(字符串,必需)、學科(字符串,必需)、就業狀態(字符串,必需)、主要位置(字符串,可選)、每小時費率(數字,可選)、創建時間、更新時間。 3. 認證:objectId、工程師(指向<EngineerProfile>,必需)、認證名稱(字符串,必需)、發證機構(字符串,必需)、認證號(字符串,可選)、發證日期(日期,必需)、到期日期(日期,可選)、狀態(字符串,必需)、文檔網址(字符串,可選)、創建時間、更新時間。 4. 項目:objectId、項目代碼(字符串,必需)、項目名稱(字符串,必需)、客戶名稱(字符串,必需)、狀態(字符串,必需)、開始日期(日期,可選)、結束日期(日期,可選)、項目經理(指向<User>,必需)、所需學科(字符串,可選)、創建時間、更新時間。 5. 分配:objectId、工程師(指向<EngineerProfile>,必需)、項目(指向<Project>,必需)、分配百分比(數字,必需)、開始日期(日期,必需)、結束日期(日期,可選)、任務角色(字符串,必需)、狀態(字符串,必需)、備註(字符串,可選)、創建時間、更新時間。 6. 可計費小時:objectId、工程師(指向<EngineerProfile>,必需)、項目(指向<Project>,必需)、分配(指向<Allocation>,可選)、工作日期(日期,必需)、小時(數字,必需)、任務代碼(字符串,可選)、計費狀態(字符串,必需)、提交者(指向<User>,必需)、備註(字符串,可選)、創建時間、更新時間。 安全性: - 僅登錄的用戶可以更新/刪除自己的檔案。 - 僅協調員或管理員可以編輯認證和分配。 - 項目經理可以查看項目人員配置,並批准或拒絕其項目的可計費小時行。 - 工程師可以查看自己的工程師檔案、分配和認證,並提交自己的可計費小時條目。 - 使用 ACLs 和 CLPs,以便工程師不能編輯其他工程師的認證或可計費小時記錄。 行為: - 登錄和基於會話的訪問。 - 列出具備學科和就業狀態的工程師。 - 跟踪有效或即將到期的認證。 - 根據分配百分比和日期範圍為項目分配工程師。 - 通過工作日期、小時、任務代碼和計費狀態記錄可計費小時。 交付: - Back4app 應用配置、結構、權限以及人員配備、證書跟踪和時間捕捉的示範工作流。
按下下面的按鈕以使用此模板提示打開代理,該提示已預填。
這是沒有技術後綴的基本提示。您可以在後面調整生成的前端堆棧。
API 沙盒
嘗試 REST 和 GraphQL 端點與工程資源 CRM 架構。回應使用模擬數據,無需 Back4app 帳戶。
使用與此模板相同的架構。
選擇您的技術
展開每個卡片以查看如何將 EngineerProfile、Certification 和 Project 與您選擇的技術堆棧進行整合。
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 後端
每種技術帶給您的好處
每個堆疊使用相同的工程資源 CRM 後端架構和 API 合約。
統一的工程人員名單數據
使用一個一致的架構管理用戶、工程師檔案、認證、項目、分配和可計費小時記錄。
認證友好的員工配置
在分配工程師到項目工作之前,按學科和到期日期過濾。
財務的可計費小時追蹤
捕捉可計費小時記錄以支持批准的工時和利用率報告。
協調員的分配規則
定義誰可以創建分配、變更日期或批准工時。
工程 CRM 框架比較
比較所有支援技術的設置速度、SDK 風格和 AI 支持。
| 框架 | 設定時間 | 工程 CRM 利益 | SDK 類型 | AI 支援 |
|---|---|---|---|---|
| 大約 5 分鐘 | 針對行動和網頁的工程師名冊和分配的單一代碼庫。 | 類型化 SDK | 完整 | |
| 少於 5 分鐘 | 工程資源規劃的快速網頁儀表板。 | 輸入式SDK | 完整 | |
| 約3-7分鐘 | 跨平台移動應用程式,用於人員配置和時間輸入。 | 輸入式SDK | 完整 | |
| 快速(5分鐘)設置 | 為工程協調員提供的伺服器渲染網頁應用程式。 | 輸入式SDK | 完整 | |
| 約3-5分鐘 | 輕量級網頁整合,用於 CRM 工作流程。 | 輸入式SDK | 完整 | |
| 約 5 分鐘 | 針對工程和專案規劃的原生 Android 應用程式。 | 類型化 SDK | 完整 | |
| 少於 5 分鐘 | 針對現場工程團隊的原生 iOS 應用程式。 | 類型化 SDK | 完整 | |
| 約 3–7 分鐘 | Reactive 網頁 UI,用於認證和分配審查。 | 類型化 SDK | 完整 | |
| 快速 (5 分鐘) 設定 | 用於資源管理的企業網頁應用程式。 | 已輸入的 SDK | 完整 | |
| 少於 2 分鐘 | 靈活的 GraphQL API 用於嵌套工程師和分配數據。 | GraphQL API | 完整 | |
| 快速 (2 分鐘) 設定 | REST API 整合用於人員配置工作流程。 | REST API | 完整 | |
| 約 3 分鐘 | 伺服器端 __品牌0__ 後端 CRM 自動化。 | __品牌0__ | 完整 | |
| 約3–7分鐘 | __品牌0__ 資源調度後端。 | 類型化 SDK | 完整 |
設定時間反映從專案啟動到首次工程師或分配查詢使用此模板架構的預期持續時間。
人員配置問題
有關使用此模板構建工程資源 CRM 後端的常見問題。