PI ケースログ
AI エージェントで構築
私立探偵事件ログバックエンド

私立探偵事件ログバックエンドテンプレート
ケースファイル、証拠アイテム、請求

生産準備が整った私立探偵事件ログバックエンドがBack4appにあり、ケースファイル、証拠アイテム、監視ノート、請求エントリのクラスを備えています。ケース履歴を追跡し、証拠タグを保持し、請求を同じファイルに結び付けます。

重要なケースログの要点

このテンプレートは、スタッフが整理された年代記のファイルを維持できるように、CaseFile、EvidenceItem、SurveillanceNote、およびBillingEntryレコードを含む私立探偵のケースログバックエンドを提供します。

  1. ケースごとの証拠追跡各アイテムのために、evidenceTag、evidenceType、storageUrl、およびisSealedフィールドを持つEvidenceItemモデル。
  2. 監視ノートの年代記SurveillanceNoteのエントリをnoteTime、場所、要約、詳細とともにCaseFileに結び付けておきます。
  3. クライアントの請求記録BillingEntryを使用して、各CaseFileごとに時間、レート、金額、作業タイプ、承認者をキャプチャします。
  4. ロールに基づくアクセスACLおよびCLPルールを使用してCaseFile、EvidenceItem、およびBillingEntryのアクセスを制限します。
  5. ウェブおよびモバイルAPIのパリティ同じRESTおよびGraphQLエンドポイントを通じてReact、Flutter、Next.js、およびネイティブアプリを提供します。

プライベートインベスティゲーターケースログテンプレートとは?

プライベートインベスティゲーターのケースログの取り込みが混沌としていると、すべての下流に悪影響を及ぼします — 前門でのクリーンなキャプチャは、後での再構成に何時間も節約します。明確さはヒロイックな行動に勝ります。このテンプレートはBack4appでのロールベースのアクセスを持つCaseFile、EvidenceItem、SurveillanceNote、およびBillingEntryをモデル化しており、すべてのプライベートインベスティゲーターケースログのチームメンバーが自分の持っているパイプラインの部分を見ることができます。

最適:

プライベートインベスティゲーターのケース管理証拠ログシステム監視ノートキャプチャツールクライアント請求トラッカーMVPローンチBaaS を PI ワークフローに選択するチーム

私立探偵ケースログテンプレートで得られるもの

私立探偵ケースログでは、最も厄介な会話は「どの番号が公式ですか?」で始まります。これは、バックエンドがまだ権威を持っていないことを示しています。

ここにあるすべてのテクノロジーカードは、同じ CaseFile、EvidenceItem、SurveillanceNote モデルにマッピングされています。バックエンド契約を再交渉することなく、スタックを選択してください。

PIケースログの主要機能

このハブ内のすべてのテクノロジーカードは、User、CaseFile、EvidenceItem、SurveillanceNote、およびBillingEntryを使用して、同じケースログバックエンドスキーマを使用しています。

ケースファイル管理

CaseFileはcaseNumber、clientName、status、assignedInvestigator、及びbillingRateを保存します。

証拠記録

EvidenceItemはCaseFileにリンクし、evidenceTag、evidenceType、storageUrl、isSealedをキャプチャします。

監視ノート

SurveillanceNoteは、各監視期間のnoteTime、location、summary、detail、およびfollowUpNeededを保存します。

クライアント請求エントリ

BillingEntryは、entryDate、hours、rate、amount、workType、およびapprovedByをキャプチャします。

なぜBack4appでPIケースログを構築するのか?

Back4appは、ケースファイル、証拠、メモ、請求エントリを整理するためのデータクラスとアクセス制御を提供し、チームが現場作業に集中できるようにします。

  • CaseFileとEvidenceItemはリンクしたままです。: 各EvidenceItemをCaseFileに関連付けることで、写真、領収書、証拠の連鎖の詳細が適切な調査に添付されたままになります。
  • SurveillanceNoteのタイムラインは読みやすくなります。: SurveillanceNoteのnoteTimeフィールドにより、監視ログは自由形式の推測ではなく、観察時間でソート可能になります。
  • BillingEntryは調査記録と一致します。: BillingEntryで時間、レート、金額、および作業タイプをキャプチャして、フィールド時間とクライアントの請求を接続します。

