Modèle de backend de journal de cas d'enquêteur privé
Dossiers de cas, articles de preuve et facturation
Un backend de journal de cas d'enquêteur privé prêt à la production sur Back4app avec les classes CaseFile, EvidenceItem, SurveillanceNote et BillingEntry. Suivez l'historique des cas, conservez les étiquettes de preuve et gardez la facturation liée au même dossier.
Points clés à retenir du journal des affaires
Ce modèle vous offre un backend de journal d'affaires pour enquêteurs privés avec des enregistrements CaseFile, EvidenceItem, SurveillanceNote et BillingEntry afin que le personnel puisse maintenir un dossier chronologique propre.
- Suivi des preuves au cas par cas — Modèle EvidenceItem avec des champs evidenceTag, evidenceType, storageUrl et isSealed pour chaque élément.
- Chronologie des notes de surveillance — Gardez les entrées SurveillanceNote liées à un CaseFile avec noteTime, location, summary et detail.
- Dossiers de facturation des clients — Utilisez BillingEntry pour capturer les heures, le taux, le montant, le type de travail et les approbations par CaseFile.
- Contrôle d'accès basé sur les rôles — Restreindre l'accès aux CaseFile, EvidenceItem et BillingEntry avec des règles ACL et CLP.
- Parité entre l'API web et mobile — Servir React, Flutter, Next.js et des applications natives à travers les mêmes points de terminaison REST et GraphQL.
Qu'est-ce que le modèle de journal des affaires de l'agent privé ?
Si l'accueil du journal des affaires de l'agent privé est désordonné, tout en aval souffre — une capture propre à la porte d'entrée fait économiser des heures de reconstruction plus tard. La clarté prime sur l'héroïsme. Ce modèle modélise CaseFile, EvidenceItem, SurveillanceNote et BillingEntry avec un accès basé sur les rôles sur Back4app afin que chaque membre de l'équipe du journal des affaires de l'agent privé voie la part du pipeline qu'il possède.
Idéal pour :
Ce que vous obtenez dans le modèle de journal de cas de l'enquêteur privé
Dans le journal de cas de l'enquêteur privé, les conversations les plus difficiles commencent par « quel numéro est officiel ? » — un signe que le backend n'est pas encore autoritaire.
Chaque carte technologique ici correspond au même modèle CaseFile, EvidenceItem et SurveillanceNote — choisissez une pile sans renégocier votre contrat de backend.
Fonctionnalités clés du journal de cas PI
Chaque carte technologique dans ce hub utilise le même schéma de backend de journal de cas avec Utilisateur, DossierDeCas, ÉlémentDePreuve, NoteDeSurveillance et EntréeDeFacturation.
Gestion des dossiers de cas
CaseFile stocke caseNumber, clientName, status, assignedInvestigator et billingRate.
Suivi des preuves
EvidenceItem est lié à CaseFile et capture evidenceTag, evidenceType, storageUrl et isSealed.
Notes de surveillance
SurveillanceNote stocke noteTime, location, résumé, détail et followUpNeeded pour chaque période de surveillance.
Entrées de facturation client
BillingEntry capture entryDate, heures, taux, montant, typeDeTravail et approuvéPar.
Pourquoi construire votre journal de cas PI avec Back4app ?
Back4app vous fournit les classes de données et les contrôles d'accès pour garder les dossiers de cas, les preuves, les notes et les entrées de facturation organisés pendant que l'équipe reste concentrée sur le travail sur le terrain.
- •CaseFile et EvidenceItem restent liés: Stockez chaque EvidenceItem contre un CaseFile afin que les photos, les reçus et les détails de la chaîne de custody restent attachés à la bonne enquête.
- •Les chronologies de SurveillanceNote sont plus faciles à lire: Un champ noteTime sur SurveillanceNote rend le journal de surveillance triable par heure d'observation plutôt que par devinette en texte libre.
- •BillingEntry correspond à l'enregistrement de l'enquête: Capturez les heures, le taux, le montant et le type de travail dans BillingEntry pour connecter le temps sur le terrain avec la facturation client.
Construisez le journal de cas une fois, puis réutilisez le même contrat backend sur le web, mobile et tableaux de bord d'enquêteur.
Avantages du journal de cas PI
Un backend de journal de cas qui garde les notes d'enquête et la facturation organisées depuis la première entrée.
Pistes d'évidence plus claires
Les enregistrements EvidenceItem préservent evidenceTag, evidenceType, storageUrl et collectedAt pour chaque élément.
Historique de surveillance lisible
Les entrées SurveillanceNote liées à un CaseFile vous donnent un enregistrement de terrain par ordre chronologique avec emplacement, résumé et détail.
Facturation qui suit le cas
BillingEntry conserve les heures, le taux, le montant et le type de travail liés au même CaseFile d'où provient le travail.
Contrôle d'accès pour les fichiers sensibles
Utilisez ACL et CLP afin que seuls les enquêteurs assignés puissent modifier un CaseFile ou ajouter des lignes EvidenceItem.
Accès multi-appareils aux journaux de cas
Les API REST et GraphQL permettent aux tableaux de bord web, aux applications de terrain mobiles et aux outils de facturation back-office de lire les mêmes données CaseFile.
Réutilisation rapide de schéma
Commencez avec Utilisateur, Dossier de cas, Élément de preuve, Note de surveillance, et Entrée de facturation au lieu de construire des enregistrements de cas champ par champ.
Prêt à lancer votre journal de cas d'enquêteur privé ?
Laissez l'agent AI Back4app structurer votre backend de journal de cas et générer des flux de Dossier de cas, Élément de preuve, Note de surveillance, et Entrée de facturation à partir d'une seule invite.
Gratuit pour commencer — 50 invites d'agent AI/mois, pas de carte de crédit requise
Stack technologique de journal de cas
Tout est inclus dans ce modèle de journal de cas d'enquêteur privé.
Diagramme ER de cas
Modèle de relation d'entité pour le schéma backend du journal de cas de l'enquêteur privé.
Schéma couvrant les utilisateurs, les fichiers de cas, les éléments de preuve, les notes de surveillance et les entrées de facturation.
Voir la source du diagramme
erDiagram
User ||--o{ CaseFile : "assignedInvestigator"
User ||--o{ EvidenceItem : "collectedBy"
User ||--o{ SurveillanceNote : "observer"
User ||--o{ BillingEntry : "approvedBy"
CaseFile ||--o{ EvidenceItem : "caseFile"
CaseFile ||--o{ SurveillanceNote : "caseFile"
CaseFile ||--o{ BillingEntry : "caseFile"
User {
String objectId PK
String username
String email
String password
String role
Date createdAt
Date updatedAt
}
CaseFile {
String objectId PK
String caseNumber
String clientName
String status
String assignedInvestigatorId FK
Number billingRate
Date openedAt
Date closedAt
Date createdAt
Date updatedAt
}
EvidenceItem {
String objectId PK
String caseFileId FK
String evidenceTag
String evidenceType
String storageUrl
String collectedById FK
Date collectedAt
String locationLabel
Boolean isSealed
Date createdAt
Date updatedAt
}
SurveillanceNote {
String objectId PK
String caseFileId FK
Date noteTime
String observerId FK
String location
String summary
String detail
Boolean followUpNeeded
Date createdAt
Date updatedAt
}
BillingEntry {
String objectId PK
String caseFileId FK
Date entryDate
Number hours
Number rate
Number amount
String workType
String approvedById FK
Date createdAt
Date updatedAt
}
Flux de synchronisation des cas
Flux d'exécution typique pour la connexion, le chargement des fichiers de cas, les téléchargements d'éléments de preuve, la création de notes de surveillance et la révision des entrées de facturation.
Voir la source du diagramme
sequenceDiagram
participant User
participant App as Private Investigator Case Log App
participant Back4app as Back4app Cloud
User->>App: Sign in to the case log
App->>Back4app: POST /login
Back4app-->>App: Session token
User->>App: Open today's CaseFile list
App->>Back4app: GET /classes/CaseFile?order=-openedAt
Back4app-->>App: CaseFile rows
User->>App: Add an EvidenceItem or SurveillanceNote
App->>Back4app: POST /classes/EvidenceItem or /classes/SurveillanceNote
Back4app-->>App: Saved objectId and timestamps
User->>App: Review BillingEntry totals for a CaseFile
App->>Back4app: GET /classes/BillingEntry?include=caseFile
Back4app-->>App: BillingEntry list
App->>Back4app: Live update case activity
Back4app-->>App: CaseFile, EvidenceItem, SurveillanceNote changesDictionnaire de champs
Référence complète au niveau des champs pour chaque classe dans le schéma du journal de cas des détectives privés.
| 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 | Staff role such as investigator, admin, or billing | |
| createdAt | Date | Auto-generated creation timestamp | Auto |
| updatedAt | Date | Auto-generated last-update timestamp | Auto |
7 champs dans User
Sécurité et autorisations des cas
Comment la stratégie ACL et CLP sécurise les utilisateurs, les dossiers de cas, les éléments de preuve, les notes et les entrées de facturation.
Contrôles de l'enquêteur assigné
Seul l'utilisateur assigné ou le propriétaire du cas peut mettre à jour un dossier de cas, ajouter des preuves ou réviser les détails de facturation.
Vérifications de l'intégrité des preuves
Utilisez la validation Cloud Code afin que les lignes EvidenceItem nécessitent un pointeur CaseFile, un storageUrl et une traçabilité collectedBy.
Accès en lecture limité
Restreindre les notes de cas et les entrées de facturation au personnel travaillant sur ce dossier ; les entrées sensibles ne devraient pas être exposées largement.
Schéma JSON
Définition de schéma JSON brut 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": "CaseFile",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"caseNumber": {
"type": "String",
"required": true
},
"clientName": {
"type": "String",
"required": true
},
"status": {
"type": "String",
"required": true
},
"assignedInvestigator": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"billingRate": {
"type": "Number",
"required": true
},
"openedAt": {
"type": "Date",
"required": true
},
"closedAt": {
"type": "Date",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "EvidenceItem",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"caseFile": {
"type": "Pointer",
"required": true,
"targetClass": "CaseFile"
},
"evidenceTag": {
"type": "String",
"required": true
},
"evidenceType": {
"type": "String",
"required": true
},
"storageUrl": {
"type": "String",
"required": true
},
"collectedBy": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"collectedAt": {
"type": "Date",
"required": true
},
"locationLabel": {
"type": "String",
"required": false
},
"isSealed": {
"type": "Boolean",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "SurveillanceNote",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"caseFile": {
"type": "Pointer",
"required": true,
"targetClass": "CaseFile"
},
"noteTime": {
"type": "Date",
"required": true
},
"observer": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"location": {
"type": "String",
"required": true
},
"summary": {
"type": "String",
"required": true
},
"detail": {
"type": "String",
"required": true
},
"followUpNeeded": {
"type": "Boolean",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "BillingEntry",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"caseFile": {
"type": "Pointer",
"required": true,
"targetClass": "CaseFile"
},
"entryDate": {
"type": "Date",
"required": true
},
"hours": {
"type": "Number",
"required": true
},
"rate": {
"type": "Number",
"required": true
},
"amount": {
"type": "Number",
"required": true
},
"workType": {
"type": "String",
"required": true
},
"approvedBy": {
"type": "Pointer",
"required": false,
"targetClass": "User"
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
}
]
}Construire avec l'agent AI
Utilisez l'agent AI Back4app pour générer une vraie application de journal de cas d'enquêteur privé à partir de ce modèle, y compris le frontend, le backend, l'authentification, et les flux Cas, Élément de preuve, Note de surveillance, et Entrée de facturation.
Créez un backend d'application de journal de cas pour enquêteur privé sur Back4app avec ce schéma et comportement exacts. Schéma : 1. Utilisateur (utilisez Back4app intégré) : nom d'utilisateur, e-mail, mot de passe, rôle ; objectId, createdAt, updatedAt (système). 2. DossierDeCas : numéroDeCas (String, requis), nomDuClient (String, requis), statut (String, requis), enquêteurAssigné (Pointer vers Utilisateur, requis), tarifDeFacturation (Number, requis), ouvertÀ (Date, requis), ferméÀ (Date, optionnel) ; objectId, createdAt, updatedAt (système). 3. ÉlémentDePreuve : dossierDeCas (Pointer vers DossierDeCas, requis), tagPreuve (String, requis), typePreuve (String, requis), urlStockage (String, requis), collectéPar (Pointer vers Utilisateur, requis), collectéÀ (Date, requis), étiquetteEmplacement (String, optionnel), estScellé (Boolean, requis) ; objectId, createdAt, updatedAt (système). 4. NoteDeSurveillance : dossierDeCas (Pointer vers DossierDeCas, requis), heureNote (Date, requis), observateur (Pointer vers Utilisateur, requis), emplacement (String, requis), résumé (String, requis), détail (String, requis), suiviNécessaire (Boolean, requis) ; objectId, createdAt, updatedAt (système). 5. EntréeDeFacturation : dossierDeCas (Pointer vers DossierDeCas, requis), dateEntrée (Date, requis), heures (Number, requis), tarif (Number, requis), montant (Number, requis), typeDeTravail (String, requis), approuvéPar (Pointer vers Utilisateur, optionnel) ; objectId, createdAt, updatedAt (système). Sécurité : - Limitez la visibilité des DossiersDeCas aux enquêteurs assignés et au personnel de facturation. - Les enregistrements d'ÉlémentDePreuve doivent être modifiables uniquement par le personnel ayant accès au dossier. - Les entrées de NoteDeSurveillance doivent préserver l'historique chronologique. - Les totaux d'EntréeDeFacturation sont modifiables par le personnel approuvé pour la facturation. Auth : - Inscription, connexion, déconnexion. Comportement : - Lister les dossiers de cas ouverts, créer des entrées de preuves, ajouter des notes de surveillance, calculer les entrées de facturation et montrer des mises à jour en direct de l'activité de cas. Livrer : - Application Back4app avec schéma, ACL, CLP ; frontend pour la gestion des cas, l'enregistrement des preuves, les notes de surveillance et la facturation des clients.
Appuyez sur le bouton ci-dessous pour ouvrir l'agent avec ce modèle pré-rempli.
Ceci est l'invite de base sans suffixe technologique. Vous pouvez adapter la pile frontend générée par la suite.
API Sandbox
Essayez REST et les points de terminaison GraphQL contre le schéma de journal de cas d'enquêteur privé. 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 CaseFile, EvidenceItem et SurveillanceNote avec votre pile choisie.
Flutter Journal de cas d'enquêteur privé
React Journal de cas d'enquêteur privé
React Natif Journal de cas d'enquêteur privé
__MARQUE0__ Journal de cas d'enquêteur privé
__MARQUE0__ Journal de cas d'enquêteur privé
__MARQUE0__ Journal de cas d'enquêteur privé
__MARQUE0__ Journal de cas d'enquêteur privé
__MARQUE0__ Journal de cas d'enquêteur privé
__MARQUE0__ Journal de cas d'enquêteur privé
__MARQUE0__ Journal de cas d'enquêteur privé
__MARQUE0__ Journal de cas d'enquêteur privé
__MARQUE0__ Journal de cas d'enquêteur privé
__MARQUE0__ Journal de cas d'enquêteur privé
Ce que vous obtenez avec chaque technologie
Chaque pile utilise le même schéma de journal de cas de détective privé et les contrats d'API.
Structure de journal de cas unifiée
Gérez les enregistrements d'Utilisateur, CaseFile, EvidenceItem, SurveillanceNote et BillingEntry avec un schéma cohérent.
Enregistrement de preuves pour le travail de PI
Enregistrer evidenceTag, evidenceType, storageUrl et collectedAt pour chaque EvidenceItem.
Chronologies des notes de surveillance
Capturez l'emplacement, le résumé, les détails et le temps de note pour la révision des travaux sur le terrain.
Enregistrements de facturation des clients
Suivez les heures, le tarif, le montant et le type de travail par dossier de cas.
REST/GraphQL API pour les enquêtes
Intégrez des outils web, mobiles et de bureau avec un seul contrat backend.
Workflow d'enquête extensible
Ajoutez de nouvelles classes ou champs à mesure que votre processus d'enquête évolue.
Comparaison des technologies pour enquêteurs privés
Comparez la vitesse de configuration, le style SDK et le support AI à travers toutes les technologies prises en charge.
| Cadre | Temps de configuration | Avantage du journal de cas PI | Type de SDK | Support IA |
|---|---|---|---|---|
| Environ 5 minutes | Base de code unique pour les journaux de cas d'enquêteur sur mobile et web. | SDK typé | Complet | |
| Moins de 5 minutes | Dashboard web rapide pour les dossiers de cas et les preuves. | SDK typé | Complet | |
| ~3–7 min | Application mobile multiplateforme pour les notes sur le terrain et la capture de preuves. | SDK tapé | Complet | |
| Configuration rapide (5 min) | Portail de gestion des cas rendu par le serveur pour les enquêteurs. | SDK tapé | Complet | |
| ~3–5 min | Intégration web légère pour les journaux de PI. | SDK tapé | Complet | |
| Environ 5 min | Application native Android pour les notes de surveillance sur le terrain. | SDK tapé | Complet | |
| Moins de 5 minutes | Application native iOS pour l'enregistrement des preuves. | SDK tapé | Complet | |
| ~3-7 min | Interface web Reactive pour la révision des journaux de cas. | SDK tapé | Complet | |
| Configuration rapide (5 min) | Application web d'entreprise pour les dossiers de cas et la facturation. | SDK tapé | Complet | |
| Moins de 2 minutes | API GraphQL flexible pour les données de cas imbriquées. | API GraphQL | Complet | |
| Configuration rapide (2 minutes) | Intégration REST API pour les journaux de cas PI. | REST API | Complet | |
| ~3 minutes | Backend PHP côté serveur pour les flux de travail de fichiers de cas. | REST API | Complet | |
| ~3–7 min | Backend .NET pour les enquêtes et la facturation. | SDK tapé | Complet |
Le temps de configuration reflète la durée attendue depuis le démarrage du projet jusqu'au premier dossier de cas ou à la première requête de preuve utilisant ce schéma de modèle.
FAQ sur le journal des affaires PI
Questions courantes sur la création d'un backend de journal de cas de détective privé avec ce modèle.
Prêt à construire votre application de journal de cas d'enquêteur privé ?
Commencez votre projet de journal de cas d'enquêteur privé en quelques minutes. Aucune carte de crédit requise.