# gauravbatule/vulnerabilities-synthrex architecture

> Architecture diagram of the GitHub repository gauravbatule/vulnerabilities-synthrex, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/gauravbatule/vulnerabilities-synthrex
- Repository: https://github.com/gauravbatule/vulnerabilities-synthrex

## Overview

Synthrex is a web-based website security scanner. A user submits a target through the browser; the server performs target and authorization checks, then exposes scanner operations that the client orchestrates, presenting findings and an AI assessment. The README documents broad scanner coverage, subdomain scans, and PDF reports; only selected scanner and server/client excerpts were sampled, so links for undocumented internal orchestration are omitted where uncertain.

Main entry points: [`server.js`](https://github.com/gauravbatule/vulnerabilities-synthrex/blob/main/server.js) (Scanner dispatch), [`public/app.js`](https://github.com/gauravbatule/vulnerabilities-synthrex/blob/main/public/app.js) (Scan interface), [`ai/groqAnalyzer.js`](https://github.com/gauravbatule/vulnerabilities-synthrex/blob/main/ai/groqAnalyzer.js) (AI security analysis), [`public/index.html`](https://github.com/gauravbatule/vulnerabilities-synthrex/blob/main/public/index.html) (Browser UI assets)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web experience"]
  node_browser["Scan interface<br/>[app.js]"]
  node_site["Browser UI assets<br/>[index.html]"]
  node_results["Findings and progress<br/>[app.js]"]
end

subgraph group_service["Scan service"]
  node_api["HTTP API<br/>[server.js]"]
  node_precheck["Target and authorization checks<br/>[server.js]"]
  node_scannerlist["Scanner catalog<br/>[server.js]"]
  node_orchestrator["Scanner dispatch<br/>[server.js]"]
  node_subscan["Subdomain scanning<br/>[server.js]"]
end

subgraph group_checks["Security checks"]
  node_headers["Headers and browser security<br/>[headerScanner.js]"]
  node_transport["TLS and network<br/>[sslScanner.js]"]
  node_injections["Injection testing"]
  node_discovery["Content and technology discovery<br/>[infoLeakScanner.js]"]
  node_domainintel["DNS and subdomains<br/>[dnsScanner.js]"]
  node_webconfig["Web configuration checks<br/>[corsScanner.js]"]
  node_availability["Performance and rate limits"]
end

subgraph group_reporting["Analysis and reports"]
  node_ai["AI security analysis<br/>[groqAnalyzer.js]"]
  node_pdf["PDF export<br/>[server.js]"]
end

node_user(("Scanner user"))
node_target(("Scan target"))
node_groq{{"Groq API"}}

node_user -->|"submits target"| node_browser
node_site -->|"renders"| node_browser
node_browser -->|"requests checks"| node_api
node_api -->|"validates access"| node_precheck
node_precheck -->|"checks reachability"| node_target
node_browser -->|"fetches catalog"| node_scannerlist
node_browser -->|"requests scans"| node_orchestrator
node_orchestrator -->|"dispatches"| node_headers
node_orchestrator -->|"dispatches"| node_transport
node_orchestrator -->|"dispatches"| node_injections
node_orchestrator -->|"dispatches"| node_discovery
node_orchestrator -->|"dispatches"| node_domainintel
node_orchestrator -->|"dispatches"| node_webconfig
node_orchestrator -->|"dispatches"| node_availability
node_browser -->|"requests subdomain scans"| node_subscan
node_subscan -->|"scans hosts"| node_target
node_browser -->|"renders findings"| node_results
node_orchestrator -->|"returns scan data"| node_results
node_api -->|"requests analysis"| node_ai
node_ai -.->|"sends results"| node_groq
node_browser -->|"requests report"| node_pdf
node_ai -->|"provides assessment"| node_results

click node_browser "https://github.com/gauravbatule/vulnerabilities-synthrex/blob/main/public/app.js"
click node_site "https://github.com/gauravbatule/vulnerabilities-synthrex/blob/main/public/index.html"
click node_api "https://github.com/gauravbatule/vulnerabilities-synthrex/blob/main/server.js"
click node_precheck "https://github.com/gauravbatule/vulnerabilities-synthrex/blob/main/server.js"
click node_scannerlist "https://github.com/gauravbatule/vulnerabilities-synthrex/blob/main/server.js"
click node_orchestrator "https://github.com/gauravbatule/vulnerabilities-synthrex/blob/main/server.js"
click node_headers "https://github.com/gauravbatule/vulnerabilities-synthrex/blob/main/scanners/headerScanner.js"
click node_transport "https://github.com/gauravbatule/vulnerabilities-synthrex/blob/main/scanners/sslScanner.js"
click node_injections "https://github.com/gauravbatule/vulnerabilities-synthrex/blob/main/scanners/injectionScanner.js"
click node_discovery "https://github.com/gauravbatule/vulnerabilities-synthrex/blob/main/scanners/infoLeakScanner.js"
click node_domainintel "https://github.com/gauravbatule/vulnerabilities-synthrex/blob/main/scanners/dnsScanner.js"
click node_webconfig "https://github.com/gauravbatule/vulnerabilities-synthrex/blob/main/scanners/corsScanner.js"
click node_availability "https://github.com/gauravbatule/vulnerabilities-synthrex/blob/main/scanners/performanceScanner.js"
click node_subscan "https://github.com/gauravbatule/vulnerabilities-synthrex/blob/main/server.js"
click node_results "https://github.com/gauravbatule/vulnerabilities-synthrex/blob/main/public/app.js"
click node_ai "https://github.com/gauravbatule/vulnerabilities-synthrex/blob/main/ai/groqAnalyzer.js"
click node_pdf "https://github.com/gauravbatule/vulnerabilities-synthrex/blob/main/server.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_browser,node_site,node_results,node_user toneBlue
class node_api,node_precheck,node_scannerlist,node_orchestrator,node_subscan toneAmber
class node_headers,node_transport,node_injections,node_discovery,node_domainintel,node_webconfig,node_availability,node_groq toneMint
class node_ai,node_pdf toneRose
class node_target toneIndigo
```

## Components

### Web experience

- [Scan interface](https://github.com/gauravbatule/vulnerabilities-synthrex/blob/main/public/app.js): `public/app.js`
- [Browser UI assets](https://github.com/gauravbatule/vulnerabilities-synthrex/blob/main/public/index.html): `public/index.html`
- [Findings and progress](https://github.com/gauravbatule/vulnerabilities-synthrex/blob/main/public/app.js): `public/app.js`

### Scan service

- [HTTP API](https://github.com/gauravbatule/vulnerabilities-synthrex/blob/main/server.js): `server.js`
- [Target and authorization checks](https://github.com/gauravbatule/vulnerabilities-synthrex/blob/main/server.js): `server.js`
- [Scanner catalog](https://github.com/gauravbatule/vulnerabilities-synthrex/blob/main/server.js): `server.js`
- [Scanner dispatch](https://github.com/gauravbatule/vulnerabilities-synthrex/blob/main/server.js): `server.js`
- [Subdomain scanning](https://github.com/gauravbatule/vulnerabilities-synthrex/blob/main/server.js): `server.js`

### Security checks

- [Headers and browser security](https://github.com/gauravbatule/vulnerabilities-synthrex/blob/main/scanners/headerScanner.js): `scanners/headerScanner.js`
- [TLS and network](https://github.com/gauravbatule/vulnerabilities-synthrex/blob/main/scanners/sslScanner.js): `scanners/sslScanner.js`
- [Injection testing](https://github.com/gauravbatule/vulnerabilities-synthrex/blob/main/scanners/injectionScanner.js): `scanners/injectionScanner.js`
- [Content and technology discovery](https://github.com/gauravbatule/vulnerabilities-synthrex/blob/main/scanners/infoLeakScanner.js): `scanners/infoLeakScanner.js`
- [DNS and subdomains](https://github.com/gauravbatule/vulnerabilities-synthrex/blob/main/scanners/dnsScanner.js): `scanners/dnsScanner.js`
- [Web configuration checks](https://github.com/gauravbatule/vulnerabilities-synthrex/blob/main/scanners/corsScanner.js): `scanners/corsScanner.js`
- [Performance and rate limits](https://github.com/gauravbatule/vulnerabilities-synthrex/blob/main/scanners/performanceScanner.js): `scanners/performanceScanner.js`

### Analysis and reports

- [AI security analysis](https://github.com/gauravbatule/vulnerabilities-synthrex/blob/main/ai/groqAnalyzer.js): `ai/groqAnalyzer.js`
- [PDF export](https://github.com/gauravbatule/vulnerabilities-synthrex/blob/main/server.js): `server.js`

### Other components

- **Scanner user**
- **Scan target**
- **Groq API**

## Connections

- Scanner user → Scan interface: submits target
- Browser UI assets → Scan interface: renders
- Scan interface → HTTP API: requests checks
- HTTP API → Target and authorization checks: validates access
- Target and authorization checks → Scan target: checks reachability
- Scan interface → Scanner catalog: fetches catalog
- Scan interface → Scanner dispatch: requests scans
- Scanner dispatch → Headers and browser security: dispatches
- Scanner dispatch → TLS and network: dispatches
- Scanner dispatch → Injection testing: dispatches
- Scanner dispatch → Content and technology discovery: dispatches
- Scanner dispatch → DNS and subdomains: dispatches
- Scanner dispatch → Web configuration checks: dispatches
- Scanner dispatch → Performance and rate limits: dispatches
- Scan interface → Subdomain scanning: requests subdomain scans
- Subdomain scanning → Scan target: scans hosts
- Scan interface → Findings and progress: renders findings
- Scanner dispatch → Findings and progress: returns scan data
- HTTP API → AI security analysis: requests analysis
- AI security analysis → Groq API: sends results
- Scan interface → PDF export: requests report
- AI security analysis → Findings and progress: provides assessment
