Шаблон бэкенда внутреннего информатора
Анонимные журналы дел и отслеживание расследований
Готовый к производству внутренний бэкенд для информаторов на Back4app с анонимными журналами, отслеживанием статуса дел и заметками о расследовании. Включает диаграмму сущностей, словарь данных, схему JSON, тестовую среду API и AI Agent запрос для быстрого начала работы.
Ключевые выносы
Этот шаблон дает вам внутренний бэкэнд для информаторов с анонимными записями, статусом дел и заметками по расследованию, чтобы ваша команда могла вести прием, сортировку и последующее отслеживание в одной системе.
- Анонимный прием записей — Храните отчеты в WhistleblowerLog с безопасными для дела полями, такими как reportChannel и anonymityFlag.
- Отслеживание статуса дел — Используйте изменения статуса CaseFile, чтобы показать, находится ли дело в новом состоянии, на рассмотрении, передано на повышение или закрыто.
- Заметки по расследованию в контексте — Прикрепляйте записи InvestigationNote к CaseFile, чтобы следователи могли фиксировать действия, результаты и следующие шаги.
Обзор: Внутренний информатор
Хорошая практика внутреннего информирования означает, что рецензенты могут ознакомиться с записью и сразу понять объем, статус и следующее необходимое действие. Решение носит операционный, а не мотивационный характер. Используйте Reporter, WhistleblowerLog, CaseFile и InvestigationNote как структурированные примитивы соблюдения на Back4app, чтобы рабочие процессы внутренних информаторов оставались последовательными на разных площадках и сменах. Схема охватывает Reporter (псевдоним, способ связи, согласие на последующие контакты), WhistleblowerLog (канал сообщения, категория, детали, флаг анонимности), CaseFile (номер дела, статус, приоритет, назначенный координатор) и InvestigationNote (дело, текст заметки, тип заметки, создано) с авторизацией, анонимным вводом и обработкой дела "встроенными". Подключите ваш предпочтительный фронтенд и отправляйте быстрее.
Лучше всего для:
Обзор внутреннего бэкэнда для информаторов
Сезонные колебания сильно ударяют по внутренним информаторам, когда изменяется кадровая ситуация, но модель данных не адаптируется к новым SKU, сайтам или политикам.
Этот обзор ориентирует команды на Reporter, WhistleblowerLog, и CaseFile, прежде чем кто-то углубится в диаграммы ER или экспорт JSON.
Основные функции для сообщателей о нарушениях
Каждая карточка технологии в этом хабе использует одинаковую схему бэкенда для информаторов с Reporter, WhistleblowerLog, CaseFile и InvestigationNote.
Прием информации о сообщателях
Сообщатель хранит псевдоним, контактный метод и согласие на обратную связь.
Анонимные журналы
WhistleblowerLog регистрирует reportChannel, категорию, детали и anonymityFlag.
Отслеживание статуса дела
CaseFile содержит caseNumber, статус, приоритет и assignedCoordinator.
Записи расследования
InvestigationNote связывает caseFile, noteType, noteText и createdBy.
Почему стоит создать ваш внутренний бэкэнд для информаторов с Back4app?
Back4app предоставляет вам примитивы для репортера, дела и заметки, чтобы ваша команда могла сосредоточиться на потоке приема и расследования, а не на инфраструктуре.
- •CaseFile и WhistleblowerLog в одной модели: WhistleblowerLog фиксирует анонимные детали, в то время как CaseFile содержит статус, приоритет и назначения для команды расследования.
- •Контролируемый доступ к конфиденциальным заметкам: Записи InvestigationNote могут быть ограничены только координаторами и назначенными проверяющими с использованием ACL и валидации Cloud Code.
- •Realtime плюс гибкость API: Используйте Live Queries для изменения статуса дела, сохраняя REST и GraphQL доступными для панелей управления и инструментов аудита.
Быстро создавайте и дорабатывайте процессы приема жалоб с помощью одного контракта для всех платформ.
Основные преимущества
Бэкэнд для информаторов, который помогает вам перейти от анонимной подачи заявлений к обработке дел, не теряя из виду записи.
Быстрая настройка приема
Начните с полной схемы Reporter, WhistleblowerLog, CaseFile и InvestigationNote, а не проектируйте таблицы дел с нуля.
Чистая передача статуса
Используйте поля статуса CaseFile и assignedCoordinator, чтобы координаторы знали, какие дела новые, активные или закрыты.
Обработка защищённых заметок
Ограничьте записи InvestigationNote только авторизованным рецензентам и investigatiuon.
Очистить границы доступа
Отделите анонимный контент журналов от контактных данных репортёра и защитите оба с помощью ACL/CLP.
История дел в одном месте
Храните журналы о разоблачителях и записки расследований вместе, чтобы команды проверки могли отслеживать последовательность событий.
AI-ассистируемый начальный этап
Быстро создавайте бэкенд с помощью одного структурированного запроса и получайте инструкции по интеграции.
Готовы запустить ваше приложение для разоблачителей?
Позвольте AI-агенту Back4app создать вашу внутреннюю систему для сообщения о нарушениях и генерировать анонимные журналы, статус дела и заметки по расследованию с одной команды.
Бесплатно для начала — 50 команд для AI-агента в месяц, без необходимости ввода данных кредитной карты
Технический стек
Все включено в этот шаблон внутренней системы для сообщения о нарушениях.
ER-диаграмма
Модель взаимосвязей сущностей для внутренней схемы для информаторов.
Схема, охватывающая репортеров, анонимные журналы, дела и записи расследования.
Смотреть источник диаграммы
erDiagram
User ||--o{ WhistleblowerCase : "reportedBy"
User ||--o{ WhistleblowerCase : "assignedTo"
User ||--o{ InvestigationNote : "author"
User ||--o{ CaseStatusUpdate : "updatedBy"
WhistleblowerCase ||--o{ AnonymousLog : "case"
WhistleblowerCase ||--o{ InvestigationNote : "case"
WhistleblowerCase ||--o{ CaseStatusUpdate : "case"
User {
String objectId PK
String username
String email
String password
String role
String fullName
Date createdAt
Date updatedAt
}
WhistleblowerCase {
String objectId PK
String caseNumber
String title
String category
String status
String priority
String reportedById FK
String assignedToId FK
String anonymousCode
String summary
Date createdAt
Date updatedAt
}
AnonymousLog {
String objectId PK
String caseId FK
String message
String visibility
Date submittedAt
String authorCode
Date createdAt
Date updatedAt
}
InvestigationNote {
String objectId PK
String caseId FK
String authorId FK
String noteType
String noteText
Boolean isInternalOnly
Date createdAt
Date updatedAt
}
CaseStatusUpdate {
String objectId PK
String caseId FK
String updatedById FK
String fromStatus
String toStatus
String statusComment
Date updatedAtTime
Date createdAt
Date updatedAt
}
Поток интеграции
Типичный поток выполнения для аутентификации, intake анонимных журналов, обновлений статуса дел и записей расследования.
Просмотреть источник диаграммы
sequenceDiagram
participant User
participant App as Internal Whistleblower App
participant Back4app as Back4app Cloud
User->>App: Sign in as manager or coordinator
App->>Back4app: POST /login
Back4app-->>App: Session token
User->>App: Open case queue
App->>Back4app: GET /classes/WhistleblowerCase?include=reportedBy,assignedTo&order=-updatedAt
Back4app-->>App: Case list with status and anonymousCode
User->>App: Add anonymous log or investigation note
App->>Back4app: POST /classes/AnonymousLog
App->>Back4app: POST /classes/InvestigationNote
Back4app-->>App: Log and note objectIds
User->>App: Update case status
App->>Back4app: POST /classes/CaseStatusUpdate
App->>Back4app: PUT /classes/WhistleblowerCase/:objectId
Back4app-->>App: Updated case status and timelineСловарь данных
Полное справочное руководство по каждому полю в схеме информатора.
| Поле | Тип | Описание | Обязательно |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | Авто |
| username | String | User login name | |
| String | User email address | ||
| password | String | Hashed password (write-only) | |
| role | String | User role such as manager, coordinator, or investigator | |
| fullName | String | Display name for internal staff | — |
| createdAt | Date | Auto-generated creation timestamp | Авто |
| updatedAt | Date | Auto-generated last-update timestamp | Авто |
8 поля в User
Безопасность и разрешения
Как стратегия ACL и CLP защищает репортеров, анонимные журналы, досье дел и записи расследований.
Контроль конфиденциальности репортера
Обрабатывать contactMethod и consentToFollowUp репортера как ограниченные поля; только утвержденные координаторы могут видеть детали последующих действий.
Целостность анонимного журнала
Только аутентифицированный персонал может создавать или закрывать элементы CaseFile, в то время как заявки WhistleblowerLog могут оставаться анонимными по замыслу.
Ограниченный доступ к расследованию
Ограничить чтение и запись на InvestigationNote и CaseFile для назначенных рецензентов, руководителей по соблюдению норм или координаторов.
Схема (JSON)
Сырая схема JSON, готовая к копированию в Back4app или в качестве ссылочного материала для реализации.
{
"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
},
"fullName": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "WhistleblowerCase",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"caseNumber": {
"type": "String",
"required": true
},
"title": {
"type": "String",
"required": true
},
"category": {
"type": "String",
"required": true
},
"status": {
"type": "String",
"required": true
},
"priority": {
"type": "String",
"required": true
},
"reportedBy": {
"type": "Pointer",
"required": false,
"targetClass": "User"
},
"assignedTo": {
"type": "Pointer",
"required": false,
"targetClass": "User"
},
"anonymousCode": {
"type": "String",
"required": true
},
"summary": {
"type": "String",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "AnonymousLog",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"case": {
"type": "Pointer",
"required": true,
"targetClass": "WhistleblowerCase"
},
"message": {
"type": "String",
"required": true
},
"visibility": {
"type": "String",
"required": true
},
"submittedAt": {
"type": "Date",
"required": true
},
"authorCode": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "InvestigationNote",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"case": {
"type": "Pointer",
"required": true,
"targetClass": "WhistleblowerCase"
},
"author": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"noteType": {
"type": "String",
"required": true
},
"noteText": {
"type": "String",
"required": true
},
"isInternalOnly": {
"type": "Boolean",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "CaseStatusUpdate",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"case": {
"type": "Pointer",
"required": true,
"targetClass": "WhistleblowerCase"
},
"updatedBy": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"fromStatus": {
"type": "String",
"required": true
},
"toStatus": {
"type": "String",
"required": true
},
"statusComment": {
"type": "String",
"required": true
},
"updatedAtTime": {
"type": "Date",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
}
]
}Создать с помощью AI-агента
Используйте AI-агента Back4app для создания настоящего внутреннего приложения для информаторов на основе этого шаблона, включая фронтенд, бэкенд, авторизацию и анонимные журналы, статусы дел и потоки заметок об расследованиях.
Создайте бэкенд внутреннего приложения для информаторов на Back4app с этой точной схемой и поведением. Схема: 1. Пользователь (используйте встроенный Back4app): имя пользователя, электронная почта, пароль; objectId, createdAt, updatedAt (система). 2. Информатор: псевдоним (строка, обязательно), способ связи (строка), согласие на обратную связь (логическое, обязательно); objectId, createdAt, updatedAt (система). 3. Журнал информатора: информатор (указатель на информатора, необязательно), канал сообщения (строка, обязательно), категория (строка, обязательно), детали (строка, обязательно), признак анонимности (логическое, обязательно), отправлено (дата, обязательно); objectId, createdAt, updatedAt (система). 4. Дело: номер дела (строка, обязательно), журнал (указатель на журнал информатора, обязательно), статус (строка, обязательно), приоритет (строка, обязательно), назначенный координатор (указатель на пользователя, необязательно), открыто (дата, обязательно), закрыто (дата); objectId, createdAt, updatedAt (система). 5. Заметка о расследовании: дело (указатель на дело, обязательно), тип заметки (строка, обязательно), текст заметки (строка, обязательно), создано (указатель на пользователя, обязательно), создано (дата, обязательно); objectId, createdAt, updatedAt (система). Безопасность: - Защитите способ связи информатора и согласие на обратную связь. Используйте ACL/CLP, чтобы только утвержденные координаторы могли видеть ограниченные детали. - Только аутентифицированный персонал может создавать или закрывать элементы дела. Используйте Cloud Code для проверки. - Ограничьте чтение и записи заметок о расследовании для назначенных рецензентов и координаторов. Авторизация: - Регистрация, вход, выход. Поведение: - Отправляйте анонимные журналы, просматривайте дела, обновляйте статусы дел и добавляйте заметки о расследованиях. Доставка: - Приложение Back4app с схемой, ACL, CLP; фронтенд для анонимного приема, дел и заметок о расследованиях.
Нажмите кнопку ниже, чтобы открыть агента с предварительно заполненным шаблоном.
Это базовый запрос без суффикса технологии. Вы можете адаптировать сгенерированный стек фронтенда позже.
API Площадка
Попробуйте REST и GraphQL конечные пункты против схемы информатора. Ответы используют фиктивные данные и не требуют учетной записи Back4app.
Использует ту же схему, что и этот шаблон.
Выберите вашу технологию
Разверните каждую карточку, чтобы увидеть, как интегрировать Reporter, WhistleblowerLog и CaseFile с вашим выбранным стеком.
Flutter Внутренний информатор Бэкенд
React Внутренний информатор Бэкенд
React Native Внутренний информатор Бэкенд
Next.js Внутренний информатор Бэкенд
JavaScript Внутренний информатор Бэкенд
Android Внутренний информатор Бэкенд
iOS Внутренний информатор Бэкенд
Vue Внутренний информатор Бэкенд
Angular Внутренний информатор Бэкенд
GraphQL Внутренний информатор Бэкенд
REST API Внутренний информатор Бэкенд
PHP Внутренний информатор Бэкенд
.NET Внутренний информатор Бэкенд
Что вы получаете с каждой технологией
Каждый стек использует одну и ту же схему бэкенда и API-контракты для информаторов.
Унифицированная структура данных информаторов
Управляйте репортерами, анонимными записями, делами и заметками по расследованиям с помощью одной консистентной схемы.
Анонимный прием для внутренней отчетности
Запишите reportChannel, категорию, детали и anonymityFlag в чистом рабочем процессе.
Видимость статуса дела для координаторов
Синхронизируйте caseNumber, статус и assignedCoordinator по команде.
Контролируемый доступ к заметкам для расследователей
Ограничьте просмотры InvestigationNote для нужного персонала, не раскрывая детали последующих действий.
Сравнение технологий
Сравните скорость настройки, стиль SDK и поддержку ИИ среди всех поддерживаемых технологий.
| Фреймворк | Время настройки | Польза приложения для информаторов | Тип SDK | Поддержка ИИ |
|---|---|---|---|---|
| Около 5 минут | Единая кодовая база для приема сообщений информаторов на мобильных и веб-платформах. | Набранный SDK | Полный | |
| Менее 5 минут | Быстрая веб-панель для статуса дел и заметок. | Написанный SDK | Полный | |
| ~3–7 мин | Кросс-платформенное мобильное приложение для анонимных отчетов. | Написанный SDK | Полный | |
| Быстрая настройка (5 мин) | Панель обзора дел, отображаемая на сервере. | Написанный SDK | Полный | |
| ~3–5 мин | Легкая интеграция внутренней отчетности. | Написанный SDK | Полный | |
| Около 5 мин | Нативное приложение Android для анонимного ввода данных. | Типизированный SDK | Полный | |
| Менее 5 минут | Нативное приложение iOS для анализа случаев. | Типизированный SDK | Полный | |
| ~3–7 мин | React-консоль для сотрудников по делам о негласных информаторах. | Типизированный SDK | Полный | |
| Быстрая настройка (5 мин) | Корпоративная панель управления для расследований. | Набранный SDK | Полный | |
| Менее 2 минут | Гибкий GraphQL API для дел о раскрытии информации. | GraphQL API | Полный | |
| Быстрая настройка (2 мин) | Интеграция REST API для анонимных логов и дел. | REST API | Полный | |
| ~3 мин | Серверная сторона PHP рабочего процесса для обработки случаев. | REST API | Полный | |
| ~3–7 мин | Бэкенд .NET для операций с информаторами. | Типизированный SDK | Полный |
Время настройки отражает ожидаемую продолжительность от начальной настройки проекта до первого журнала информатора или запроса по делу с использованием этой схемы шаблона.
Часто задаваемые вопросы
Общие вопросы о создании внутреннего бекенда для информаторов с помощью этого шаблона.
Готовы создать своё внутреннее приложение для информаторов?
Начните свой внутренний проект для информаторов за считанные минуты. Кредитная карта не требуется.