CRM для инженерных ресурсов
Создано с AI Agent
CRM для инженерных ресурсов Backend

Шаблон Backend CRM для инженерных ресурсов
Профили инженеров, Сертификации, Распределение проектов и Учёт оплачиваемых часов

Производственная версия CRM для инженерных ресурсов backend на Back4app с классами User, EngineerProfile, Certification, Project, Allocation и BillableHour. Используйте его для отслеживания персонала, учётных данных и оплачиваемого времени без перестройки backend.

Ключевые выводы по найму

Этот шаблон предоставляет бэкенд CRM для инженерных ресурсов с записями EngineerProfile, Certification, Project, Allocation и BillableHour, чтобы координаторы могли перейти от juggling таблицами к структурированному рабочему процессу.

  1. Найм с учетом EngineerProfileМоделируйте записи Пользователя и EngineerProfile, чтобы решения по назначению могли учитывать дисциплину, состояние занятости и почасовую ставку.
  2. Проверка истечения сертификатовОтслеживайте сертификаты для каждого EngineerProfile, чтобы персонал можно было отфильтровать по дате выдачи, сроку действия и статусу перед бронированием.
  3. Планирование распределения проектаИспользуйте Allocation для соединения EngineerProfile с проектом, указав allocationPercent, assignmentRole и диапазоны дат.

Что такое шаблон CRM для инженерных ресурсов?

Когда вопросы CRM для инженерных ресурсов являются чувствительными, контроль доступа является частью продукта — не просто добавленной после мысли. Стоимость отражается в обратных вызовах и кредитах. Рабочий процесс CRM для инженерных ресурсов здесь явно представлен в данных: EngineerProfile, Certification, Project, Allocation и BillableHour на Back4app заменяют произвольные заметки на структурированный, запросимый прогресс. Схема включает User (имя пользователя, электронная почта, пароль, роль), EngineerProfile (пользователь, полное имя, дисциплина, статус занятости), Certification (инженер, название сертификации, выдавший, статус), Project (код проекта, название проекта, имя клиента, менеджер проекта), Allocation (инженер, проект, процент распределения) и BillableHour (инженер, проект, дата работы, часы, статус биллинга) с встроенным отслеживанием аутентификации и назначения. Подключите ваш предпочитаемый фронтенд и работайте быстрее.

Лучше всего для:

Панели управления по подбору инженерных кадровИнструменты распределения ресурсовСистемы отслеживания сертификацийПриложения для учета оплачиваемых часовЗапусков MVPКоманды выбирают BaaS для продуктов планирования ресурсов

CRM для инженерных ресурсов: снимок бэкенда

Команды CRM для инженерных ресурсов выигрывают, когда рутинная работа скучна: предсказуемые записи, ясная собственность и уведомления до того, как небольшие проблемы станут инцидентами.

Каждая карточка технологии здесь сопоставляется с одной и той же моделью EngineerProfile, Certification и Project — выберите стек без повторных переговоров о своем контракте на бэкенд.

Функции подбора персонала инженеров

Каждая карта технологии в этом хабе использует одну и ту же схему бэкенда CRM для инженерных ресурсов с User, EngineerProfile, Certification, Project, Allocation и BillableHour.

Управление профилем инженера

EngineerProfile хранит fullName, discipline, employmentStatus и hourlyRate.

Отслеживание сертификатов

Ссылки на сертификаты engineer, certificationName, issuedOn, expiresOn и статус.

Планирование распределения проекта

Распределение связывает engineer, project, allocationPercent, startDate и assignmentRole.

Фиксируемые часы

Записи BillableHour: инженер, проект, дата работы, часы и статус выставления счета.

Почему строить бэкенд вашего CRM для инженерных ресурсов с Back4app?

