Plantilla de Backend de la Aplicación de Denuncias Internas
Registros de Casos Anónimos y Seguimiento de Investigaciones
Un backend de denuncia interna listo para producción en Back4app con registros anónimos, seguimiento del estado del caso y notas de investigación. Incluye diagrama ER, diccionario de datos, esquema JSON, playground de API, y un prompt de Agente AI para un arranque rápido.
Puntos clave
Esta plantilla te proporciona un backend interno para denunciantes con registros anónimos, estado de casos y notas de investigación para que tu equipo pueda mantener la recepción, el triaje y el seguimiento en un solo sistema.
- Recepción de registros anónimos — Almacena informes en WhistleblowerLog con campos seguros para el caso como reportChannel y anonymityFlag.
- Seguimiento del estado del caso — Utiliza los cambios de estado de CaseFile para mostrar si un asunto es nuevo, está en revisión, se ha escalado o está cerrado.
- Notas de investigación en contexto — Adjunta entradas de InvestigationNote a un CaseFile para que los investigadores puedan registrar acciones, resultados y próximos pasos.
Descripción general: Denunciante interno
Una buena higiene interna de denunciantes significa que los revisores pueden muestrear un registro y entender inmediatamente el alcance, el estado y la siguiente acción requerida. La solución es operativa, no motivacional. Utilice Reporter, WhistleblowerLog, CaseFile e InvestigationNote como primitivas de cumplimiento estructuradas en Back4app para que los flujos de trabajo de denunciantes internos se mantengan consistentes en todos los sitios y turnos. El esquema cubre Reporter (alias, contactMethod, consentToFollowUp), WhistleblowerLog (reportChannel, category, details, anonymityFlag), CaseFile (caseNumber, status, priority, assignedCoordinator) e InvestigationNote (caseFile, noteText, noteType, createdBy) con autenticación, ingreso anonimizado y manejo de casos incorporados. Conecte su frontend preferido y entregue más rápido.
Mejor para:
Resumen del backend de denunciantes internos
Los cambios estacionales afectan más a los denunciantes internos cuando cambian el personal, pero el modelo de datos no se adapta a nuevos SKUs, sitios o políticas.
Este resumen orienta a los equipos sobre Reporter, WhistleblowerLog y CaseFile antes de que alguien indague en diagramas ER o exportaciones JSON.
Características principales del denunciante
Cada tarjeta de tecnología en este hub utiliza el mismo esquema de backend para denunciantes con Reportero, RegistroDeDenunciante, ExpedienteDeCaso e InvestigaciónNota.
Admisión de denunciantes
El denunciante almacena alias, método de contacto y consentimiento para seguimiento.
Registros anónimos
WhistleblowerLog registra reportChannel, category, details, y anonymityFlag.
Seguimiento del estado del caso
CaseFile mantiene caseNumber, status, priority y assignedCoordinator.
Notas de investigación
InvestigaciónNota vincula expedienteDeCaso, tipoDeNota, textoDeNota y creadoPor.
¿Por qué construir tu backend de denunciante interno con Back4app?
Back4app te proporciona primitivas de reportero, caso y nota para que tu equipo pueda centrarse en el flujo de trabajo de admisión e investigación en lugar de la infraestructura.
- •CaseFile y WhistleblowerLog en un modelo: WhistleblowerLog captura detalles anónimos mientras que CaseFile mantiene el estado, la prioridad y la asignación para el equipo de investigación.
- •Acceso controlado a notas sensibles: Las entradas de InvestigationNote pueden limitarse a coordinadores y revisores asignados mediante ACL y validación de Cloud Code.
- •Flexibilidad del API en tiempo real más: Utiliza Live Queries para cambios en el estado del caso mientras mantienes REST y GraphQL disponibles para paneles de control del personal y herramientas de auditoría.
Construye e itera rápidamente sobre la admisión de denunciantes con un contrato de backend en todas las plataformas.
Beneficios principales
Un backend para denunciantes que te ayuda a pasar de la presentación anónima a la gestión de casos sin perder el rastro del registro.
Configuración de ingesta más rápida
Comienza desde un esquema completo de Reportero, RegistroDeDenunciante, ExpedienteDeCaso e InvestigaciónNota en lugar de diseñar tablas de casos desde cero.
Transferencia de estado más clara
Utiliza los campos de estado de ExpedienteDeCaso y coordinadorAsignado para que los coordinadores sepan qué asuntos son nuevos, activos o cerrados.
Manejo de notas protegidas
Mantenga las escrituras de InvestigationNote limitadas a revisores e investigadores autorizados.
Limitar accesos claros
Separe el contenido de registro anónimo de los datos de contacto del reportero y proteja ambos con ACL/CLP.
Historia del caso en un solo lugar
Almacene los registros de denunciantes y las notas de investigación juntos para que los equipos de revisión puedan seguir la secuencia de eventos.
Bootstrap asistido por IA
Genere estructura de backend y orientación de integración rápido con un solo aviso estructurado.
¿Listo para lanzar su aplicación de denuncias?
Deja que el agente de IA de Back4app construya tu backend interno de denuncias y genere registros anónimos, estado de los casos y notas de investigación a partir de un solo aviso.
Gratis para empezar — 50 avisos de agente de IA/mes, no se requiere tarjeta de crédito
Stack Técnico
Todo incluido en esta plantilla de backend interno de denuncias.
Diagrama ER
Modelo de relación de entidades para el esquema de backend interno de denunciantes.
Esquema que cubre reporteros, registros anónimos, archivos de caso y notas de investigación.
Ver origen del 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
}
Flujo de integración
Flujo de ejecución típico para la autenticación, recepción de registros anónimos, actualizaciones del estado del caso y notas de investigación.
Ver fuente del 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 timelineDiccionario de datos
Referencia completa a nivel de campo para cada clase en el esquema de alertadores.
| Campo | Tipo | Descripción | Requerido |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | Automático |
| 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 | Automático |
| updatedAt | Date | Auto-generated last-update timestamp | Automático |
8 campos en User
Seguridad y Permisos
Cómo la estrategia de ACL y CLP asegura a los reporteros, registros anónimos, archivos de casos y notas de investigación.
Controles de privacidad del reportero
Tratar el método de contacto del reportero y el consentimiento para el seguimiento como campos restringidos; solo los coordinadores aprobados pueden ver los detalles del seguimiento.
Integridad del registro anónimo
Solo el personal autenticado puede crear o cerrar elementos de CaseFile, mientras que las presentaciones de WhistleblowerLog pueden permanecer anónimas por diseño.
Acceso a investigación limitado
Restringir lecturas y escrituras en InvestigationNote y CaseFile a revisores asignados, líderes de cumplimiento o coordinadores.
Esquema (JSON)
Definición de esquema JSON en bruto lista para copiar en Back4app o usar como referencia de implementación.
{
"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 con agente de IA
Usa el agente de IA Back4app para generar una aplicación interna de denunciantes real a partir de esta plantilla, incluyendo frontend, backend, autenticación, y flujos de registro anónimo, estado del caso y notas de investigación.
Crea un backend de aplicación interna de denunciantes en Back4app con este esquema y comportamiento exactos. Esquema: 1. Usuario (usar Back4app integrado): nombre de usuario, correo electrónico, contraseña; objectId, createdAt, updatedAt (sistema). 2. Reportero: alias (String, requerido), métodoDeContacto (String), consentimientoParaSeguimiento (Booleano, requerido); objectId, createdAt, updatedAt (sistema). 3. RegistroDeDenunciante: reportero (Puntero a Reportero, opcional), canalDeReporte (String, requerido), categoría (String, requerido), detalles (String, requerido), banderaDeAnonimato (Booleano, requerido), enviadoEn (Fecha, requerido); objectId, createdAt, updatedAt (sistema). 4. ArchivoDeCaso: númeroDeCaso (String, requerido), registro (Puntero a RegistroDeDenunciante, requerido), estado (String, requerido), prioridad (String, requerido), coordinadorAsignado (Puntero a Usuario, opcional), abiertoEn (Fecha, requerido), cerradoEn (Fecha); objectId, createdAt, updatedAt (sistema). 5. NotaDeInvestigación: archivoDeCaso (Puntero a ArchivoDeCaso, requerido), tipoDeNota (String, requerido), textoDeNota (String, requerido), creadoPor (Puntero a Usuario, requerido), creadoEn (Fecha, requerido); objectId, createdAt, updatedAt (sistema). Seguridad: - Proteger el métodoDeContacto del reportero y consentimientoParaSeguimiento. Usa ACL/CLP para que solo coordinadores aprobados puedan ver detalles restringidos. - Solo el personal autenticado puede crear o cerrar elementos de ArchivoDeCaso. Usa Cloud Code para validación. - Restringir lecturas y escrituras en NotaDeInvestigación a revisores y coordinadores asignados. Autenticación: - Registro, inicio de sesión, cierre de sesión. Comportamiento: - Enviar registros anónimos, listar archivos de casos, actualizar estado de caso y agregar notas de investigación. Entregar: - Aplicación Back4app con esquema, ACLs, CLPs; frontend para ingresos anónimos, archivos de casos y notas de investigación.
Presiona el botón de abajo para abrir el agente con este aviso de plantilla pre-lleno.
Este es el aviso base sin un sufijo tecnológico. Puedes adaptar la pila de frontend generada después.
API Playground
Prueba los puntos finales REST y GraphQL contra el esquema del denunciante. Las respuestas utilizan datos ficticios y no requieren una cuenta de Back4app.
Utiliza el mismo esquema que esta plantilla.
Elige tu tecnología
Expande cada tarjeta para ver cómo integrar Reporter, WhistleblowerLog y CaseFile con tu stack elegido.
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
Lo que obtienes con cada tecnología
Cada stack utiliza el mismo esquema de backend y contratos de API para denunciantes.
Estructura de datos unificada para denunciantes
Administra reporteros, registros anónimos, archivos de casos y notas de investigación con un esquema consistente.
Ingreso anónimo para reportes internos
Captura reportChannel, category, details, y anonymityFlag en un flujo de trabajo limpio.
Visibilidad del estado del caso para coordinadores
Mantén caseNumber, status, y assignedCoordinator sincronizados en todo el equipo.
Acceso controlado a notas para investigadores
Limita las vistas de InvestigationNote al personal adecuado sin exponer detalles de seguimiento.
Comparación de Tecnología
Compara la velocidad de configuración, estilo de SDK y soporte de IA entre todas las tecnologías soportadas.
| Framework | Tiempo de configuración | Beneficio de la aplicación para denunciantes | Tipo de SDK | Soporte de IA |
|---|---|---|---|---|
| Aproximadamente 5 minutos | Código base único para la recepción de denunciantes en móvil y web. | SDK tipado | Completo | |
| Menos de 5 minutos | Panel web rápido para el estado de los casos y notas. | SDK tipado | Completo | |
| ~3–7 min | Aplicación móvil multiplataforma para reportes anónimos. | SDK tipado | Completo | |
| Configuración rápida (5 min) | Panel de revisión de casos renderizado en servidor. | SDK tipado | Completo | |
| ~3–5 min | Integración de informes internos liviana. | SDK tipado | Completo | |
| Acerca de 5 min | Aplicación nativa de Android para la recepción anónima de registros. | SDK tipado | Completo | |
| Menos de 5 minutos | Aplicación nativa de iOS para revisión de casos. | SDK tipado | Completo | |
| ~3–7 min | Consola para personal de React para casos de denunciantes. | SDK tipado | Completo | |
| Configuración rápida (5 min) | Panel de control empresarial para investigaciones. | SDK escrito | Completo | |
| Menos de 2 min | API flexible de GraphQL para casos de denunciantes. | API de GraphQL | Completo | |
| Configuración rápida (2 min) | Integración de REST API para registros y casos anónimos. | REST API | Completo | |
| ~3 min | Flujo de trabajo del lado del servidor de __MARCA0__ para el manejo de casos. | __MARCA0__ | Completo | |
| ~3–7 min | Backend de __MARCA0__ para operaciones de denunciantes. | SDK escrito | Completo |
El tiempo de configuración refleja la duración esperada desde el inicio del proyecto hasta el primer registro o consulta de caso del denunciante utilizando este esquema de plantilla.
Preguntas Frecuentes
Preguntas comunes sobre la creación de un backend interno de denunciantes con esta plantilla.
¿Listo para construir tu aplicación interna para denunciantes?
Comienza tu proyecto interno de denunciantes en minutos. No se requiere tarjeta de crédito.