엔지니어링 리소스 CRM 백엔드 템플릿
엔지니어 프로필, 인증, 프로젝트 할당 및 청구 가능 시간 추적
생산 준비 완료된 엔지니어링 리소스 CRM 백엔드가 Back4app에 있으며 사용자, 엔지니어 프로필, 인증, 프로젝트, 할당 및 청구 가능 시간 클래스가 포함되어 있습니다. 백엔드를 재구성하지 않고도 인력 배치, 자격 증명 및 청구 가능 시간을 추적하는 데 사용하세요.
주요 직원 배치 요점
이 템플릿은 엔지니어 프로필, 인증, 프로젝트, 할당 및 청구 가능 시간 기록을 포함한 엔지니어링 자원 CRM 백엔드를 제공하여 조정자들이 스프레드시트 간의 조정을 넘어 구조화된 워크플로로 이동할 수 있도록 합니다.
- 엔지니어 프로필 인식 직원 배치 — 모델 사용자 및 엔지니어 프로필 기록이 할당 결정 시 분야, 고용 상태 및 시간당 요금에 대한 존중을 지킬 수 있도록 합니다.
- 인증 만료 확인 — 각 엔지니어 프로필에 대해 인증을 추적하여 직원이 예약하기 전 발급 날짜, 만료 날짜 및 상태에 따라 선별될 수 있도록 합니다.
- 프로젝트 할당 계획 — 할당을 사용하여 엔지니어 프로필을 프로젝트에 연결하고 할당 백분율, 할당 역할 및 날짜 범위를 설정합니다.
엔지니어링 리소스 CRM 템플릿이란 무엇인가요?
엔지니어링 리소스 CRM 문제가 민감할 때, 액세스 제어는 제품의 일부입니다. 최종에 붙여넣은 후행 작업이 아닙니다. 비용은 콜백 및 크레디트에서 나타납니다. 여기 엔지니어링 리소스 CRM 워크플로우는 데이터에서 명확하게 표현됩니다: EngineerProfile, Certification, Project, Allocation 및 BillableHour는 Back4app에서 임시 노트를 구조화되고 쿼리 가능한 진행으로 대체합니다. 스키마는 User (사용자 이름, 이메일, 비밀번호, 역할), EngineerProfile (사용자, 풀네임, 분야, 고용 상태), Certification (엔지니어, 인증 이름, 발급 기관, 상태), Project (프로젝트 코드, 프로젝트 이름, 클라이언트 이름, 프로젝트 관리자), Allocation (엔지니어, 프로젝트, 할당 비율), BillableHour (엔지니어, 프로젝트, 작업 날짜, 시간, 청구 상태)로 구성되며, 인증 및 할당 추적이 내장되어 있습니다. 선호하는 프론트엔드와 연결하고 더 빠르게 발송하세요.
최고의 용도:
엔지니어링 자원 CRM: 백엔드 스냅샷
엔지니어링 자원 CRM 팀은 일상적인 작업이 지루할 때 이깁니다: 예측 가능한 기록, 명확한 소유권 및 작은 문제가 사건으로 발전하기 전에 알림이 제공됩니다.
여기 있는 모든 기술 카드들은 동일한 EngineerProfile, Certification 및 Project 모델에 매핑됩니다 - 백엔드 계약을 재협상하지 않고 스택을 선택하십시오.
엔지니어 직원 배치 기능
이 허브의 모든 기술 카드들은 사용자, 엔지니어 프로필, 인증, 프로젝트, 할당 및 청구 가능 시간을 포함한 동일한 엔지니어링 리소스 CRM 백엔드 스키마를 사용합니다.
엔지니어 프로필 관리
EngineerProfile은 fullName, discipline, employmentStatus 및 hourlyRate를 저장합니다.
자격증 추적
자격증 링크 엔지니어, certificationName, issuedOn, expiresOn, 및 status.
프로젝트 할당 계획
할당은 엔지니어, 프로젝트, allocationPercent, startDate, 및 assignmentRole을 연결합니다.
청구 가능 시간 캡처
청구 가능 시간은 엔지니어, 프로젝트, 작업 일자, 시간 및 청구 상태를 기록합니다.
왜 Back4app로 엔지니어링 자원 CRM 백엔드를 구축해야 합니까?
Back4app는 사용자, EngineerProfile, Project, Allocation 및 BillableHour 기본 요소를 제공하여 귀하의 팀이 백엔드 배관 대신 인력 결정 및 활용 보고에 집중할 수 있도록 합니다.
- •인증 및 할당 제어: EngineerProfile 및 Certification 클래스는 Allocation이 저장되기 전에 분야, employmentStatus 및 expiresOn으로 필터링할 수 있도록 합니다.
- •프로젝트 직원 배치 및 감사 추적: 프로젝트 및 할당 기록은 projectCode, projectManager, allocationPercent, assignmentRole을 각 예약에 대해 캡처합니다.
- •청구 가능한 시간 가시성: BillableHour 행은 시간을 엔지니어, 프로젝트, 할당 및 제출자와 연결하여 보고서가 실제 작업에 기반을 두도록 유지합니다.
모든 플랫폼에서 하나의 백엔드 계약으로 직원 흐름을 신속하게 구축하고 조정하세요.
핵심 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, 사용자 (포인터<사용자>, 필수), 전체 이름 (문자열, 필수), 분야 (문자열, 필수), 고용 상태 (문자열, 필수), 주요 위치 (문자열, 선택적), 시간당 요금 (숫자, 선택적), 생성일, 수정일. 3. 인증서: objectId, 엔지니어 (포인터<엔지니어 프로필>, 필수), 인증서 이름 (문자열, 필수), 발급기관 (문자열, 필수), 인증서 번호 (문자열, 선택적), 발급일 (날짜, 필수), 만료일 (날짜, 선택적), 상태 (문자열, 필수), 문서 URL (문자열, 선택적), 생성일, 수정일. 4. 프로젝트: objectId, 프로젝트 코드 (문자열, 필수), 프로젝트 이름 (문자열, 필수), 클라이언트 이름 (문자열, 필수), 상태 (문자열, 필수), 시작일 (날짜, 선택적), 종료일 (날짜, 선택적), 프로젝트 관리자 (포인터<사용자>, 필수), 필요한 분야 (문자열, 선택적), 생성일, 수정일. 5. 할당: objectId, 엔지니어 (포인터<엔지니어 프로필>, 필수), 프로젝트 (포인터<프로젝트>, 필수), 할당 비율 (숫자, 필수), 시작일 (날짜, 필수), 종료일 (날짜, 선택적), 할당 역할 (문자열, 필수), 상태 (문자열, 필수), 메모 (문자열, 선택적), 생성일, 수정일. 6. 청구 가능한 시간: objectId, 엔지니어 (포인터<엔지니어 프로필>, 필수), 프로젝트 (포인터<프로젝트>, 필수), 할당 (포인터<할당>, 선택적), 작업일 (날짜, 필수), 시간 (숫자, 필수), 작업 코드 (문자열, 선택적), 청구 상태 (문자열, 필수), 제출자 (포인터<사용자>, 필수), 메모 (문자열, 선택적), 생성일, 수정일. 보안: - 인증된 사용자만 자신의 프로필을 업데이트/삭제할 수 있습니다. - 관리자 또는 조정자만 인증서 및 할당을 편집할 수 있습니다. - 프로젝트 관리자는 프로젝트의 인력 배정을 읽고 청구 가능한 시간 행을 승인하거나 거부할 수 있습니다. - 엔지니어는 자신의 엔지니어 프로필, 할당 및 인증서를 보고 자신의 청구 가능한 시간 항목을 제출할 수 있습니다. - ACL 및 CLP를 사용하여 엔지니어가 다른 엔지니어의 인증서나 청구 가능한 시간 기록을 수정하지 않도록 합니다. 동작: - 로그인 및 세션 기반 접근. - 분야 및 고용 상태에 따라 엔지니어 목록 작성. - 유효하거나 만료가 임박한 인증서 추적. - 엔지니어를 할당 비율과 날짜 범위로 프로젝트에 배정. - 작업일, 시간, 작업 코드 및 청구 상태로 청구 가능한 시간 기록. 전달: - Back4app 앱 구성, 스키마, 권한 및 인력 배정, 자격 추적 및 시간 기록을 위한 샘플 워크플로우.
아래 버튼을 눌러 이 템플릿 프롬프트가 미리 채워진 상태로 에이전트를 엽니다.
이것은 기술 접미사가 없는 기본 프롬프트입니다. 생성된 프론트엔드 스택은 이후에 조정할 수 있습니다.
API 샌드박스
엔지니어링 리소스 CRM 스키마에 대해 REST 및 GraphQL 엔드포인트를 시도해 보세요. 응답은 모형 데이터를 사용하며 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분 | 인증 및 할당 검토를 위한 React 웹 UI입니다. | 타입된 SDK | 전체 | |
| 빠른 (5분) 설정 | 자원 관리용 기업 웹 앱입니다. | 타입된 SDK | 전체 | |
| 2분 이내 | 중첩된 엔지니어 및 할당 데이터에 대한 유연한 GraphQL API입니다. | GraphQL API | 전체 | |
| 빠른 (2분) 설정 | 인력 배치를 위한 REST API 통합입니다. | REST API | 전체 | |
| ~3분 | 서버 측 __브랜드0__ 백엔드로 CRM 자동화합니다. | __브랜드0__ | 전체 | |
| ~3–7 분 | 리소스 예약을 위한 __브랜드0__ 백엔드입니다. | 타입된 SDK | 전체 |
설정 시간은 이 템플릿 스키마를 사용하여 프로젝트 부트스트랩부터 첫 번째 엔지니어 또는 배치 쿼리까지의 예상 기간을 반영합니다.
인력 관련 질문
이 템플릿을 사용하여 엔지니어링 리소스 CRM 백엔드를 구축하는 것에 대한 일반적인 질문입니다.