Дело PI
Создать с помощью AI-агента
Бэкенд журнала дел частного детектива

Шаблон бэкенда журнала дел частного детектива
Дела, Доказательства и Выставление счетов

Готовый к производству бэкенд журнала дел частного детектива на Back4app с классами CaseFile, EvidenceItem, SurveillanceNote и BillingEntry. Отслеживайте историю дел, сохраняйте теги доказательств и связывайте выставление счетов с одним и тем же делом.

Основные выводы из журнала дел следователя

Этот шаблон предоставляет бэкэнд журнала дел частного следователя с записями CaseFile, EvidenceItem, SurveillanceNote и BillingEntry, чтобы сотрудники могли вести чистый хронологический файл.

  1. Отслеживание доказательств по каждому делуМодель EvidenceItem с полями evidenceTag, evidenceType, storageUrl и isSealed для каждого элемента.
  2. Хронология заметок наблюденияСвязывайте записи SurveillanceNote с CaseFile с помощью noteTime, location, summary и detail.
  3. Записи о выставлении счетов клиентамИспользуйте BillingEntry для учета часов, ставки, суммы, типа работы и утвержденного лица для каждого CaseFile.
  4. Ролево-ориентированный доступОграничьте доступ к CaseFile, EvidenceItem и BillingEntry с помощью правил ACL и CLP.
  5. Паритет API для веба и мобильных приложенийОбслуживайте React, Flutter, Next.js и нативные приложения через одни и те же REST и GraphQL конечные точки.

Что такое шаблон журнала дел частного следователя?

Если обработка входящих данных журнала дел частного следователя запутана, всё зависимое страдает — чистая фиксация на входе экономит часы на восстановление позже. Ясность лучше героизма. Этот шаблон моделирует CaseFile, EvidenceItem, SurveillanceNote и BillingEntry с ролевым доступом на Back4app, так что каждый участник команды журнала дел частного следователя видит ту часть процесса, за которую он отвечает.

Лучшее для:

Управление делами частного следователяСистемы ведения учета уликИнструменты захвата заметок наблюденияТрекеры выставления счетов клиентамЗапуски MVPКоманды выбирают BaaS для рабочих процессов PI

Что вы получаете в шаблоне журнала частного детектива

В журнале дел частного детектива самые сложные разговоры начинаются с «какой номер является официальным?» — знак того, что серверная часть еще не является авторитетной.

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

Основные функции журнала дел частного детектива

Каждая карточка технологии в этом центре использует одинаковую схему бэкенда журнала дел с 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?

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

  • CaseFile и EvidenceItem остаются связанными: Храните каждую EvidenceItem в CaseFile, чтобы фотографии, квитанции и детали цепочки хранения оставались привязанными к правильному расследованию.
  • Хронологии SurveillanceNote легче читать: Поле noteTime в SurveillanceNote позволяет сортировать журнал наблюдений по времени наблюдения, а не по произвольному тексту.
  • BillingEntry соответствует записи расследования: Захватывайте часы, ставку, сумму и тип работы в BillingEntry, чтобы связать время на месте с billing клиента.

Создайте журнал дел один раз, затем используйте тот же backend-контракт на вебе, мобильных устройствах и панелях следователей.

Преимущества журнала дел PI

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

Чистая информация о улик

Записи EvidenceItem сохраняют evidenceTag, evidenceType, storageUrl и collectedAt для каждого элемента.

Читаемая история наблюдений

Записи SurveillanceNote, связанные с делом, предоставляют хронологически упорядоченный учет с местоположением, резюме и детализацией.

Выставление счетов, соответствующее делу

Запись BillingEntry хранит часы, ставку, сумму и тип работы, связанные с тем же делом, из которого исходила работа.

Контроль доступа к конфиденциальным файлам

Используйте ACL и CLP, чтобы только назначенные следователи могли редактировать дело или добавлять строки EvidenceItem.

Доступ к журналам дел с разных устройств

REST и GraphQL APIs позволяют веб-дэшбордам, мобильным полевым приложениям и инструментам выставления счетов для бэк-офиса считывать одни и те же данные CaseFile.

Быстрое повторное использование схемы

Начните с Пользователя, Дела, Доказательства, Заметки о наблюдениях и Записи о выставлении счетов, а не создавайте записи дела полем за полем.

Готовы запустить ваш журнал дел частного детектива?

Позвольте Back4app AI Agent создать каркас вашего журнала дел и сгенерировать потоки Дела, Доказательства, Заметки о наблюдениях и Записи о выставлении счетов из одной команды.

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

Технологический стек журнала дел

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

Фронтенд
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
    }

Поток синхронизации дел

Типичный рабочий процесс для входа в систему, загрузки CaseFile, загрузки EvidenceItem, создания SurveillanceNote и проверки BillingEntry.

Просмотреть источник диаграммы
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 требовали указатель на файл дела, storageUrl и trail collectedBy.

