Registro Casi PI
Costruisci con AI Agent
Registro dei casi dell'investigatore privato Backend

Registro dei casi dell'investigatore privato Backend Modello
File Caso, Elementi di Prova e Fatturazione

Un backend di registro dei casi dell'investigatore privato pronto per la produzione su Back4app con classi FileCaso, ElementiProva, NoteSorveglianza e FatturazioneEntrate. Tieni traccia della storia del caso, conserva le etichette di prova e mantieni la fatturazione legata allo stesso file.

Punti chiave da un registro dei casi

Questo modello ti fornisce un backend per il registro dei casi di un investigatore privato con registri CaseFile, EvidenceItem, SurveillanceNote e BillingEntry in modo che il personale possa mantenere un file cronologico ordinato.

  1. Tracciamento delle prove caso per casoModello di EvidenceItem con i campi evidenceTag, evidenceType, storageUrl e isSealed per ogni elemento.
  2. Cronologia delle note di sorveglianzaMantieni le voci di SurveillanceNote legate a un CaseFile con noteTime, location, summary e detail.
  3. Registri di fatturazione clientUsa BillingEntry per registrare ore, tariffa, importo, workType e approvedBy per ogni CaseFile.
  4. Accesso consapevole del ruoloLimita l'accesso a CaseFile, EvidenceItem e BillingEntry con regole ACL e CLP.
  5. Parità tra API web e mobileServire React, Flutter, Next.js e app native attraverso gli stessi endpoint REST e GraphQL.

Cos'è il modello di registro dei casi per investigatori privati?

Se l'accettazione del registro dei casi per investigatori privati è disordinata, tutto il downstream ne risente — una cattura pulita all'ingresso risparmia ore di ricostruzione dopo. La chiarezza batte gli atti eroici. Questo modello modella CaseFile, EvidenceItem, SurveillanceNote e BillingEntry con accesso basato sul ruolo su Back4app affinché ogni membro del team del registro dei casi per investigatori privati veda la parte della pipeline che possiede.

Ideale per:

Gestione dei casi per investigatori privatiSistemi di registrazione delle evidenzeStrumenti di cattura delle note di sorveglianzaTracker di fatturazione dei clientiLanci MVPTeam che scelgono BaaS per i flussi di lavoro PI

Cosa ottieni nel modello di registro dei casi dell'investigatore privato

Nel registro dei casi dell'investigatore privato, le conversazioni più difficili iniziano con “quale numero è ufficiale?” — un segno che il backend non è ancora autorevole.

Ogni scheda tecnologica qui mappa allo stesso modello di CaseFile, EvidenceItem e SurveillanceNote — scegli uno stack senza ri-negoziare il tuo contratto backend.

Caratteristiche fondamentali del registro dei casi PI

Ogni scheda tecnologica in questo hub utilizza lo stesso schema di backend del registro dei casi con User, CaseFile, EvidenceItem, SurveillanceNote e BillingEntry.

Gestione dei file di caso

CaseFile memorizza caseNumber, clientName, status, assignedInvestigator e billingRate.

Registrazione delle prove

EvidenceItem si collega a CaseFile e cattura evidenceTag, evidenceType, storageUrl e isSealed.

Note di sorveglianza

SurveillanceNote memorizza noteTime, location, summary, detail e followUpNeeded per ogni periodo di osservazione.

Voce di fatturazione del cliente

BillingEntry cattura entryDate, hours, rate, amount, workType e approvedBy.

Perché costruire il tuo registro dei casi PI con Back4app?

Back4app ti offre le classi di dati e i controlli di accesso per mantenere i fascicoli dei casi, le prove, le note e le voci di fatturazione organizzati mentre il team rimane concentrato sul lavoro sul campo.

  • Il CaseFile e l'EvidenceItem rimangono collegati: Archivia ogni EvidenceItem contro un CaseFile in modo che foto, ricevute e dettagli della catena di custodia rimangano attaccati alla giusta indagine.
  • Le linee temporali delle SurveillanceNote sono più facili da leggere: Un campo noteTime su SurveillanceNote rende il registro di sorveglianza ordinabile per tempo di osservazione invece che per congetture in testo libero.
  • La BillingEntry corrisponde al record di indagine: Cattura ore, tariffa, importo e tipo di lavoro in BillingEntry per collegare il tempo sul campo con la fatturazione al cliente.