Back4app предоставляет вам примитивы User, EngineerProfile, Project, Allocation и BillableHour, чтобы ваша команда могла сосредоточиться на решениях по персоналу и отчетности по использованию вместо бэкенд-работы.

  • Контроль сертификации и назначения: Классы EngineerProfile и Certification позволяют вам фильтровать по дисциплине, статусу занятости и expiresOn до того, как Allocation будет сохранен.
  • Управление проектом и отслеживание изменений: Записи проекта и распределения фиксируют projectCode, projectManager, allocationPercent и assignmentRole для каждого бронирования.
  • Видимость оплачиваемых часов: Строки BillableHour связывают часы с инженером, проектом, распределением и submittedBy, что позволяет поддерживать отчетность на основе фактической работы.

Быстро создавайте и настраивайте потоки персонала с одним контрактом на бэкенде для всех платформ.

Основные преимущества CRM

Бэкенд CRM для инженерных ресурсов, который помогает кураторам действовать быстрее, не теряя контроля за данными о персонале.

Более быстрые решения по персоналу

Начинайте с классов User и EngineerProfile, а не создавайте таблицы списков и учетных данных заново.

Меньший риск перераспределения

Используйте поля Allocation, такие как allocationPercent, startDate и endDate, чтобы выявлять пересекающиеся назначения до того, как они попадут в производственные графики.

Отчетность по часовым затратам на чистку

BillableHour.hours и billingStatus обеспечивают согласованность табелей учета времени для отчетности и выставления счетов.

Доступ с учетом прав

Используйте ACL/CLP, чтобы только утвержденный персонал мог редактировать записи EngineerProfile, Project, Allocation и BillableHour.

Повторяемая модель данных

Храните сертификаты, назначения проектов и журналы работ в одной схеме, которая может расширяться новыми дисциплинами или офисами.

Настройка бэкенда с помощью ИИ

Создавайте быстро каркас бэкенда и рекомендации по интеграции с помощью одного структурированного запроса.

Готовы запустить ваше приложение CRM для инженерных ресурсов?

Позвольте AI-агенту Back4app создать ваш бэкенд CRM для инженерных ресурсов и сгенерировать отслеживание Пользователя, ПрофиляИнженера, Сертификации, Проекта, Распределения и ОплачиваемыхЧасов из одной подсказки.

Бесплатно для начала — 50 подсказок AI-агента в месяц, кредитная карта не требуется

Инженерный стек

Все включено в этот шаблон бэкенда CRM для инженерных ресурсов.

Фронтенд
13+ технологий
Бэкенд
Back4app
База данных
MongoDB
Аутентификация
Встроенная аутентификация + сессии
API
REST и GraphQL
В реальном времени
Live Queries

Инженерная ER-диаграмма

Модель взаимосвязей сущностей для схемы бэкенда CRM-ресурсов.

Просмотреть источник диаграммы
Mermaid
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
    }

Поток интеграции кадров

Типичный поток выполнения для авторизации, поиска списка профилей инженеров, проверки сертификатов, планирования распределения и записи оплачиваемых часов.

Просмотреть исходный код рабочего процесса
Mermaid
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 ресурсов инженерии.

ПолеТипОписаниеОбязательно
objectIdStringAuto-generated unique identifierАвто
usernameStringUser login name
emailStringUser email address
passwordStringHashed password (write-only)
roleStringRole of the user (e.g., administrator, coordinator, engineer, clientLead)
createdAtDateAuto-generated creation timestampАвто
updatedAtDateAuto-generated last-update timestampАвто

7 поля в User

Безопасность записей о персонале

Как стратегия ACL и CLP защищает пользовательские аккаунты, профили инженеров, данные о сертификации, распределение проектов и записи о billable hour.

Управление профилем пользователем

Только вошедший в систему пользователь может обновить или удалить свой собственный профиль; записи инженера остаются в пределах полномочий соответствующего персонала.

Целостность сертификации и распределения

Только координаторы или администраторы могут создавать или изменять записи о сертификации и распределении; используйте Cloud Code, чтобы отклонить истекшие или конфликтующие назначения.

Согласование часов

Ограничить редактирование BillableHour после согласования, чтобы часы оставались проверяемыми для менеджеров проектов и финансовых пользователей.

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": "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 для управления инженерными ресурсами из этого шаблона, включая фронтенд, бэкенд, авторизацию, а также потоки сертификации, распределения и billable hour.

