Modèle Backend du CRM des ressources d'ingénierie
Profils d'ingénieurs, Certifications, Allocations de projet et Suivi des heures facturables
Un backend CRM des ressources d'ingénierie prêt pour la production sur Back4app avec des classes Utilisateur, Profil d'ingénieur, Certification, Projet, Allocation et Heure facturable. Utilisez-le pour suivre la dotation, les références et le temps facturable sans reconstruire le backend.
Principaux enseignements sur le personnel
Ce modèle vous offre un backend CRM pour les ressources d'ingénierie avec des enregistrements de profils d'ingénieurs, de certification, de projet, d'attribution, et d'heures facturables afin que les coordinateurs puissent passer de la jonglerie de feuilles de calcul à un flux de travail structuré.
- Personnel conscient des profils d'ingénieurs — Modéliser les enregistrements d'utilisateur et de profil d'ingénieur afin que les décisions d'attribution puissent respecter la discipline, le statut d'emploi et le taux horaire.
- Vérifications d'expiration de certification — Suivez la certification pour chaque profil d'ingénieur afin que le personnel puisse être filtré par date d'émission, date d'expiration et statut avant la réservation.
- Planification de l'allocation de projet — Utilisez l'attribution pour relier le profil d'ingénieur au projet avec pourcentages d'attribution, rôle d'attribution, et plages de dates.
Qu'est-ce que le modèle CRM des ressources d'ingénierie ?
Lorsque les questions de CRM des ressources d'ingénierie sont sensibles, le contrôle d'accès fait partie du produit — pas une pensée après coup ajoutée à la fin. Le coût se manifeste dans les rappels et les crédits. Le flux de travail du CRM des ressources d'ingénierie ici est explicite dans les données : EngineerProfile, Certification, Project, Allocation, et BillableHour sur Back4app remplacent les notes ad-hoc par des progrès structurés et interrogeables. Le schéma couvre User (nom d'utilisateur, e-mail, mot de passe, rôle), EngineerProfile (utilisateur, nomComplet, discipline, statutEmploi), Certification (ingénieur, nomCertification, émetteur, statut), Project (codeProjet, nomProjet, nomClient, gestionnaireProjet), Allocation (ingénieur, projet, pourcentageAllocation), et BillableHour (ingénieur, projet, dateTravail, heures, statutFacturation) avec suivi d'authentification et d'attribution intégré. Connectez votre frontend préféré et expédiez plus rapidement.
Idéal pour :
Gestion des ressources d'ingénierie CRM : instantané backend
Les équipes CRM de ressources d'ingénierie gagnent lorsque le travail routinier est ennuyeux : dossiers prévisibles, propriété évidente et alertes avant que de petits problèmes ne deviennent des incidents.
Chaque carte technologique ici correspond au même modèle EngineerProfile, Certification et Project — choisissez une stack sans renégocier votre contrat backend.
Fonctionnalités de gestion des ressources d'ingénieurs
Chaque carte technologique dans ce hub utilise le même schéma de backend CRM pour les ressources d'ingénierie avec Utilisateur, ProfilIngénieur, Certification, Projet, Allocation et HeureFacturable.
Gestion du profil de l'ingénieur
EngineerProfile stocke fullName, discipline, employmentStatus et hourlyRate.
Suivi des certifications
Les liens de certification ingénieur, certificationName, issuedOn, expiresOn et status.
Planification de l'allocation de projet
L'allocation relie ingénieur, projet, allocationPercent, startDate et assignmentRole.
Capture d'heures facturables
Les enregistrements d'heures facturables comprennent l'ingénieur, le projet, la date de travail, les heures et le statut de facturation.
Pourquoi construire votre backend CRM de ressources d'ingénierie avec Back4app ?
Back4app vous fournit des primitives User, EngineerProfile, Project, Allocation et BillableHour afin que votre équipe puisse se concentrer sur les décisions de personnel et le reporting d'utilisation plutôt que sur la plomberie backend.
- •Contrôle de certification et d'attribution: Les classes EngineerProfile et Certification vous permettent de filtrer par discipline, employmentStatus et expiresOn avant qu'une allocation ne soit sauvegardée.
- •Gestion des ressources du projet et trace d'audit: Les enregistrements de projet et d'allocation capturent projectCode, projectManager, allocationPercent et assignmentRole pour chaque réservation.
- •Visibilité des heures facturables: Les lignes BillableHour lient les heures à l'ingénieur, au projet, à l'allocation et à submittedBy, ce qui maintient le reporting ancré dans le travail réel.
Construisez et ajustez rapidement les flux de ressources avec un contrat backend unique sur toutes les plateformes.
Avantages fondamentaux du CRM
Un backend CRM pour les ressources d'ingénierie qui aide les coordinateurs à agir plus rapidement sans perdre le contrôle des données de personnel.
Décisions de personnel plus rapides
Commencez à partir des classes Utilisateur et ProfilIngénieur au lieu de reconstruire les tables de liste et de qualifications depuis le début.
Risques d'allocation réduits
Utilisez des champs d'allocation comme pourcentageAllocation, dateDébut et dateFin pour repérer les affectations chevauchantes avant qu'elles n'atteignent les plannings de production.
Rapport d'heures facturables plus clair
BillableHour.hours et billingStatus maintiennent les feuilles de temps cohérentes pour les rapports et la facturation.
Accès en fonction des autorisations
Utilisez ACL/CLP afin que seul le personnel approuvé puisse modifier les enregistrements EngineerProfile, Project, Allocation et BillableHour.
Modèle de données réutilisable
Stockez les certifications, les affectations de projet et les journaux de travail dans un schéma qui peut évoluer avec de nouvelles disciplines ou bureaux.
Configuration backend assistée par IA
Générez rapidement une charpente backend et des conseils d'intégration avec une seule invite structurée.
Prêt à lancer votre application CRM de ressources d'ingénierie?
Laissez l'agent AI Back4app structurer votre backend CRM de ressources en ingénierie et générer le suivi des utilisateurs, des profils d'ingénieurs, des certifications, des projets, des allocations et des heures facturables à partir d'une seule demande.
Gratuit pour commencer — 50 demandes d'agent AI/mois, sans carte de crédit requise
Pile d'ingénierie
Tout est inclus dans ce modèle de backend CRM de ressources en ingénierie.
Diagramme ER d'ingénierie
Modèle de relation d'entité pour le schéma backend CRM des ressources d'ingénierie.
Schéma couvrant les comptes utilisateurs, les profils d'ingénieurs, les certifications, les projets, les allocations et les entrées d'heure facturable.
Voir la source du diagramme
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
}
Flux d'intégration de staffing
Flux d'exécution typique pour l'authentification, la recherche de la liste des profils d'ingénieurs, les vérifications de certification, la planification des allocations et l'entrée d'heure facturable.
Voir la source du flux de travail
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 eventsDictionnaire des champs
Référence complète au niveau des champs pour chaque classe dans le schéma CRM des ressources d'ingénierie.
| Champ | Type | Description | Requis |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | Auto |
| 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 | Auto |
| updatedAt | Date | Auto-generated last-update timestamp | Auto |
7 champs dans User
Sécurité des dossiers de personnel
Comment la stratégie ACL et CLP sécurise les comptes utilisateurs, les profils d'ingénieurs, les données de certification, les allocations de projet et les entrées d'heures facturables.
Contrôles de profil appartenant à l'utilisateur
Seul l'utilisateur connecté peut mettre à jour ou supprimer son propre profil ; les enregistrements d'ingénieurs restent limités au personnel autorisé.
Intégrité des certifications et allocations
Seuls les coordinateurs ou les administrateurs peuvent créer ou modifier des dossiers de certification et d'allocation ; utilisez le Cloud Code pour rejeter les affectations expirées ou conflictuelles.
Approbation des heures scopées
Limiter les modifications des heures facturables après approbation afin que les heures restent auditées pour les chefs de projet et les utilisateurs financiers.
Schéma JSON
Définition brute du schéma JSON prête à être copiée dans Back4app ou utilisée comme référence d'implémentation.
{
"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
}
}
}
]
}Créer avec l'Agent IA
Utilisez l'Agent IA Back4app pour générer une application CRM de ressources d'ingénierie réelle à partir de ce modèle, incluant le frontend, le backend, l'authentification, et les flux d'ingénieur, de certification, d'allocation, et d'heures facturables.
Créez un backend d'application CRM de ressources d'ingénierie sur Back4app avec ce schéma et ce comportement exact. Schéma: 1. Utilisateur (utilisez Back4app intégré): objectId, nom d'utilisateur (String, requis), e-mail (String, requis), mot de passe (String, requis), rôle (String, requis), créé le, mis à jour le. 2. ProfilIngénieur: objectId, utilisateur (Pointer<User>, requis), nom complet (String, requis), discipline (String, requis), statut d'emploi (String, requis), lieu principal (String, optionnel), tarif horaire (Number, optionnel), créé le, mis à jour le. 3. Certification: objectId, ingénieur (Pointer<EngineerProfile>, requis), nom de la certification (String, requis), émetteur (String, requis), numéro de certification (String, optionnel), date d'émission (Date, requise), date d'expiration (Date, optionnelle), statut (String, requis), url du document (String, optionnel), créé le, mis à jour le. 4. Projet: objectId, code du projet (String, requis), nom du projet (String, requis), nom du client (String, requis), statut (String, requis), date de début (Date, optionnelle), date de fin (Date, optionnelle), chef de projet (Pointer<User>, requis), discipline requise (String, optionnelle), créé le, mis à jour le. 5. Allocation: objectId, ingénieur (Pointer<EngineerProfile>, requis), projet (Pointer<Project>, requis), pourcentage d'allocation (Number, requis), date de début (Date, requise), date de fin (Date, optionnelle), rôle d'affectation (String, requis), statut (String, requis), notes (String, optionnelles), créé le, mis à jour le. 6. HeureFacturable: objectId, ingénieur (Pointer<EngineerProfile>, requis), projet (Pointer<Project>, requis), allocation (Pointer<Allocation>, optionnelle), date de travail (Date, requise), heures (Number, requis), code de tâche (String, optionnel), statut de facturation (String, requis), soumis par (Pointer<User>, requis), notes (String, optionnelles), créé le, mis à jour le. Sécurité: - Uniquement l'utilisateur connecté peut mettre à jour/supprimer son propre profil. - Seuls les coordinateurs ou les administrateurs peuvent éditer la Certification et l'Allocation. - Les chefs de projet peuvent lire le personnel du projet et approuver ou rejeter les lignes d'HeureFacturable pour leurs projets. - Les ingénieurs peuvent visualiser leur propre ProfilIngénieur, allocations, et certifications, et soumettre leurs propres entrées d'HeureFacturable. - Utilisez des ACL et des CLP afin que les ingénieurs ne modifient pas les enregistrements de Certification ou d'HeureFacturable d'un autre ingénieur. Comportement: - Authentification et accès basé sur la session. - Lister les ingénieurs avec discipline et statut d'emploi. - Suivre les certifications qui sont valides ou en voie d'expiration. - Assigner des ingénieurs aux projets avec pourcentage d'allocation et plages de dates. - Enregistrer les heures facturables par date de travail, heures, code de tâche, et statut de facturation. Livrer: - Configuration de l'application Back4app, schéma, permissions, et échantillons de workflows pour le personnel, le suivi des certificats, et la capture de temps.
Appuyez sur le bouton ci-dessous pour ouvrir l'Agent avec cette invite de modèle pré-remplie.
Voici l'invite de base sans suffixe technologique. Vous pouvez adapter la pile frontend générée par la suite.
Sandbox API
Testez les points de terminaison REST et GraphQL contre le schéma de ressources CRM d'ingénierie. Les réponses utilisent des données fictives et ne nécessitent pas de compte Back4app.
Utilise le même schéma que ce modèle.
Choisissez votre technologie
Développez chaque carte pour voir comment intégrer EngineerProfile, Certification et Project avec votre pile choisie.
Flutter Ressource d'ingénierie CRM Backend
React Ressource d'ingénierie CRM Backend
React Natifs Ressource d'ingénierie CRM Backend
Next.js Ressource d'ingénierie CRM Backend
JavaScript Ressource d'ingénierie CRM Backend
Android Ressource d'ingénierie CRM Backend
iOS Ressource d'ingénierie CRM Backend
Vue Ressource d'ingénierie CRM Backend
Angular Ressource d'ingénierie CRM Backend
GraphQL Ressource d'ingénierie CRM Backend
REST API Ressource d'ingénierie CRM Backend
PHP Ressource d'ingénierie CRM Backend
.NET Ressource d'ingénierie CRM Backend
Ce que vous obtenez avec chaque technologie
Chaque pile utilise le même schéma de backend CRM des ressources d'ingénierie et des contrats d'API.
Données unifiées de l'effectif d'ingénierie
Gérez les enregistrements Utilisateur, ProfilIngénieur, Certification, Projet, Allocation et HeureFacturable avec un schéma cohérent.
Personnel sensible aux certifications
filtre par discipline et date d'expiration avant d'assigner des ingénieurs au travail de projet.
Suivi des heures facturables pour les finances
Capturez les lignes HeureFacturable pour soutenir les heures approuvées et les rapports d'utilisation.
Règles d'attribution pour les coordinateurs
Définissez qui peut créer des missions, changer des dates ou approuver des heures.
Comparaison du cadre CRM d'ingénierie
Comparez la vitesse de configuration, le style SDK et le support de l'IA pour toutes les technologies prises en charge.
| Cadre | Temps de configuration | Avantage du CRM d'ingénierie | Type de SDK | Support AI |
|---|---|---|---|---|
| Environ 5 minutes | Base de code unique pour la liste des ingénieurs et l'allocation sur mobile et web. | SDK typé | Complet | |
| Moins de 5 minutes | Tableau de bord web rapide pour la planification des ressources d'ingénierie. | SDK tapé | Complet | |
| ~3–7 min | Application mobile multiplateforme pour le staffing et l'entrée de temps. | SDK tapé | Complet | |
| Configuration rapide (5 min) | Application web rendue côté serveur pour les coordinateurs en ingénierie. | SDK tapé | Complet | |
| ~3–5 min | Intégration web légère pour les flux de travail CRM. | SDK tapé | Complet | |
| Environ 5 min | Application Android native pour l'ingénierie et la planification de projets. | SDK typé | Complet | |
| Moins de 5 minutes | Application iOS native pour les équipes d'ingénierie sur le terrain. | SDK typé | Complet | |
| ~3–7 min | Interface web Reactive pour la révision des certifications et des allocations. | SDK typé | Complet | |
| Mise en place rapide (5 min) | Application web d'entreprise pour la gestion des ressources. | SDK tapé | Complet | |
| Moins de 2 min | API GraphQL flexible pour les données d'ingénierie et d'allocation imbriquées. | API GraphQL | Complet | |
| Mise en place rapide (2 min) | Intégration REST API pour les flux de travail de personnel. | REST API | Complet | |
| ~3 min | Backend __MARQUE0__ côté serveur pour l'automatisation CRM. | __MARQUE0__ | Complet | |
| ~3–7 min | Backend __MARQUE0__ pour la planification des ressources. | SDK Typé | Complet |
Le temps de configuration reflète la durée prévue depuis le démarrage du projet jusqu'à la première requête d'ingénieur ou d'allocation en utilisant ce schéma de modèle.
Questions sur le personnel
Questions courantes sur la création d'un backend CRM de ressources ingénierie avec ce modèle.
Prêt à construire votre application CRM de ressources d'ingénierie ?
Commencez votre projet CRM de ressources d'ingénierie en quelques minutes. Aucune carte de crédit requise.