Costruisci il registro dei casi una volta, poi riutilizza lo stesso contratto backend su web, mobile e dashboard per investigatori.

Vantaggi del registro dei casi PI

Un backend del registro dei casi che tiene organizzate le note di indagine e la fatturazione fin dal primo inserimento.

Tracce di prove più pulite

I registri EvidenceItem conservano evidenceTag, evidenceType, storageUrl e collectedAt per ogni elemento.

Storico di sorveglianza leggibile

Le voci SurveillanceNote collegate a un CaseFile ti forniscono un record temporale ordinato con posizione, riepilogo e dettagli.

Fatturazione che segue il caso

BillingEntry mantiene ore, tariffa, importo e workType collegati allo stesso CaseFile da cui proviene il lavoro.

Controllo accessi per file sensibili

Usa ACL e CLP affinché solo gli investigatori assegnati possano modificare un CaseFile o aggiungere righe EvidenceItem.

Accesso multi-dispositivo ai registri dei casi

Le API REST e GraphQL consentono a dashboard web, app mobili e strumenti di fatturazione di back-office di leggere gli stessi dati di CaseFile.

Riutilizzo rapido dello schema

Inizia con User, CaseFile, EvidenceItem, SurveillanceNote e BillingEntry invece di costruire i registri dei casi campo per campo.

Pronto a lanciare il tuo registro dei casi per investigatori privati?

Lascia che l'AI Agent di Back4app crei il backend del tuo registro dei casi e generi i flussi di CaseFile, EvidenceItem, SurveillanceNote e BillingEntry da un solo prompt.

Gratuito per iniziare — 50 prompt AI Agent/mese, senza carta di credito richiesta

Stack tecnologico del registro dei casi

Tutto incluso in questo modello di backend per il registro dei casi dell'investigatore privato.

Frontend
13+ tecnologie
Backend
Back4app
Database
MongoDB
Autenticazione
Autenticazione e sessioni integrate
API
REST e GraphQL
Realtime
Live Queries

Diagramma ER del caso

Modello di relazione tra entità per il backend dello schema del registro dei casi dell'investigatore privato.

Visualizza sorgente del diagramma
Mermaid
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
    }

Flusso di sincronizzazione del caso

Flusso tipico di esecuzione per accesso, caricamento del CaseFile, caricamenti di EvidenceItem, creazione di SurveillanceNote e revisione di BillingEntry.

Visualizza sorgente del diagramma
Mermaid
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 changes

Dizionario dei campi

Riferimento completo a livello di campo per ogni classe nel schema del registro dei casi dell'investigatore privato.

CampoTipoDescrizioneRichiesto
objectIdStringAuto-generated unique identifierAutomatico
usernameStringUser login name
emailStringUser email address
passwordStringHashed password (write-only)
roleStringStaff role such as investigator, admin, or billing
createdAtDateAuto-generated creation timestampAutomatico
updatedAtDateAuto-generated last-update timestampAutomatico

7 campi in User

Sicurezza e permessi del caso

Come la strategia ACL e CLP protegge gli utenti, i file dei casi, gli elementi di prova, le note e le voci di fatturazione.

Controlli dell'investigatore assegnato

Solo l'Utente assegnato o il proprietario del caso possono aggiornare un CaseFile, aggiungere prove o rivedere i dettagli di fatturazione.

Verifiche dell'integrità delle prove

Utilizza la validazione del Cloud Code affinché le righe di EvidenceItem richiedano un puntatore a CaseFile, storageUrl e trail collectedBy.

Accesso in lettura ristretto

Limitare le note di caso e le voci di fatturazione al personale che lavora su quel file; le voci sensibili non dovrebbero essere esposte in modo ampio.

Schema JSON

Definizione dello schema JSON grezzo pronta da copiare in Back4app o utilizzare come riferimento di implementazione.

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": "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
        }
      }
    }
  ]
}

Costruisci con AI Agent