ケースログを一度構築し、その後はウェブ、モバイル、調査者ダッシュボードで同じバックエンド契約を再利用します。

PIケースログの利点

最初のエントリから捜査ノートと請求を整理するケースログバックエンド。

クリーンな証拠トレイル

EvidenceItem レコードは、各アイテムの evidenceTag、evidenceType、storageUrl、および collectedAt を保存します。

読みやすい監視履歴

サーベイランスノートのエントリは、ケースファイルに関連付けられており、場所、要約、詳細を含む時間順のフィールドレコードを提供します。

事件に従った請求

BillingEntry は、作業が行われた同じケースファイルに接続された時間、レート、金額、および作業タイプを保持します。

機密ファイルのアクセス制御

ACL と CLP を使用して、割り当てられた調査員だけがケースファイルを編集したり、EvidenceItem 行を追加できるようにします。

デバイス間でのケースログへのアクセス

REST と GraphQL APIs により、Web ダッシュボード、モバイルフィールドアプリ、およびバックオフィスの請求ツールが同じケースファイルデータを読み取ることができます。

高速スキーマ再利用

ケースレコードをフィールドごとに構築するのではなく、ユーザー、ケースファイル、証拠アイテム、監視ノート、および請求エントリから始めます。

プライベート探偵のケースログを開始する準備はできましたか?

Back4app AIエージェントにあなたのケースログのバックエンドをスカフォールドさせ、ケースファイル、証拠アイテム、監視ノート、および請求エントリのフローを一つのプロンプトから生成します。

開始は無料 — 月50件のAIエージェントプロンプト、クレジットカード不要

ケースログテクノロジースタック

このプライベート・インベスティゲーター・ケースログバックエンドテンプレートに含まれているすべて。

フロントエンド
13+ テクノロジー
バックエンド
Back4app
データベース
MongoDB
認証
組み込み認証 + セッション
API
REST と GraphQL
リアルタイム
Live Queries

ケース ER ダイアグラム

プライベート・インベスティゲーターのケースログバックエンドスキーマのエンティティリレーションシップモデル。

図のソースを表示
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
    }

ケース同期フロー

サインイン、ケースファイルの読み込み、証拠アイテムのアップロード、監視メモの作成、請求エントリのレビューのための典型的な実行フロー。

図のソースを表示
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

フィールド辞書

プライベート検査官のケースログスキーマ内の各クラスに対する完全なフィールドレベルのリファレンス。

フィールドタイプ説明必須
objectIdStringAuto-generated unique identifier自動
usernameStringUser login name
emailStringUser email address
passwordStringHashed password (write-only)
roleStringStaff role such as investigator, admin, or billing
createdAtDateAuto-generated creation timestamp自動
updatedAtDateAuto-generated last-update timestamp自動

7 フィールドを User に

ケースのセキュリティと権限

ACL と CLP ストラテジーがユーザー、ケースファイル、証拠アイテム、ノート、請求エントリをどのように保護するか。

割り当てられた調査員の制御

割り当てられたユーザーまたはケースオーナーのみが、ケースファイルを更新したり、証拠を追加したり、請求の詳細を修正したりできます。

証拠の整合性チェック

Cloud Code 検証を使用して、EvidenceItem 行が CaseFile ポインタ、storageUrl、および collectedBy トレイルを必要とするようにします。

スコープ付き読み取りアクセス

ファイルに取り組んでいるスタッフにケースノートと請求エントリへのアクセスを制限します。機密性の高いエントリは広く公開されるべきではありません。

JSONスキーマ

コピーしてBack4appに貼り付けるか、実装リファレンスとして使用するための生のJSONスキーマ定義。

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

AIエージェントを使用してビルド

