# prabhat-d/task-scam-fake-job-detector architecture

> Architecture diagram of the GitHub repository prabhat-d/task-scam-fake-job-detector, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-10). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/prabhat-d/task-scam-fake-job-detector
- Repository: https://github.com/prabhat-d/task-scam-fake-job-detector

## Overview

TrustMatrix is a fraud-prevention and threat-intelligence platform for job seekers and digital workers. Users submit text, links, or files for multimodal scam analysis, then review risk findings and can export an incident dossier; separate capabilities provide account security, safety chat, live monitoring, and administration. The backend also supports corporate verification and threat records. The README documents the broad client/server, AI, database, and real-time architecture; sampled source confirms selected client calls and backend module dependencies, but many route implementations were not shown.

Main entry points: [`backend/server.js`](https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/backend/server.js) (Express API), [`src/routes/AppRoutes.jsx`](https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/src/routes/AppRoutes.jsx) (App Routes), [`src/pages/Scan.jsx`](https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/src/pages/Scan.jsx) (Scan Intake), [`src/services/scansService.js`](https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/src/services/scansService.js) (Scan API Client)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["User Application"]
  node_routes["App Routes<br/>[AppRoutes.jsx]"]
  node_scan["Scan Intake<br/>[Scan.jsx]"]
  node_scanservice["Scan API Client<br/>[scansService.js]"]
  node_results["Findings View<br/>[Result.jsx]"]
  node_pdf["Dossier PDF<br/>[reportPdf.js]"]
  node_chatui["Safety Chat UI<br/>[SafetyChatbot.jsx]"]
  node_language["Localization<br/>[index.js]"]
end

subgraph group_analysis["Threat Analysis"]
  node_ai["Forensic AI<br/>[aiEngine.js]"]
  node_mca["MCA Verification<br/>[mcaVerifier.js]"]
  node_chat["Safety Chat Engine<br/>[chatEngine.js]"]
  node_live["Live Interceptor<br/>[ScreenGuardian.jsx]"]
end

subgraph group_platform["Platform Services"]
  node_server["Express API<br/>[server.js]"]
  node_scans[("Threat Records<br/>[ThreatScan.js]")]
  node_users[("User Records<br/>[User.js]")]
  node_auth["Identity and MFA<br/>[authService.js]"]
  node_realtime["Socket Events<br/>[socket.js]"]
  node_email["Email OTP<br/>[emailService.js]"]
end

subgraph group_operations["Monitoring and Admin"]
  node_threatmap["Threat Map<br/>[ThreatMap.jsx]"]
  node_dashboard["Threat Dashboard<br/>[Dashboard.jsx]"]
  node_admin["Admin Console<br/>[Overview.jsx]"]
  node_adminapi["Admin API Client<br/>[adminService.js]"]
end

node_user(("User"))

node_user -->|"uses"| node_routes
node_routes -->|"routes to"| node_scan
node_scan -->|"submits scans"| node_scanservice
node_scanservice -->|"sends requests"| node_server
node_server -->|"analyzes threats"| node_ai
node_ai -->|"verifies companies"| node_mca
node_server -->|"persists scans"| node_scans
node_server -->|"stores accounts"| node_users
node_results -->|"exports dossier"| node_pdf
node_user -->|"authenticates"| node_auth
node_server -.->|"sends OTP"| node_email
node_chatui -->|"requests advice"| node_server
node_server -.->|"handles chat"| node_chat
node_user -->|"monitors session"| node_live
node_live -.->|"streams events"| node_realtime
node_server -->|"publishes telemetry"| node_realtime
node_threatmap -.->|"loads threat data"| node_server
node_dashboard -.->|"loads summaries"| node_server
node_admin -->|"manages platform"| node_adminapi
node_adminapi -->|"calls admin API"| node_server
node_user -->|"selects language"| node_language