Usa l'AI Agent di Back4app per generare un'app di registro case di investigatore privato reale da questo modello, inclusi frontend, backend, autenticazione e i flussi di CaseFile, EvidenceItem, SurveillanceNote e BillingEntry.

Back4app AI Agent
Pronto per costruire
Crea un backend per un'app di registro casi di investigatori privati su Back4app con questo schema e comportamento esatti.

Schema:
1. Utente (usa il built-in di Back4app): nome utente, email, password, ruolo; objectId, createdAt, updatedAt (sistema).
2. CasoFile: numeroCaso (String, richiesto), nomeCliente (String, richiesto), stato (String, richiesto), investigatoreAssegnato (Puntatore a Utente, richiesto), tariffaDiFatturazione (Numero, richiesto), apertoIl (Data, richiesto), chiusoIl (Data, facoltativo); objectId, createdAt, updatedAt (sistema).
3. ElementoDiProva: casoFile (Puntatore a CasoFile, richiesto), etichettaDiProva (String, richiesto), tipoDiProva (String, richiesto), urlDiArchiviazione (String, richiesto), raccoltoDa (Puntatore a Utente, richiesto), raccoltoIl (Data, richiesto), etichettaDiLuogo (String, facoltativo), èSigillato (Booleano, richiesto); objectId, createdAt, updatedAt (sistema).
4. NotaDiSorveglianza: casoFile (Puntatore a CasoFile, richiesto), oraNota (Data, richiesta), osservatore (Puntatore a Utente, richiesto), posizione (String, richiesto), riepilogo (String, richiesto), dettaglio (String, richiesto), followUpNecessario (Booleano, richiesto); objectId, createdAt, updatedAt (sistema).
5. VoceDiFatturazione: casoFile (Puntatore a CasoFile, richiesto), dataVoce (Data, richiesto), ore (Numero, richiesto), tariffa (Numero, richiesto), importo (Numero, richiesto), tipoDiLavoro (String, richiesto), approvatoDa (Puntatore a Utente, facoltativo); objectId, createdAt, updatedAt (sistema).

Sicurezza:
- Limitare la visibilità di CasoFile agli investigatori assegnati e al personale di fatturazione.
- I registri di ElementoDiProva devono essere scrivibili solo dal personale con accesso al caso.
- Le voci di NotaDiSorveglianza devono preservare la cronologia cronologica.
- I totali di VoceDiFatturazione sono modificabili dal personale approvato per la fatturazione.

Auth:
- Registrazione, accesso, disconnessione.

Comportamento:
- Elencare i casi aperti, creare voci di prova, aggiungere note di sorveglianza, calcolare voci di fatturazione e mostrare aggiornamenti dal vivo per l'attività del caso.

Consegnare:
- App Back4app con schema, ACL, CLP; frontend per la gestione dei casi, registrazione delle prove, note di sorveglianza e fatturazione ai clienti.

Premi il pulsante qui sotto per aprire l'Agent con questo messaggio precompilato.

Questo è il prompt di base senza un suffisso tecnologico. Puoi adattare il frontend generato in seguito.

Distribuisci in pochi minuti50 prompt gratuiti/meseNessuna carta di credito richiesta

API Sandbox

Prova i REST e gli endpoint di GraphQL contro lo schema del registro dei casi dell'investigatore privato. Le risposte utilizzano dati fittizi e non richiedono un account Back4app

Caricamento playground…

Usa lo stesso schema di questo modello.

Scegli la tua tecnologia

Espandi ogni scheda per vedere come integrare CaseFile, EvidenceItem e SurveillanceNote con il tuo stack scelto.

Flutter Registro dei casi dell'investigatore privato

React Registro dei casi dell'investigatore privato

React Nativo Registro dei casi dell'investigatore privato

Next.js Registro dei casi dell'investigatore privato

JavaScript Registro dei casi dell'investigatore privato

Android Registro dei casi dell'investigatore privato

iOS Registro dei casi dell'investigatore privato

Vue Registro dei casi dell'investigatore privato

Angular Registro dei casi dell'investigatore privato

GraphQL Registro dei casi dell'investigatore privato

REST API Registro dei casi dell'investigatore privato

PHP Registro dei casi dell'investigatore privato

