# svw8c64y7r-dotcom/eponew architecture

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

- Interactive diagram: https://gitdiagram.com/svw8c64y7r-dotcom/eponew
- Repository: https://github.com/svw8c64y7r-dotcom/eponew

## Overview

Epotech is a cybersecurity and web-engineering services portal. Users browse offerings, register or sign in, submit engagement requests, and use the client portal for scans and audit results; administrators manage requests and audit targets. The React app routes these workflows through shared client API helpers to FastAPI, which performs reconnaissance and returns reports. Requests and audits can use Supabase, with client-side fallback behavior documented in the sampled API helper. Backend details are based on partial excerpts; unsampled UI and persistence wiring is shown only where the README or imports support it.

Main entry points: [`api/main.py`](https://github.com/svw8c64y7r-dotcom/eponew/blob/main/api/main.py) (FastAPI routes), [`src/lib/apiClient.js`](https://github.com/svw8c64y7r-dotcom/eponew/blob/main/src/lib/apiClient.js) (Request and audit client), [`src/App.jsx`](https://github.com/svw8c64y7r-dotcom/eponew/blob/main/src/App.jsx) (Route controller), [`src/lib/supabase.js`](https://github.com/svw8c64y7r-dotcom/eponew/blob/main/src/lib/supabase.js) (Supabase browser client)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Portal experience"]
  node_app["Route controller<br/>[App.jsx]"]
  node_home["Home page<br/>[HomePage.jsx]"]
  node_servicespage["Service catalog<br/>[ServicesPage.jsx]"]
  node_authpage["Sign-in and registration<br/>[AuthPage.jsx]"]
  node_clientpage["Client dashboard<br/>[DashboardPage.jsx]"]
  node_adminpage["Admin dashboard<br/>[AdminDashboard.jsx]"]
end

subgraph group_engagement["Engagement management"]
  node_requestmodal["Request form<br/>[RequestModal.jsx]"]
  node_requesttable["Request administration"]
  node_clientapi["Request and audit client<br/>[apiClient.js]"]
end

subgraph group_scanning["Security scanning"]
  node_auditclient["Audit API helper<br/>[api.js]"]
  node_scanner["Comprehensive scanner UI"]
  node_report["Audit report viewer"]
  node_fastapi["FastAPI routes<br/>[main.py]"]
  node_portscan["TCP port probing<br/>[main.py]"]
  node_webscan["Web and TLS checks<br/>[main.py]"]
end

subgraph group_services["Data and identity"]
  node_supabaseclient["Supabase browser client<br/>[supabase.js]"]
  node_database[("Supabase Postgres")]
  node_supabaseauth(("Supabase Auth"))
end

node_visitor(("Client or admin"))

node_visitor -->|"opens portal"| node_app
node_app -->|"routes"| node_home
node_app -->|"routes"| node_servicespage
node_app -->|"routes"| node_authpage
node_app -->|"routes"| node_clientpage
node_app -->|"routes"| node_adminpage
node_servicespage -->|"opens request"| node_requestmodal
node_clientpage -->|"presents scanner"| node_scanner
node_adminpage -->|"presents requests"| node_requesttable
node_requestmodal -->|"creates request"| node_clientapi
node_requesttable -->|"loads and creates"| node_clientapi
node_requesttable -->|"starts audit"| node_auditclient
node_clientapi -->|"calls request and audit APIs"| node_fastapi
node_clientapi -.->|"fallback reads and writes"| node_supabaseclient
node_clientapi -->|"supplies audit data"| node_report
node_scanner -->|"requests scan"| node_clientapi
node_clientapi -->|"calls comprehensive scan"| node_fastapi
node_auditclient -->|"submits audit"| node_fastapi
node_fastapi -->|"dispatches probes"| node_portscan
node_fastapi -->|"dispatches checks"| node_webscan
node_portscan -->|"returns port results"| node_fastapi
node_webscan -->|"returns web and TLS results"| node_fastapi
node_fastapi -.->|"uses configured client"| node_supabaseclient
node_authpage -->|"authenticates"| node_supabaseclient
node_supabaseclient -->|"signs in and registers"| node_supabaseauth
node_supabaseclient -->|"reads and writes records"| node_database

click node_app "https://github.com/svw8c64y7r-dotcom/eponew/blob/main/src/App.jsx"
click node_home "https://github.com/svw8c64y7r-dotcom/eponew/blob/main/src/pages/HomePage.jsx"
click node_servicespage "https://github.com/svw8c64y7r-dotcom/eponew/blob/main/src/pages/ServicesPage.jsx"
click node_authpage "https://github.com/svw8c64y7r-dotcom/eponew/blob/main/src/pages/AuthPage.jsx"
click node_clientpage "https://github.com/svw8c64y7r-dotcom/eponew/blob/main/src/pages/DashboardPage.jsx"
click node_adminpage "https://github.com/svw8c64y7r-dotcom/eponew/blob/main/src/pages/AdminDashboard.jsx"
click node_requestmodal "https://github.com/svw8c64y7r-dotcom/eponew/blob/main/src/components/RequestModal.jsx"
click node_requesttable "https://github.com/svw8c64y7r-dotcom/eponew/blob/main/src/components/AdminRequestsTable.jsx"
click node_clientapi "https://github.com/svw8c64y7r-dotcom/eponew/blob/main/src/lib/apiClient.js"
click node_auditclient "https://github.com/svw8c64y7r-dotcom/eponew/blob/main/src/lib/api.js"
click node_scanner "https://github.com/svw8c64y7r-dotcom/eponew/blob/main/src/components/ComprehensiveScanner.jsx"
click node_report "https://github.com/svw8c64y7r-dotcom/eponew/blob/main/src/components/AuditReportViewer.jsx"
click node_fastapi "https://github.com/svw8c64y7r-dotcom/eponew/blob/main/api/main.py"
click node_portscan "https://github.com/svw8c64y7r-dotcom/eponew/blob/main/api/main.py"
click node_webscan "https://github.com/svw8c64y7r-dotcom/eponew/blob/main/api/main.py"
click node_supabaseclient "https://github.com/svw8c64y7r-dotcom/eponew/blob/main/src/lib/supabase.js"
click node_database "https://github.com/svw8c64y7r-dotcom/eponew/blob/main/supabase_schema.sql"

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_app,node_home,node_servicespage,node_authpage,node_clientpage,node_adminpage,node_visitor toneBlue
class node_requestmodal,node_requesttable,node_clientapi toneAmber
class node_auditclient,node_scanner,node_report,node_fastapi,node_portscan,node_webscan toneMint
class node_supabaseclient,node_database,node_supabaseauth toneRose
```

## Components

### Portal experience

- [Route controller](https://github.com/svw8c64y7r-dotcom/eponew/blob/main/src/App.jsx): `src/App.jsx`
- [Home page](https://github.com/svw8c64y7r-dotcom/eponew/blob/main/src/pages/HomePage.jsx): `src/pages/HomePage.jsx`
- [Service catalog](https://github.com/svw8c64y7r-dotcom/eponew/blob/main/src/pages/ServicesPage.jsx): `src/pages/ServicesPage.jsx`
- [Sign-in and registration](https://github.com/svw8c64y7r-dotcom/eponew/blob/main/src/pages/AuthPage.jsx): `src/pages/AuthPage.jsx`
- [Client dashboard](https://github.com/svw8c64y7r-dotcom/eponew/blob/main/src/pages/DashboardPage.jsx): `src/pages/DashboardPage.jsx`
- [Admin dashboard](https://github.com/svw8c64y7r-dotcom/eponew/blob/main/src/pages/AdminDashboard.jsx): `src/pages/AdminDashboard.jsx`

### Engagement management

- [Request form](https://github.com/svw8c64y7r-dotcom/eponew/blob/main/src/components/RequestModal.jsx): `src/components/RequestModal.jsx`
- [Request administration](https://github.com/svw8c64y7r-dotcom/eponew/blob/main/src/components/AdminRequestsTable.jsx): `src/components/AdminRequestsTable.jsx`
- [Request and audit client](https://github.com/svw8c64y7r-dotcom/eponew/blob/main/src/lib/apiClient.js): `src/lib/apiClient.js`

### Security scanning

- [Audit API helper](https://github.com/svw8c64y7r-dotcom/eponew/blob/main/src/lib/api.js): `src/lib/api.js`
- [Comprehensive scanner UI](https://github.com/svw8c64y7r-dotcom/eponew/blob/main/src/components/ComprehensiveScanner.jsx): `src/components/ComprehensiveScanner.jsx`
- [Audit report viewer](https://github.com/svw8c64y7r-dotcom/eponew/blob/main/src/components/AuditReportViewer.jsx): `src/components/AuditReportViewer.jsx`
- [FastAPI routes](https://github.com/svw8c64y7r-dotcom/eponew/blob/main/api/main.py): `api/main.py`
- [TCP port probing](https://github.com/svw8c64y7r-dotcom/eponew/blob/main/api/main.py): `api/main.py`
- [Web and TLS checks](https://github.com/svw8c64y7r-dotcom/eponew/blob/main/api/main.py): `api/main.py`

### Data and identity

- [Supabase browser client](https://github.com/svw8c64y7r-dotcom/eponew/blob/main/src/lib/supabase.js): `src/lib/supabase.js`
- [Supabase Postgres](https://github.com/svw8c64y7r-dotcom/eponew/blob/main/supabase_schema.sql): `supabase_schema.sql`
- **Supabase Auth**

### Other components

- **Client or admin**

## Connections

- Client or admin → Route controller: opens portal
- Route controller → Home page: routes
- Route controller → Service catalog: routes
- Route controller → Sign-in and registration: routes
- Route controller → Client dashboard: routes
- Route controller → Admin dashboard: routes
- Service catalog → Request form: opens request
- Client dashboard → Comprehensive scanner UI: presents scanner
- Admin dashboard → Request administration: presents requests
- Request form → Request and audit client: creates request
- Request administration → Request and audit client: loads and creates
- Request administration → Audit API helper: starts audit
- Request and audit client → FastAPI routes: calls request and audit APIs
- Request and audit client → Supabase browser client: fallback reads and writes
- Request and audit client → Audit report viewer: supplies audit data
- Comprehensive scanner UI → Request and audit client: requests scan
- Request and audit client → FastAPI routes: calls comprehensive scan
- Audit API helper → FastAPI routes: submits audit
- FastAPI routes → TCP port probing: dispatches probes
- FastAPI routes → Web and TLS checks: dispatches checks
- TCP port probing → FastAPI routes: returns port results
- Web and TLS checks → FastAPI routes: returns web and TLS results
- FastAPI routes → Supabase browser client: uses configured client
- Sign-in and registration → Supabase browser client: authenticates
- Supabase browser client → Supabase Auth: signs in and registers
- Supabase browser client → Supabase Postgres: reads and writes records
