主要要點
這個模板提供一個內部吹哨者後端,包括匿名日誌、案件狀態和調查筆記,讓您的團隊能在一個系統中保持受理、分類和跟進。
- 匿名日誌受理 — 將報告存儲在 WhistleblowerLog 中,並使用如 reportChannel 和 anonymityFlag 的案件安全字段。
- 案件狀態追蹤 — 使用 CaseFile 狀態變更來顯示事項是否為新案件、審查中、升級或已關閉。
- 上下文中的調查筆記 — 將 InvestigationNote 條目附加到 CaseFile,以便調查員可以記錄行動、結果和下一步。
概述:內部檢舉人
良好的內部檢舉人衛生意味著審查者可以取樣記錄並立即了解範圍、狀態和下一個必要行動。解決方案是操作性的,不是動機性的。在 Back4app 上使用 Reporter、WhistleblowerLog、CaseFile 和 InvestigationNote 作為結構化合規原語,以便內部檢舉人工作流程在不同地點和班次間保持一致。該架構涵蓋了 Reporter(別名、聯絡方式、後續同意)、WhistleblowerLog(報告渠道、類別、詳情、匿名標誌)、CaseFile(案例編號、狀態、優先級、指派協調人)和 InvestigationNote(案例檔案、備註文本、備註類型、創建者),其中內置身份驗證、匿名接收和案例處理功能。連接您首選的前端,快速交付。
最佳用於:
內部舉報者後端概覽
季節性波動在員工變動時對內部舉報者的影響最大,但數據模型不會隨著新的 SKU、網站或政策而調整。
這個總結幫助團隊圍繞 Reporter、WhistleblowerLog 和 CaseFile 進行定位,讓任何人都可以深入了解 ER 圖或 JSON 匯出。
核心舉報者功能
這個中心中的每一個技術卡片都使用相同的舉報者後端架構,包括 Reporter、WhistleblowerLog、CaseFile 和 InvestigationNote。
舉報者召集
舉報者存儲別名、聯繫方式和後續同意。
匿名日誌
舉報者日誌記錄報告頻道、類別、詳細信息和匿名標誌。
案例狀態追踪
案例檔案保持案例編號、狀態、優先級和指定協調員。
調查筆記
InvestigatingNote 連結 caseFile、noteType、noteText 和 createdBy。
為什麼要使用 Back4app 構建您的內部舉報者後端?
Back4app 為您提供報告者、案例和筆記原語,以便您的團隊可以專注於接收和調查工作流程,而不是基礎設施。
- •CaseFile 和 WhistleblowerLog 在一個模型中: WhistleblowerLog 捕捉匿名詳細信息,而 CaseFile 則持有調查團隊的狀態、優先級和分配。
- •對敏感筆記進行控制訪問: 可以使用 ACL 和 Cloud Code 驗證將 InvestigationNote 項目限制為協調員和指派的審查員。
- •即時加上 API 靈活性: 在保持 REST 和 GraphQL 可用於工作人員儀表板和審計工具的同時,使用 Live Queries 處理案件狀態變更。
快速構建並迭代舉報者召集,跨所有平台使用一個後端合同。
核心優勢
一個幫助您從匿名提交轉向案件處理的舉報者後端,而不會失去記錄的踪跡。
更快的接收設定
從完整的 Reporter、WhistleblowerLog、CaseFile 和 InvestigationNote 架構開始,而不是從零開始設計案件表格。
更清晰的狀態交接
使用 CaseFile 狀態和 assignedCoordinator 欄位,讓協調者知道哪些事項是新的、活動的或已關閉的。
受保護的備註處理
限制調查備註的寫入權限給授權的審核人員和調查員。
清除訪問邊界
將匿名日誌內容與報告者聯繫數據分開,並用 ACL/CLP 來保護兩者。
案件歷史集中於一處
將吹哨者日誌和調查備註一起儲存,以便審核團隊可以跟蹤事件的順序。
AI 輔助啟動
快速生成後端框架和集成指導,僅需一個結構化的提示。
準備好啟動您的吹哨者應用程序了嗎?
讓Back4app AI 代理人搭建您的內部舉報者後端,並從一個提示生成匿名日誌、案件狀態和調查筆記。
免費開始 — 每月 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
}
整合流程
身份驗證、匿名日誌接收、案件狀態更新和調查筆記的典型運行流程。
查看圖表源
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 策略保護報告者、匿名日誌、案例檔案和調查筆記。
報告者隱私控制
將報告者聯絡方式和後續聯繫同意視為受限字段;只有經批准的協調員可以查看後續詳細信息。
匿名日誌完整性
只有經過身份驗證的工作人員可以創建或關閉案例檔案項目,而舉報者日誌的提交在設計上可以保持匿名。
範圍調查訪問
將對調查筆記和案例檔案的讀取和寫入限制為指定的審核人、合規負責人或協調員。
模式(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
},
"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 代理一起建立
使用 Back4app AI 代理從此模板生成一個真正的內部舉報者應用程序,包括前端、後端、身份驗證和匿名日誌、案件狀態及調查備註流程。
在 Back4app 上創建一個內部舉報者應用後端,使用這個精確的架構和行為。 架構: 1. 使用者(使用 Back4app 內建功能):用戶名、電子郵件、密碼;objectId、createdAt、updatedAt(系統)。 2. 報告者:別名(字串,必填)、聯絡方式(字串)、同意跟進(布林值,必填);objectId、createdAt、updatedAt(系統)。 3. 舉報者日誌:報告者(指向報告者的指針,自選)、報告渠道(字串,必填)、類別(字串,必填)、詳情(字串,必填)、匿名標誌(布林值,必填)、提交於(日期,必填);objectId、createdAt、updatedAt(系統)。 4. 案件檔案:案件號碼(字串,必填)、日誌(指向舉報者日誌的指針,必填)、狀態(字串,必填)、優先級(字串,必填)、指定協調員(指向使用者的指針,自選)、開啟於(日期,必填)、關閉於(日期);objectId、createdAt、updatedAt(系統)。 5. 調查備註:案件檔案(指向案件檔案的指針,必填)、備註類型(字串,必填)、備註文字(字串,必填)、創建者(指向使用者的指針,必填)、創建於(日期,必填);objectId、createdAt、updatedAt(系統)。 安全性: - 保護報告者的聯絡方式和同意跟進。使用 ACL/CLP 以便只有批准的協調員能查看限制性細節。 - 只有經過身份驗證的工作人員才能創建或關閉案件檔案項目。使用雲端代碼進行驗證。 - 限制調查備註的讀和寫僅限於指定的審核者和協調員。 身份驗證: - 註冊、登錄、登出。 行為: - 提交匿名日誌、列出案件檔案、更新案件狀態,並添加調查備註。 交付: - Back4app 應用程序,帶有架構、ACL、CLP;用於匿名收集、案件檔案和調查備註的前端。
按下面的按鈕以開放具有此模板提示預填內容的代理。
這是沒有技術後綴的基本提示。您可以之後調整生成的前端堆疊。
API 遊樂場
對 whistleblower 結構嘗試 REST 和 GraphQL 端點。響應使用模擬數據,並不需要 Back4app 帳戶。
使用與此模板相同的結構。
選擇您的技術
展開每張卡片以查看如何將 Reporter、WhistleblowerLog 和 CaseFile 與您選擇的技術堆疊進行整合。
Flutter 內部舉報者後端
React 內部舉報者後端
React 原生 內部舉報者後端
Next.js 內部舉報者後端
JavaScript 內部舉報者後端
Android 內部舉報者後端
iOS 內部舉報者後端
Vue 內部舉報者後端
Angular 內部舉報者後端
GraphQL 內部舉報者後端
REST API 內部舉報者後端
PHP 內部舉報者後端
.NET 內部舉報者後端
您從每個技術中獲得的內容
每個堆疊都使用相同的舉報者後端架構和 API 合約。
統一的舉報者數據結構
使用一致的架構管理舉報者、匿名日誌、案例文件和調查筆記。
內部舉報的匿名接收
在一個清晰的工作流程中捕獲 reportChannel、類別、詳細信息和匿名標誌。
協調員的案件狀態可見性
保持 caseNumber、狀態和 assignedCoordinator 在團隊中的同步。
對調查員的受控筆記訪問
限制 InvestigationNote 的查看權限給合適的員工,而不暴露後續的詳細信息。
技術比較
比較所有支持的技術的設置速度、SDK 風格和人工智能支持。
| 框架 | 設置時間 | 舉報人應用程式的好處 | SDK 類型 | AI 支援 |
|---|---|---|---|---|
| 約 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 | 完整 |
設置時間反映從專案啟動到第一次舉報人日誌或案例查詢使用此模板架構的預期持續時間。
常見問題
有關使用此模板構建內部舉報人後端的常見問題。