Back4app AI Агент
Готовы строить
Создайте бэкенд приложения CRM для инженерных ресурсов на Back4app с этой точной схемой и поведением.

Схема:
1. Пользователь (использовать встроенный Back4app): objectId, имя пользователя (String, обязательно), email (String, обязательно), пароль (String, обязательно), роль (String, обязательно), createdAt, updatedAt.
2. ПрофильИнженера: objectId, пользователь (Pointer<User>, обязательно), полное имя (String, обязательно), дисциплина (String, обязательно), статус занятости (String, обязательно), основное местоположение (String, необязательно), почасовая ставка (Number, необязательно), createdAt, updatedAt.
3. Сертификация: objectId, инженер (Pointer<EngineerProfile>, обязательно), название сертификации (String, обязательно), выдавшая организация (String, обязательно), номер сертификации (String, необязательно), дата выдачи (Date, обязательно), дата окончания (Date, необязательно), статус (String, обязательно), ссылка на документ (String, необязательно), createdAt, updatedAt.
4. Проект: objectId, код проекта (String, обязательно), название проекта (String, обязательно), имя клиента (String, обязательно), статус (String, обязательно), дата начала (Date, необязательно), дата окончания (Date, необязательно), менеджер проекта (Pointer<User>, обязательно), требуемая дисциплина (String, необязательно), createdAt, updatedAt.
5. Распределение: objectId, инженер (Pointer<EngineerProfile>, обязательно), проект (Pointer<Project>, обязательно), процент распределения (Number, обязательно), дата начала (Date, обязательно), дата окончания (Date, необязательно), роль задания (String, обязательно), статус (String, обязательно), заметки (String, необязательно), createdAt, updatedAt.
6. BillableHour: objectId, инженер (Pointer<EngineerProfile>, обязательно), проект (Pointer<Project>, обязательно), распределение (Pointer<Allocation>, необязательно), дата работы (Date, обязательно), часы (Number, обязательно), код задачи (String, необязательно), статус выставления счетов (String, обязательно), submittedBy (Pointer<User>, обязательно), заметки (String, необязательны), createdAt, updatedAt.

Безопасность:
- Только вошедший в систему пользователь может обновлять/удалять собственный профиль.
- Только координаторы или администраторы могут редактировать Сертификации и Распределения.
- Менеджеры проектов могут просматривать распределение персонала проекта и одобрять или отклонять строки BillableHour для своих проектов.
- Инженеры могут просматривать свои собственные ПрофилиИнженеров, распределения и сертификации, а также подавать свои собственные записи BillableHour.
- Используйте ACL и CLP, чтобы инженеры не могли редактировать сертификацию или записи BillableHour других инженеров.

Поведение:
- Вход и доступ на основе сессий.
- Список инженеров с дисциплиной и статусом занятости.
- Отслеживание сертификаций, которые действительны или истекают.
- Назначение инженеров на проекты с процентом распределения и временными диапазонами.
- Запись billable hours по дате работы, часам, коду задачи и статусу выставления счетов.

Доставка:
- Конфигурация приложения Back4app, схема, разрешения и образцы рабочих процессов для подбора персонала, отслеживания удостоверений и учета времени.

Нажмите на кнопку ниже, чтобы открыть Агент с предварительно заполненным шаблоном.

Это базовый запрос без суффикса технологии. Вы можете адаптировать сгенерированный стек фронтенда позже.

Развертывание за минуты50 бесплатных подсказок в месяцКредитная карта не требуется

API песочница

Попробуйте REST и GraphQL конечные точки в ресурсной схеме CRM для инженеров. Ответы используют фиктивные данные и не требуют аккаунта Back4app.

Загрузка площадки…

Использует ту же схему, что и этот шаблон.

Выберите вашу технологию

Разверните каждую карточку, чтобы увидеть, как интегрировать EngineerProfile, Certification и Project с вашим выбранным стеком.

Flutter Инженерный ресурс CRM Backend

React Инженерный ресурс CRM Backend

React Native Инженерный ресурс CRM Backend

Next.js Инженерный ресурс CRM Backend