.NET Registro dei casi dell'investigatore privato

Cosa Ottieni con Ogni Tecnologia

Ogni stack utilizza lo stesso schema di backend del registro dei casi degli investigatori privati e contratti API.

Struttura unificata del registro dei casi

Gestisci i record di Utente, CaseFile, EvidenceItem, SurveillanceNote e BillingEntry con uno schema coerente.

Registrazione delle prove per il lavoro PI

Registra evidenceTag, evidenceType, storageUrl e collectedAt per ogni EvidenceItem.

Timeline delle note di sorveglianza

Cattura la posizione, il riepilogo, il dettaglio e il noteTime per la revisione del lavoro sul campo.

Registri di fatturazione dei clienti

Monitora le ore, la tariffa, l'importo e il tipo di lavoro per ogni CaseFile.

API REST/GraphQL per le indagini

Integra strumenti web, mobili e da ufficio con un contratto backend.

Flusso di lavoro del caso estensibile

Aggiungi nuove classi o campi man mano che il processo di indagine cambia.

Confronto tra tecnologie per investigatori privati

Confronta la velocità di configurazione, lo stile dell'SDK e il supporto per l'IA tra tutte le tecnologie supportate.

FrameworkTempo di configurazioneBeneficio del registro dei casi PITipo di SDKSupporto AI
Circa 5 minutiCodice sorgente unico per i registri dei casi dell'investigatore su mobile e web.SDK digitatoCompleto
Meno di 5 minutiDashboard web veloce per file di caso e prove.SDK digitatoCompleto
~3–7 minApp mobile multipiattaforma per appunti sul campo e raccolta di prove.SDK digitatoCompleto
Impostazione rapida (5 min)Portale di gestione dei casi renderizzato dal server per investigatori.SDK digitatoCompleto
~3–5 minIntegrazione web leggera per registri PI.SDK digitatoCompleto
Circa 5 minApp nativa Android per note di sorveglianza sul campo.SDK DigitatoCompleto
Meno di 5 minutiApp nativa iOS per registrazione delle prove.SDK DigitatoCompleto
~3–7 minInterfaccia web React per la revisione del registro dei casi.SDK DigitatoCompleto
Impostazione rapida (5 min)Applicazione web enterprise per file di casi e fatturazione.SDK DigitatoCompleto
Meno di 2 minutiAPI flessibile GraphQL per dati di caso annidati.GraphQL APICompleto
Impostazione rapida (2 min)Integrazione REST API per registri di casi PI.REST APICompleto
~3 minutiBackend PHP lato server per flussi di lavoro di file di casi.REST APICompleto
~3–7 min.NET backend per indagini e fatturazione.SDK DigitatoCompleto

Il tempo di setup riflette la durata attesa dalla creazione del progetto al primo file di caso o alla query delle prove utilizzando questo schema di template.

Domande frequenti sul registro dei casi PI

Domande comuni sulla creazione di un backend per il registro dei casi di un investigatore privato con questo modello.

Come dovrebbero i team del registro dei casi dei investigatori privati dividere le responsabilità senza non divulgare dati tra i ruoli?
Quali flussi di lavoro del registro dei casi degli investigatori privati beneficiano di più dai compiti strutturati rispetto alle note libere?
Qual è il modo migliore per aggiungere campi di reportistica al registro dei casi degli investigatori privati senza rallentare il lavoro quotidiano?
Come eseguo query per fascicoli e note con Flutter?
Come gestisco l'accesso al registro dei casi degli investigatori privati con Next.js Server Actions?
Può il caching di React Native salvare i registri dei casi offline?
Come posso prevenire modifiche non autorizzate alle prove?
Qual è il modo migliore per mostrare il tempo fatturabile su Android?

Fidato da sviluppatori in tutto il mondo

Unisciti ai team che lanciano prodotti di registrazione dei casi per investigatori privati più rapidamente con i modelli di Back4app

G2 Users Love Us Badge

Pronto a costruire la tua app di registrazione dei casi per investigatori privati?

Avvia il tuo progetto di registrazione dei casi per investigatori privati in pochi minuti. Nessuna carta di credito richiesta.

Scegli Tecnologia