click node_routes "https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/src/routes/AppRoutes.jsx"
click node_scan "https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/src/pages/Scan.jsx"
click node_scanservice "https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/src/services/scansService.js"
click node_results "https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/src/pages/Result.jsx"
click node_pdf "https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/src/utils/reportPdf.js"
click node_server "https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/backend/server.js"
click node_ai "https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/backend/services/aiEngine.js"
click node_mca "https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/backend/services/mcaVerifier.js"
click node_scans "https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/backend/models/ThreatScan.js"
click node_users "https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/backend/models/User.js"
click node_auth "https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/src/services/authService.js"
click node_chat "https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/backend/services/chatEngine.js"
click node_chatui "https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/src/components/chat/SafetyChatbot.jsx"
click node_live "https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/src/components/live/ScreenGuardian.jsx"
click node_realtime "https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/src/socket/socket.js"
click node_threatmap "https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/src/pages/ThreatMap.jsx"
click node_dashboard "https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/src/pages/Dashboard.jsx"
click node_admin "https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/src/pages/admin/Overview.jsx"
click node_adminapi "https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/src/services/adminService.js"
click node_email "https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/backend/services/emailService.js"
click node_language "https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/src/i18n/index.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_routes,node_scan,node_scanservice,node_results,node_pdf,node_chatui,node_language,node_user toneBlue
class node_ai,node_mca,node_chat,node_live toneAmber
class node_server,node_scans,node_users,node_auth,node_realtime,node_email toneMint
class node_threatmap,node_dashboard,node_admin,node_adminapi toneRose
```

## Components

### User Application

- [App Routes](https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/src/routes/AppRoutes.jsx): `src/routes/AppRoutes.jsx`
- [Scan Intake](https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/src/pages/Scan.jsx): `src/pages/Scan.jsx`
- [Scan API Client](https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/src/services/scansService.js): `src/services/scansService.js`
- [Findings View](https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/src/pages/Result.jsx): `src/pages/Result.jsx`
- [Dossier PDF](https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/src/utils/reportPdf.js): `src/utils/reportPdf.js`
- [Safety Chat UI](https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/src/components/chat/SafetyChatbot.jsx): `src/components/chat/SafetyChatbot.jsx`
- [Localization](https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/src/i18n/index.js): `src/i18n/index.js`

### Threat Analysis

- [Forensic AI](https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/backend/services/aiEngine.js): `backend/services/aiEngine.js`
- [MCA Verification](https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/backend/services/mcaVerifier.js): `backend/services/mcaVerifier.js`
- [Safety Chat Engine](https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/backend/services/chatEngine.js): `backend/services/chatEngine.js`
- [Live Interceptor](https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/src/components/live/ScreenGuardian.jsx): `src/components/live/ScreenGuardian.jsx`

### Platform Services

- [Express API](https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/backend/server.js): `backend/server.js`
- [Threat Records](https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/backend/models/ThreatScan.js): `backend/models/ThreatScan.js`
- [User Records](https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/backend/models/User.js): `backend/models/User.js`
- [Identity and MFA](https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/src/services/authService.js): `src/services/authService.js`
- [Socket Events](https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/src/socket/socket.js): `src/socket/socket.js`
- [Email OTP](https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/backend/services/emailService.js): `backend/services/emailService.js`

### Monitoring and Admin

- [Threat Map](https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/src/pages/ThreatMap.jsx): `src/pages/ThreatMap.jsx`
- [Threat Dashboard](https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/src/pages/Dashboard.jsx): `src/pages/Dashboard.jsx`
- [Admin Console](https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/src/pages/admin/Overview.jsx): `src/pages/admin/Overview.jsx`
- [Admin API Client](https://github.com/prabhat-d/task-scam-fake-job-detector/blob/main/src/services/adminService.js): `src/services/adminService.js`

### Other components

- **User**

## Connections

- User → App Routes: uses (evidence: `README.md`)
- App Routes → Scan Intake: routes to (evidence: `src/routes/AppRoutes.jsx`)
- Scan Intake → Scan API Client: submits scans (evidence: `src/pages/Scan.jsx`)
- Scan API Client → Express API: sends requests (evidence: `README.md`)
- Express API → Forensic AI: analyzes threats (evidence: `README.md`)
- Forensic AI → MCA Verification: verifies companies (evidence: `backend/services/aiEngine.js`)
- Express API → Threat Records: persists scans (evidence: `README.md`)
- Express API → User Records: stores accounts (evidence: `README.md`)
- Findings View → Dossier PDF: exports dossier (evidence: `README.md`)
- User → Identity and MFA: authenticates (evidence: `src/services/authService.js`)
- Express API → Email OTP: sends OTP (evidence: `backend/server.js`)
- Safety Chat UI → Express API: requests advice (evidence: `backend/server.js`)
- Express API → Safety Chat Engine: handles chat (evidence: `backend/server.js`)
- User → Live Interceptor: monitors session (evidence: `README.md`)
- Live Interceptor → Socket Events: streams events
- Express API → Socket Events: publishes telemetry (evidence: `README.md`)
- Threat Map → Express API: loads threat data
- Threat Dashboard → Express API: loads summaries
- Admin Console → Admin API Client: manages platform (evidence: `src/services/adminService.js`)
- Admin API Client → Express API: calls admin API (evidence: `src/services/adminService.js`)
- User → Localization: selects language (evidence: `README.md`)
