Modelo de Backend de Aplicativo de Denúncia Anônima Interno
Registros de Casos Anônimos e Acompanhamento de Investigação
Um backend interno de denúncia anônima pronto para produção em Back4app com registros anônimos, acompanhamento de status de casos e notas de investigação. Inclui diagrama ER, dicionário de dados, esquema JSON, playground de API e um prompt de Agente de IA para inicialização rápida.
Principais Conclusões
Este modelo fornece a você um backend interno de denunciante com registros anônimos, status de casos e notas de investigação para que sua equipe possa manter o recebimento, triagem e acompanhamento em um único sistema.
- Recebimento de logs anônimos — Armazene relatórios no WhistleblowerLog com campos seguros para o caso, como reportChannel e anonymityFlag.
- Rastreamento de status do caso — Use as mudanças de status do CaseFile para mostrar se um assunto é novo, está em revisão, foi escalado ou está fechado.
- Notas de investigação em contexto — Anexe entradas de InvestigationNote a um CaseFile para que os investigadores possam registrar ações, resultados e próximos passos.
Visão geral: Denunciante interno
Uma boa higiene de denunciante interno significa que os revisores podem amostrar um registro e entender imediatamente o escopo, status e a próxima ação necessária. A solução é operacional, não motivacional. Use Reporter, WhistleblowerLog, CaseFile e InvestigationNote como primitivas de conformidade estruturadas no Back4app para que os fluxos de trabalho de denunciantes internos permaneçam consistentes entre locais e turnos. O esquema cobre Reporter (alias, contactMethod, consentToFollowUp), WhistleblowerLog (reportChannel, category, details, anonymityFlag), CaseFile (caseNumber, status, priority, assignedCoordinator) e InvestigationNote (caseFile, noteText, noteType, createdBy) com autenticação, coleta anonimizada e gerenciamento de casos integrados. Conecte sua interface preferida e envie mais rápido.
Melhor para:
Visão geral do backend para Denunciante Interno
Mudanças sazonais atingem o denunciante interno com mais força quando há alterações na equipe, mas o modelo de dados não se adapta a novos SKUs, locais ou políticas.
Este resumo orienta as equipes sobre Reporter, WhistleblowerLog e CaseFile antes que alguém mergulhe em diagramas de ER ou exportações JSON.
Recursos principais para denunciantes
Cada cartão de tecnologia neste hub utiliza o mesmo esquema de backend para denunciantes com Reporter, WhistleblowerLog, CaseFile e InvestigationNote.
Coleta de denunciantes
O denunciante armazena alias, contactMethod e consentToFollowUp.
Registros anônimos
Os registros do WhistleblowerLog documentam canalDeRelato, categoria, detalhes e bandeiraDeAnonimato.
Acompanhamento de status do caso
O CaseFile mantém númeroDoCaso, status, prioridade e coordenadorAtribuído.
Notas de investigação
InvestigationNote vincula caseFile, noteType, noteText e createdBy.
Por que construir seu backend de Denunciante Interno com Back4app?
Back4app oferece primitivas de reporter, caso e nota para que sua equipe possa se concentrar no fluxo de trabalho de coleta e investigação em vez da infraestrutura.
- •CaseFile e WhistleblowerLog em um único modelo: WhistleblowerLog captura detalhes anônimos, enquanto CaseFile mantém status, prioridade e atribuição para a equipe de investigação.
- •Acesso controlado a notas sensíveis: As entradas da InvestigationNote podem ser limitadas a coordenadores e revisores designados usando validação de ACL e Cloud Code.
- •Flexibilidade da API em tempo real: Use Live Queries para mudanças de status de caso enquanto mantém REST e GraphQL disponíveis para dashboards de funcionários e ferramentas de auditoria.
Construa e itere rapidamente na coleta de denúncias com um único contrato de backend em todas as plataformas.
Benefícios principais
Um backend para denunciantes que ajuda você a passar da submissão anônima para o manuseio de casos sem perder o controle do registro.
Configuração de intake mais rápida
Comece a partir de um esquema completo de Reporter, WhistleblowerLog, CaseFile e InvestigationNote em vez de projetar tabelas de casos do zero.
Transferência de status mais limpa
Use os campos de status de CaseFile e assignedCoordinator para que os coordenadores saibam quais questões são novas, ativas ou fechadas.
Manutenção de notas protegidas
Mantenha as gravações de InvestigationNote limitadas a revisores e investigadores autorizados.
Limitar acessos claramente
Separe o conteúdo do log anônimo dos dados de contato do repórter e proteja ambos com ACL/CLP.
Histórico do caso em um só lugar
Armazene logs de denunciantes e notas de investigação juntas para que as equipes de revisão possam acompanhar a sequência de eventos.
Bootstrap assistido por IA
Gere estruturas de backend e orientações de integração rapidamente com um único prompt estruturado.
Pronto para lançar seu aplicativo de denúncias?
Deixe o agente de IA Back4app criar a estrutura do seu backend de denunciante interno e gerar logs anônimos, status de casos e notas de investigação a partir de um único prompt.
Gratuito para começar — 50 prompts de Agente de IA/mês, sem necessidade de cartão de crédito
Stack Técnico
Tudo incluído neste modelo de backend de denunciante interno.
Diagrama ER
Modelo de relacionamento de entidades para o esquema de backend de denunciantes internos.
Esquema envolvendo repórteres, registros anônimos, arquivos de caso e notas de investigação.
Ver fonte do diagrama
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
}
Fluxo de Integração
Fluxo típico de execução para autenticação, recebimento de registros anônimos, atualizações de status de casos e notas de investigação.
Ver fonte do diagrama
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 timelineDicionário de Dados
Referência completa de nível de campo para cada classe no esquema do denunciante.
| Campo | Tipo | Descrição | Requerido |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | Auto |
| 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 | Auto |
| updatedAt | Date | Auto-generated last-update timestamp | Auto |
8 campos em User
Segurança e Permissões
Como a estratégia ACL e CLP protege repórteres, logs anônimos, arquivos de caso e notas de investigação.
Controles de privacidade do repórter
Trate o contactMethod do repórter e o consentToFollowUp como campos restritos; apenas coordenadores aprovados podem visualizar os detalhes de acompanhamento.
Integridade do log anônimo
Apenas funcionários autenticados podem criar ou fechar itens de CaseFile, enquanto as submissões de WhistleblowerLog podem permanecer anônimas por design.
Acesso de investigação com escopo
Restringir leituras e gravações em InvestigationNote e CaseFile a revisores designados, líderes de conformidade ou coordenadores.
Esquema (JSON)
Definição de esquema JSON bruta pronta para copiar para Back4app ou usar como referência de implementação.
{
"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
}
}
}
]
}Construir com Agente de IA
Use o agente de IA Back4app para gerar um aplicativo interno de denunciantes real a partir deste modelo, incluindo frontend, backend, autenticação, e fluxos de log anônimo, status do caso e notas de investigação.
Crie um backend de aplicativo interno de denunciantes no Back4app com este esquema e comportamento exatos. Esquema: 1. Usuário (use o Back4app embutido): nome de usuário, e-mail, senha; objectId, createdAt, updatedAt (sistema). 2. Reporter: alias (String, obrigatório), contactMethod (String), consentToFollowUp (Boolean, obrigatório); objectId, createdAt, updatedAt (sistema). 3. WhistleblowerLog: reporter (Ponteiro para Reporter, opcional), reportChannel (String, obrigatório), category (String, obrigatório), details (String, obrigatório), anonymityFlag (Boolean, obrigatório), submittedAt (Data, obrigatório); objectId, createdAt, updatedAt (sistema). 4. CaseFile: caseNumber (String, obrigatório), log (Ponteiro para WhistleblowerLog, obrigatório), status (String, obrigatório), priority (String, obrigatório), assignedCoordinator (Ponteiro para Usuário, opcional), openedAt (Data, obrigatório), closedAt (Data); objectId, createdAt, updatedAt (sistema). 5. InvestigationNote: caseFile (Ponteiro para CaseFile, obrigatório), noteType (String, obrigatório), noteText (String, obrigatório), createdBy (Ponteiro para Usuário, obrigatório), createdAt (Data, obrigatório); objectId, createdAt, updatedAt (sistema). Segurança: - Proteja contactMethod e consentToFollowUp do Reporter. Use ACL/CLP para que apenas coordenadores aprovados possam visualizar detalhes restritos. - Apenas funcionários autenticados podem criar ou fechar itens de CaseFile. Use Cloud Code para validação. - Restringir leituras e escritos em InvestigationNote aos revisores e coordenadores designados. Autenticação: - Inscrever-se, fazer login, sair. Comportamento: - Enviar logs anônimos, listar arquivos de casos, atualizar status do caso e adicionar notas de investigação. Entregar: - Aplicativo Back4app com esquema, ACLs, CLPs; frontend para intake anônimo, arquivos de casos e notas de investigação.
Pressione o botão abaixo para abrir o Agente com este prompt de modelo pré-preenchido.
Este é o prompt base sem um sufixo de tecnologia. Você pode adaptar a pilha de frontend gerada depois.
API Playground
Experimente os endpoints REST e GraphQL com o esquema do denunciante. As respostas usam dados fictícios e não requerem uma conta Back4app.
Usa o mesmo esquema que este modelo.
Escolha Sua Tecnologia
Expanda cada cartão para ver como integrar Reporter, WhistleblowerLog e CaseFile com sua pilha escolhida.
Flutter Backend de Denunciante Interno
React Backend de Denunciante Interno
React Nativo Backend de Denunciante Interno
Next.js Backend de Denunciante Interno
JavaScript Backend de Denunciante Interno
Android Backend de Denunciante Interno
iOS Backend de Denunciante Interno
Vue Backend de Denunciante Interno
Angular Backend de Denunciante Interno
GraphQL Backend de Denunciante Interno
REST API Backend de Denunciante Interno
PHP Backend de Denunciante Interno
.NET Backend de Denunciante Interno
O que você ganha com cada tecnologia
Todo stack usa o mesmo esquema de backend e contratos de API para denunciantes.
Estrutura de dados unificada para denunciantes
Gerencie denunciantes, registros anônimos, arquivos de casos e anotações de investigação com um esquema consistente.
Recepção anônima para relatórios internos
Capturar reportChannel, categoria, detalhes e anonymityFlag em um fluxo de trabalho limpo.
Visibilidade do status do caso para coordenadores
Mantenha caseNumber, status e assignedCoordinator sincronizados em toda a equipe.
Acesso controlado a anotações para investigadores
Limite as visualizações de InvestigationNote para a equipe certa sem expor detalhes de acompanhamento.
Comparação de Tecnologia
Compare a velocidade de configuração, o estilo do SDK e o suporte a IA entre todas as tecnologias suportadas.
| Framework | Tempo de Configuração | Benefício do App de Denunciante | Tipo de SDK | Suporte a IA |
|---|---|---|---|---|
| Cerca de 5 min | Base de código única para coleta de denúncias em dispositivos móveis e na web. | SDK Digitado | Completo | |
| Menos de 5 minutos | Painel da web rápido para status e notas do caso. | SDK Digitado | Completo | |
| ~3–7 min | Aplicativo móvel multiplataforma para relatórios anônimos. | SDK Digitado | Completo | |
| Configuração rápida (5 min) | Painel de revisão de caso renderizado no servidor. | SDK Digitado | Completo | |
| ~3–5 min | Integração leve de relatório interno. | SDK Digitado | Completo | |
| Cerca de 5 min | Aplicativo nativo Android para entrada de logs anônimos. | SDK tipado | Completo | |
| Menos de 5 minutos | Aplicativo nativo iOS para revisão de casos. | SDK tipado | Completo | |
| ~3–7 min | Console de equipe Reactive para casos de denunciantes. | SDK tipado | Completo | |
| Configuração rápida (5 min) | Painel corporativo para investigações. | SDK digitado | Completo | |
| Menos de 2 min | API flexível GraphQL para casos de denunciantes. | API GraphQL | Completo | |
| Configuração rápida (2 min) | Integração REST API para registros e casos anônimos. | REST API | Completo | |
| ~3 min | Fluxo de trabalho do PHP no lado do servidor para tratamento de casos. | REST API | Completo | |
| ~3–7 min | Backend do .NET para operações de denúncia. | SDK Tipado | Completo |
O tempo de configuração reflete a duração esperada desde o início do projeto até o primeiro registro de denunciante ou consulta de caso usando este esquema de template.
Perguntas Frequentes
Perguntas comuns sobre como construir um backend interno de delação com este modelo.
Pronto para construir seu aplicativo interno de denúncias?
Inicie seu projeto interno de denúncias em minutos. Nenhum cartão de crédito necessário.