Ограниченный доступ к чтению

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

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": "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 Agent

Используйте AI Agent Back4app, чтобы сгенерировать приложение для ведения журнала дел реального частного следователя из этого шаблона, включая фронтенд, бэкенд, аутентификацию и потоки CaseFile, EvidenceItem, SurveillanceNote и BillingEntry.

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

Схема:
1. Пользователь (использовать встроенные Back4app): имя пользователя, электронная почта, пароль, роль; objectId, createdAt, updatedAt (система).
2. Дело: номер дела (строка, обязательный), имя клиента (строка, обязательный), статус (строка, обязательный), назначенный детектив (указатель на Пользователя, обязательный), тариф (число, обязательный), дата открытия (дата, обязательный), дата закрытия (дата, необязательный); objectId, createdAt, updatedAt (система).
3. Доказательство: дело (указатель на Дело, обязательный), тег доказательства (строка, обязательный), тип доказательства (строка, обязательный), URL хранения (строка, обязательный), собранно (указатель на Пользователя, обязательный), дата сбора (дата, обязательный), метка местоположения (строка, необязательный), запечатан (логическое, обязательный); objectId, createdAt, updatedAt (система).
4. Записка наблюдения: дело (указатель на Дело, обязательный), время заметки (дата, обязательный), наблюдатель (указатель на Пользователя, обязательный), местоположение (строка, обязательный), краткое содержание (строка, обязательный), детали (строка, обязательный), требует дальнейших действий (логическое, обязательный); objectId, createdAt, updatedAt (система).
5. Запись счета: дело (указатель на Дело, обязательный), дата записи (дата, обязательный), часы (число, обязательный), тариф (число, обязательный), сумма (число, обязательный), тип работы (строка, обязательный), утверждено (указатель на Пользователя, необязательный); objectId, createdAt, updatedAt (система).

Безопасность:
- Ограничьте видимость Дела для назначенных детективов и сотрудников по счетам.
- Записи Доказательства должны быть доступны только для редактирования сотрудниками с доступом к делу.
- Записи Наблюдений должны сохранять хронологическую историю.
- Суммы Записей счета могут редактироваться утвержденными сотрудниками по счетам.

Аутентификация:
- Регистрация, вход, выход.

Поведение:
- Список открытых дел, создание записей доказательства, добавление записей наблюдения, расчет записей счета и отображение живых обновлений активности дела.

Доставка:
- Приложение Back4app со схемой, ACL, CLP; фронтенд для управления делами, учета доказательств, записи наблюдений и выставления счетов клиентам.

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

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

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

API Sandbox

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

Загрузка песочницы…

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

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

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

Flutter Журнал дел частного детектива

React Журнал дел частного детектива

React Native Журнал дел частного детектива

Next.js Журнал дел частного детектива

JavaScript Журнал дел частного детектива

Android Журнал дел частного детектива

iOS Журнал дел частного детектива

Vue Журнал дел частного детектива

Angular Журнал дел частного детектива

GraphQL Журнал дел частного детектива

REST API Журнал дел частного детектива

PHP Журнал дел частного детектива

.NET Журнал дел частного детектива

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

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

Единая структура журнала дел

Управляйте записями пользователей, CaseFile, EvidenceItem, SurveillanceNote и BillingEntry с помощью единой схемы.

Регистрация улик для работы ПД

Записывайте evidenceTag, evidenceType, storageUrl и collectedAt для каждого EvidenceItem.

Таймлайны заметок о наблюдениях

Захватите местоположение, краткое содержание, детали и время заметки для обзора полевых работ.

Записи по выставлению счетов клиентов

Отслеживайте часы, ставку, сумму и тип работы по делу.

REST/GraphQL API для расследований

Интегрируйте веб, мобильные и офисные инструменты с одним контрактом на серверной части.

Расширяемый рабочий процесс дела

Добавляйте новые классы или поля по мере изменения процесса расследования.

Сравнение технологий частных детективов

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

ФреймворкВремя настройкиПреимущество журнала дел PIТип SDKИскусственный интеллект поддержка
Около 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-интерфейс для обзора журнала дел.Напечатанный SDKПолный
Быстрая настройка (5 мин)Корпоративное веб-приложение для дел и выставления счетов.Напечатанный SDKПолный
Менее 2 минутГибкий GraphQL API для вложенных данных дел.GraphQL APIПолный
Быстрая установка (2 минуты)Интеграция REST API для журналов дел PI.REST APIПолный
~3 минутыСерверная часть PHP для рабочих процессов дел.REST APIПолный
~3–7 мин.NET бэкэнд для расследований и выставления счетов.Написанный SDKПолный

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

Часто задаваемые вопросы о журнале дел частного детектива

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

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

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

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

G2 Users Love Us Badge

Готовы создать приложение для журнала дел частного детектива?

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

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