Back4app AIエージェントを使用して、このテンプレートから、フロントエンド、バックエンド、認証、そしてCaseFile、EvidenceItem、SurveillanceNote、BillingEntryフローを含む実際のプライベートインベスティゲーターケースログアプリを生成します。

Back4app AIエージェント
ビルドする準備ができました
Back4appでこの正確なスキーマと動作を持つ私立探偵のケースログアプリバックエンドを作成します。

スキーマ:
1. ユーザー(Back4appの組み込みを使用):ユーザー名、メール、パスワード、役割;objectId、createdAt、updatedAt(システム)。
2. ケースファイル:caseNumber(文字列、必須)、clientName(文字列、必須)、status(文字列、必須)、assignedInvestigator(ユーザーへのポインタ、必須)、billingRate(数値、必須)、openedAt(日時、必須)、closedAt(日時、オプション);objectId、createdAt、updatedAt(システム)。
3. 証拠アイテム:caseFile(ケースファイルへのポインタ、必須)、evidenceTag(文字列、必須)、evidenceType(文字列、必須)、storageUrl(文字列、必須)、collectedBy(ユーザーへのポインタ、必須)、collectedAt(日時、必須)、locationLabel(文字列、オプション)、isSealed(ブール値、必須);objectId、createdAt、updatedAt(システム)。
4. 監視ノート:caseFile(ケースファイルへのポインタ、必須)、noteTime(日時、必須)、observer(ユーザーへのポインタ、必須)、location(文字列、必須)、summary(文字列、必須)、detail(文字列、必須)、followUpNeeded(ブール値、必須);objectId、createdAt、updatedAt(システム)。
5. 請求エントリ:caseFile(ケースファイルへのポインタ、必須)、entryDate(日時、必須)、hours(数値、必須)、rate(数値、必須)、amount(数値、必須)、workType(文字列、必須)、approvedBy(ユーザーへのポインタ、オプション);objectId、createdAt、updatedAt(システム)。

セキュリティ:
- ケースファイルの可視性を割り当てられた調査員と請求スタッフに制限します。
- 証拠アイテム記録は、ケースアクセスを持つスタッフのみが書き込み可能です。
- 監視ノートエントリは年chronological historyを保持しなければなりません。
- 請求エントリの合計は、請求承認を受けたスタッフによって編集できます。

認証:
- サインアップ、ログイン、ログアウト。

動作:
- 開いているケースファイルのリストを表示し、証拠エントリを作成し、監視ノートを追加し、請求エントリを計算し、ケースの活動のライブアップデートを表示します。

配信:
- スキーマ、ACL、CLPを備えたBack4appアプリ;ケース管理、証拠のログ、監視ノート、クライアントの請求のためのフロントエンド。

下のボタンを押して、このテンプレートプロンプトが事前入力されたエージェントを開いてください。

これはテクノロジーサフィックスのない基本プロンプトです。生成されたフロントエンドスタックは後で適応できます。

数分でデプロイ月ごとに50の無料プロンプトクレジットカードは不要

APIサンドボックス

GraphQLエンドポイントに対して私立探偵のケースログスキーマを試す。レスポンスはモックデータを使用し、Back4appアカウントは不要です。

プレイグラウンドを読み込み中…

このテンプレートと同じスキーマを使用しています。

テクノロジーを選択

各カードを展開して、選択したスタックにCaseFile、EvidenceItem、およびSurveillanceNoteを統合する方法を確認してください。

Flutter プライベートインベスティゲーター ケースログバックエンド

React プライベートインベスティゲーター ケースログバックエンド

React ネイティブ プライベートインベスティゲーター ケースログバックエンド

Next.js プライベートインベスティゲーター ケースログバックエンド

JavaScript プライベートインベスティゲーター ケースログバックエンド

Android プライベートインベスティゲーター ケースログバックエンド

iOS プライベートインベスティゲーター ケースログバックエンド

Vue プライベートインベスティゲーター ケースログバックエンド

Angular プライベートインベスティゲーター ケースログバックエンド

