# codexeron/projects-omniscope architecture

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

- Interactive diagram: https://gitdiagram.com/codexeron/projects-omniscope
- Repository: https://github.com/codexeron/projects-omniscope

## Overview

OmniScope analyzes a submitted website URL and returns an eight-dimension report through either the CLI or a local web dashboard/API. The documented dimensions are represented, but several analyzer implementations and the orchestrator’s dispatch loop were not included in the excerpts; their placement in engine.py follows the README and visible class structure, while uncertain internal wiring is omitted.

Main entry points: [`engine.py`](https://github.com/codexeron/projects-omniscope/blob/Codexeron/engine.py) (Analysis orchestrator), [`omniscope.py`](https://github.com/codexeron/projects-omniscope/blob/Codexeron/omniscope.py) (CLI and API), [`static/script.js`](https://github.com/codexeron/projects-omniscope/blob/Codexeron/static/script.js) (Dashboard client), [`models.py`](https://github.com/codexeron/projects-omniscope/blob/Codexeron/models.py) (Report model)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interfaces["User Interfaces"]
  node_cli_api["CLI and API<br/>[omniscope.py]"]
  node_dashboard["Dashboard page<br/>[index.html]"]
  node_dashboard_js["Dashboard client<br/>[script.js]"]
end

subgraph group_runtime["Analysis Runtime"]
  node_url_validation["URL validation<br/>[engine.py]"]
  node_orchestrator["Analysis orchestrator<br/>[engine.py]"]
  node_fetch["Page fetch<br/>[engine.py]"]
end

subgraph group_dimensions["Analysis Dimensions"]
  node_performance["Performance<br/>[engine.py]"]
  node_security["Security and TLS<br/>[engine.py]"]
  node_seo["SEO<br/>[engine.py]"]
  node_accessibility["Accessibility<br/>[engine.py]"]
  node_best_practices["Best practices<br/>[engine.py]"]
  node_eco["Eco score<br/>[engine.py]"]
  node_broken_links["Broken links<br/>[engine.py]"]
  node_mobile["Mobile friendly<br/>[engine.py]"]
end

subgraph group_reporting["Report Output"]
  node_report["Report model<br/>[models.py]"]
end

node_user(("User"))
node_target_site(("Target website"))
node_link_targets(("Linked pages"))

node_user -->|"submits URL"| node_cli_api
node_cli_api -->|"serves page"| node_dashboard
node_dashboard -->|"loads client"| node_dashboard_js
node_dashboard_js -->|"requests analysis"| node_cli_api
node_cli_api -->|"validates URL"| node_url_validation
node_cli_api -->|"starts analysis"| node_orchestrator
node_orchestrator -->|"fetches page"| node_fetch
node_fetch -->|"requests page"| node_target_site
node_orchestrator -->|"analyzes context"| node_performance
node_orchestrator -->|"analyzes context"| node_security
node_orchestrator -->|"analyzes context"| node_seo
node_orchestrator -->|"analyzes context"| node_accessibility
node_orchestrator -->|"analyzes context"| node_best_practices
node_orchestrator -->|"analyzes context"| node_eco
node_orchestrator -->|"analyzes context"| node_broken_links
node_orchestrator -->|"analyzes context"| node_mobile
node_broken_links -->|"checks links"| node_link_targets
node_orchestrator -->|"assembles report"| node_report
node_cli_api -->|"returns report"| node_report
node_dashboard_js -->|"renders response"| node_report

click node_cli_api "https://github.com/codexeron/projects-omniscope/blob/Codexeron/omniscope.py"
click node_dashboard "https://github.com/codexeron/projects-omniscope/blob/Codexeron/templates/index.html"
click node_dashboard_js "https://github.com/codexeron/projects-omniscope/blob/Codexeron/static/script.js"
click node_url_validation "https://github.com/codexeron/projects-omniscope/blob/Codexeron/engine.py"
click node_orchestrator "https://github.com/codexeron/projects-omniscope/blob/Codexeron/engine.py"
click node_fetch "https://github.com/codexeron/projects-omniscope/blob/Codexeron/engine.py"
click node_performance "https://github.com/codexeron/projects-omniscope/blob/Codexeron/engine.py"
click node_security "https://github.com/codexeron/projects-omniscope/blob/Codexeron/engine.py"
click node_seo "https://github.com/codexeron/projects-omniscope/blob/Codexeron/engine.py"
click node_accessibility "https://github.com/codexeron/projects-omniscope/blob/Codexeron/engine.py"
click node_best_practices "https://github.com/codexeron/projects-omniscope/blob/Codexeron/engine.py"
click node_eco "https://github.com/codexeron/projects-omniscope/blob/Codexeron/engine.py"
click node_broken_links "https://github.com/codexeron/projects-omniscope/blob/Codexeron/engine.py"
click node_mobile "https://github.com/codexeron/projects-omniscope/blob/Codexeron/engine.py"
click node_report "https://github.com/codexeron/projects-omniscope/blob/Codexeron/models.py"

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_cli_api,node_dashboard,node_dashboard_js,node_user toneBlue
class node_url_validation,node_orchestrator,node_fetch toneAmber
class node_performance,node_security,node_seo,node_accessibility,node_best_practices,node_eco,node_broken_links,node_mobile toneMint
class node_report toneRose
class node_target_site,node_link_targets toneIndigo
```

## Components

### User Interfaces

- [CLI and API](https://github.com/codexeron/projects-omniscope/blob/Codexeron/omniscope.py): `omniscope.py`
- [Dashboard page](https://github.com/codexeron/projects-omniscope/blob/Codexeron/templates/index.html): `templates/index.html`
- [Dashboard client](https://github.com/codexeron/projects-omniscope/blob/Codexeron/static/script.js): `static/script.js`

### Analysis Runtime

- [URL validation](https://github.com/codexeron/projects-omniscope/blob/Codexeron/engine.py): `engine.py`
- [Analysis orchestrator](https://github.com/codexeron/projects-omniscope/blob/Codexeron/engine.py): `engine.py`
- [Page fetch](https://github.com/codexeron/projects-omniscope/blob/Codexeron/engine.py): `engine.py`

### Analysis Dimensions

- [Performance](https://github.com/codexeron/projects-omniscope/blob/Codexeron/engine.py): `engine.py`
- [Security and TLS](https://github.com/codexeron/projects-omniscope/blob/Codexeron/engine.py): `engine.py`
- [SEO](https://github.com/codexeron/projects-omniscope/blob/Codexeron/engine.py): `engine.py`
- [Accessibility](https://github.com/codexeron/projects-omniscope/blob/Codexeron/engine.py): `engine.py`
- [Best practices](https://github.com/codexeron/projects-omniscope/blob/Codexeron/engine.py): `engine.py`
- [Eco score](https://github.com/codexeron/projects-omniscope/blob/Codexeron/engine.py): `engine.py`
- [Broken links](https://github.com/codexeron/projects-omniscope/blob/Codexeron/engine.py): `engine.py`
- [Mobile friendly](https://github.com/codexeron/projects-omniscope/blob/Codexeron/engine.py): `engine.py`

### Report Output

- [Report model](https://github.com/codexeron/projects-omniscope/blob/Codexeron/models.py): `models.py`

### Other components

- **User**
- **Target website**
- **Linked pages**

## Connections

- User → CLI and API: submits URL
- CLI and API → Dashboard page: serves page
- Dashboard page → Dashboard client: loads client
- Dashboard client → CLI and API: requests analysis
- CLI and API → URL validation: validates URL
- CLI and API → Analysis orchestrator: starts analysis
- Analysis orchestrator → Page fetch: fetches page
- Page fetch → Target website: requests page
- Analysis orchestrator → Performance: analyzes context
- Analysis orchestrator → Security and TLS: analyzes context
- Analysis orchestrator → SEO: analyzes context
- Analysis orchestrator → Accessibility: analyzes context
- Analysis orchestrator → Best practices: analyzes context
- Analysis orchestrator → Eco score: analyzes context
- Analysis orchestrator → Broken links: analyzes context
- Analysis orchestrator → Mobile friendly: analyzes context
- Broken links → Linked pages: checks links
- Analysis orchestrator → Report model: assembles report
- CLI and API → Report model: returns report
- Dashboard client → Report model: renders response