JavaScript Инженерный ресурс CRM Backend

Android Инженерный ресурс CRM Backend

iOS Инженерный ресурс CRM Backend

Vue Инженерный ресурс CRM Backend

Angular Инженерный ресурс CRM Backend

GraphQL Инженерный ресурс CRM Backend

REST API Инженерный ресурс CRM Backend

PHP Инженерный ресурс CRM Backend

.NET Инженерный ресурс CRM Backend

Что вы получаете с каждой технологией

Каждый стек использует одну и ту же схему бэкенда CRM и API контракты для инженерных ресурсов.

Единые данные о списке инженеров

Управляйте записями о пользователях, профилях инженеров, сертификатах, проектах, распределении и оплачиваемых часах с помощью одной единой схемы.

Набор кадров с учетом сертификатов

Фильтруйте по дисциплине и дате истечения перед назначением инженеров на проект.

Отслеживание оплачиваемых часов для финансов

Фиксируйте строки оплачиваемых часов для поддержки утвержденных часов и отчетности по использованию.

Правила распределения для координаторов

Определите, кто может создавать назначения, изменять даты или утверждать часы.

Сравнение CRM-фреймов для инженерии

Сравните скорость настройки, стиль SDK и поддержку ИИ во всех поддерживаемых технологиях.

ФреймворкВремя настройкиПреимущества CRM для инженеровТип SDKПоддержка ИИ
Около 5 минутЕдиная кодовая база для списка инженеров и распределения на мобильных и веб-платформах.Типизированный SDKПолный
Менее 5 минутБыстая веб панель для планирования инженерных ресурсов.Введите SDKПолный
~3–7 минКроссплатформенное мобильное приложение для набора персонала и ввода времени.Введите SDKПолный
Быстрая настройка (5 мин)Веб-приложение с серверной отрисовкой для координирующих инженеров.Введите SDKПолный
~3–5 минЛегкая веб-интеграция для рабочих процессов CRM.Введите SDKПолный
Около 5 минНативное приложение Android для проектирования и планирования.Типизированный SDKПолный
Менее 5 минутНативное приложение iOS для инженерных команд в поле.Типизированный SDKПолный
~3–7 минReactивый веб-интерфейс для проверки сертификации и распределения.Типизированный SDKПолный
Быстрая (5 мин) настройкаКорпоративное веб-приложение для управления ресурсами.Написанный SDKПолный
Менее 2 минГибкий GraphQL API для вложенных данных об инженерах и распределении.GraphQL APIПолный
Быстрая (2 мин) настройкаИнтеграция REST API для рабочих процессов по найму.REST APIПолный
~3 минСерверная часть PHP для автоматизации CRM.REST APIПолный
~3–7 мин.NET для планирования ресурсов.Типизированный SDKПолный

Время настройки отражает ожидаемую продолжительность от начала проекта до первого запроса инженера или распределения с использованием этой схемы шаблона.

Вопросы по персоналу

Общие вопросы о создании бэкэнда CRM для инженерных ресурсов с помощью этого шаблона.

Как командам CRM по инженерным ресурсам разделить обязанности, не допуская утечки данных между ролями?
Какие рабочие процессы CRM по инженерным ресурсам больше всего выигрывают от структурированных задач по сравнению с произвольными заметками?
Может ли этот уровень CRM по инженерным ресурсам расти с новыми типами дел и каналами приема?
Как мне загрузить инженеров и проекты с Flutter?
Как мне управлять распределением ресурсов с помощью Next.js Server Actions?
Может ли React Native кэшировать распределения и записи времени офлайн?
Как мне предотвратить назначение инженера с истекшей сертификацией?
Какой лучший способ отобразить рабочие часы на Android?

Доверяют разработчики по всему миру

Присоединяйтесь к командам, которые быстрее запускают продукты CRM для инженерных ресурсов с помощью шаблонов Back4app

G2 Users Love Us Badge

Готовы создать ваше приложение CRM для инженерных ресурсов?

Начните ваш проект CRM для инженерных ресурсов за считанные минуты. Кредитная карта не требуется.

Выберите технологию