GraphQL プライベートインベスティゲーター ケースログバックエンド

REST API プライベートインベスティゲーター ケースログバックエンド

PHP プライベートインベスティゲーター ケースログバックエンド

.NET プライベートインベスティゲーター ケースログバックエンド

すべてのテクノロジーで得られるもの

すべてのスタックは、同じプライベート調査官ケースログバックエンドスキーマとAPI契約を使用します。

統一されたケースログ構造

一貫したスキーマでユーザー、CaseFile、EvidenceItem、SurveillanceNote、BillingEntryレコードを管理します。

PI作業のための証拠ログ記録

各EvidenceItemについて、evidenceTag、evidenceType、storageUrl、およびcollectedAtを記録します。

監視ノートのタイムライン

フィールドワークレビューのために、位置、概要、詳細、およびノート時間をキャプチャします。

クライアント請求記録

ケースファイルごとの時間、料金、金額、作業種別を追跡します。

REST/GraphQL APIによる調査

ウェブ、モバイル、オフィスツールを1つのバックエンド契約で統合します。

拡張可能なケースワークフロー

調査プロセスが変化するにつれて、新しいクラスやフィールドを追加します。

私立探偵技術比較

すべてのサポートされた技術の設定速度、SDKスタイル、およびAIサポートを比較します。

フレームワークセットアップ時間PIケースログの利点SDKタイプAIサポート
約5分モバイルとウェブの調査員ケースログ用の単一のコードベース。タイプ付きSDKフル
5分未満ケースファイルと証拠のための高速ウェブダッシュボード。タイプ付きSDKフル
~3~7分フィールドノートと証拠収集のためのクロスプラットフォームモバイルアプリ。Typed SDKフル
迅速な(5分)セットアップ調査官向けのサーバーレンダリングされたケース管理ポータル。Typed SDKフル
~3~5分PIログ用の軽量ウェブ統合。Typed SDKフル
約5分フィールド監視ノート用のネイティブ Android アプリ。タイプされたSDKフル
5分未満証拠記録用のネイティブ iOS アプリ。タイプされたSDKフル
約3〜7分ケースログレビュー用の React Web UI。タイプされたSDKフル
迅速な(5分)セットアップケースファイルと請求用のエンタープライズWebアプリ。タイプされたSDKフル
2分未満ネストされたケースデータ用の柔軟なGraphQL API。GraphQL APIフル
迅速な(2分)セットアップPIケースログのためのREST API統合。REST APIフル
〜3分ケースファイルワークフローのためのサーバーサイドPHPバックエンド。REST APIフル
約3〜7分調査および請求用の.NETバックエンド。タイプされたSDKフル

セットアップ時間は、このテンプレートスキーマを使用してプロジェクトのブートストラップから最初のケースファイルまたは証拠のクエリまでの予想期間を示します。

PI ケースログ FAQ

このテンプレートを使ってプライベート・インベスティゲーターのケースログバックエンドを構築する際のよくある質問。

プライベート調査員のケースログチームは、役割間でデータを漏洩させずに責任を分担するにはどうすればよいですか?
構造化されたタスクと自由形式のメモのどちらからプライベート調査員のケースログワークフローが最も利益を得ますか?
プライベート調査員のケースログ報告フィールドを追加する最善の方法は何ですか?
Flutterを使用してケースファイルやメモのクエリを実行するにはどうすればよいですか?
プライベート調査官のケースログアクセスを Next.js Server Actions で管理するにはどうすればよいですか?
React ネイティブはケースログをオフラインでキャッシュできますか?
無許可の証拠編集を防ぐにはどうすればよいですか?
Android で請求可能な時間を表示する最良の方法は何ですか?

世界中の開発者に信頼されています

Back4appテンプレートを使ってプライベート探偵のケースログ製品をより早く出荷するチームに参加しよう

G2 Users Love Us Badge

プライベート探偵のケースログアプリを構築する準備はできましたか?

数分でプライベート探偵のケースログプロジェクトを始めましょう。クレジットカードは不要です。

技術を選択