# kledsonzg/easyactiveonsupplyreport architecture

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

- Interactive diagram: https://gitdiagram.com/kledsonzg/easyactiveonsupplyreport
- Repository: https://github.com/kledsonzg/easyactiveonsupplyreport

## Overview

Easy Activity OnSupply Report is a local web application for logging into OnSupply, filtering fiscal-note records, and presenting/exporting results. The main flow is browser login → server-side authentication → report filters → fiscal-note request → rendered result. The graph also shows app startup, static-page delivery, and shutdown. The README is empty, and the connector source is excerpted, so some internal details—especially exact response handling—are represented only where the available source supports them.

Main entry points: [`server/src/RequestsHandler/Handler.cs`](https://github.com/kledsonzg/easyactiveonsupplyreport/blob/main/server/src/RequestsHandler/Handler.cs) (HTTP request handler), [`server/src/WebConnector/Connector.cs`](https://github.com/kledsonzg/easyactiveonsupplyreport/blob/main/server/src/WebConnector/Connector.cs) (External service connector), [`client/scripts/report.js`](https://github.com/kledsonzg/easyactiveonsupplyreport/blob/main/client/scripts/report.js) (Report filters), [`client/scripts/index.js`](https://github.com/kledsonzg/easyactiveonsupplyreport/blob/main/client/scripts/index.js) (App shell)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Browser application"]
  node_webshell["App shell<br/>[index.js]"]
  node_loginui["Login interface<br/>[login.js]"]
  node_reportui["Report filters<br/>[report.js]"]
  node_reportpage["Report page<br/>[report.html]"]
  node_loginpage["Login page<br/>[login.html]"]
  node_resultpage["Result page<br/>[result.html]"]
  node_resultview["Result rendering<br/>[report.js]"]
end

subgraph group_server["Local web server"]
  node_program["Server startup<br/>[Program.cs]"]
  node_handler["HTTP request handler<br/>[Handler.cs]"]
  node_util["Path utility<br/>[Util.cs]"]
  node_shutdown["Shutdown request<br/>[Connector.cs]"]
end

subgraph group_integration["OnSupply integration"]
  node_connector["External service connector<br/>[Connector.cs]"]
  node_urls["Service endpoints<br/>[Urls.cs]"]
  node_fiscalnotes["Fiscal-note query<br/>[Connector.cs]"]
end

subgraph group_domain["Report data"]
  node_filterconfig["Filter definitions<br/>[formatos.json]"]
  node_postcontent["Filter request model<br/>[IPostContent.cs]"]
end

node_user(("User"))
node_browser(("Web browser"))
node_onsupply["OnSupply service"]

node_user -->|"uses"| node_browser
node_program -->|"opens"| node_browser
node_browser -->|"requests pages"| node_handler
node_program -->|"dispatches requests"| node_handler
node_handler -->|"resolves routes"| node_util
node_handler -->|"serves files"| node_browser
node_browser -->|"loads app"| node_webshell
node_webshell -->|"loads login"| node_loginpage
node_webshell -->|"loads report"| node_reportpage
node_webshell -->|"loads script"| node_loginui
node_loginui -->|"requests login"| node_handler
node_handler -->|"routes login"| node_connector
node_connector -->|"uses endpoints"| node_urls
node_connector -->|"authenticates"| node_onsupply
node_onsupply -->|"returns session data"| node_connector
node_loginui -->|"loads after login"| node_reportpage
node_reportui -->|"reads definitions"| node_filterconfig
node_reportui -->|"posts filters"| node_handler
node_reportui -->|"formats filter data"| node_postcontent
node_handler -->|"routes export"| node_connector
node_connector -->|"builds query"| node_fiscalnotes
node_fiscalnotes -->|"requests records"| node_onsupply
node_onsupply -->|"returns records"| node_fiscalnotes
node_connector -->|"sends response"| node_handler
node_reportui -->|"loads result view"| node_resultpage
node_reportui -->|"renders response"| node_resultview
node_browser -->|"requests exit"| node_handler
node_handler -->|"routes exit"| node_shutdown
node_shutdown -->|"stops server"| node_program

click node_program "https://github.com/kledsonzg/easyactiveonsupplyreport/blob/main/server/Program.cs"
click node_handler "https://github.com/kledsonzg/easyactiveonsupplyreport/blob/main/server/src/RequestsHandler/Handler.cs"
click node_util "https://github.com/kledsonzg/easyactiveonsupplyreport/blob/main/server/src/util/Util.cs"
click node_webshell "https://github.com/kledsonzg/easyactiveonsupplyreport/blob/main/client/scripts/index.js"
click node_loginui "https://github.com/kledsonzg/easyactiveonsupplyreport/blob/main/client/scripts/login.js"
click node_reportui "https://github.com/kledsonzg/easyactiveonsupplyreport/blob/main/client/scripts/report.js"
click node_filterconfig "https://github.com/kledsonzg/easyactiveonsupplyreport/blob/main/client/filtros/formatos.json"
click node_reportpage "https://github.com/kledsonzg/easyactiveonsupplyreport/blob/main/client/pages/report.html"
click node_loginpage "https://github.com/kledsonzg/easyactiveonsupplyreport/blob/main/client/pages/login.html"
click node_resultpage "https://github.com/kledsonzg/easyactiveonsupplyreport/blob/main/client/pages/result.html"
click node_postcontent "https://github.com/kledsonzg/easyactiveonsupplyreport/blob/main/server/src/Interface/IPostContent.cs"
click node_connector "https://github.com/kledsonzg/easyactiveonsupplyreport/blob/main/server/src/WebConnector/Connector.cs"
click node_urls "https://github.com/kledsonzg/easyactiveonsupplyreport/blob/main/server/src/WebConnector/Urls.cs"
click node_shutdown "https://github.com/kledsonzg/easyactiveonsupplyreport/blob/main/server/src/WebConnector/Connector.cs"
click node_fiscalnotes "https://github.com/kledsonzg/easyactiveonsupplyreport/blob/main/server/src/WebConnector/Connector.cs"
click node_resultview "https://github.com/kledsonzg/easyactiveonsupplyreport/blob/main/client/scripts/report.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_webshell,node_loginui,node_reportui,node_reportpage,node_loginpage,node_resultpage,node_resultview,node_user,node_browser toneBlue
class node_program,node_handler,node_util,node_shutdown toneAmber
class node_connector,node_urls,node_fiscalnotes toneMint
class node_filterconfig,node_postcontent toneRose
class node_onsupply toneIndigo
```

## Components

### Browser application

- [App shell](https://github.com/kledsonzg/easyactiveonsupplyreport/blob/main/client/scripts/index.js): `client/scripts/index.js`
- [Login interface](https://github.com/kledsonzg/easyactiveonsupplyreport/blob/main/client/scripts/login.js): `client/scripts/login.js`
- [Report filters](https://github.com/kledsonzg/easyactiveonsupplyreport/blob/main/client/scripts/report.js): `client/scripts/report.js`
- [Report page](https://github.com/kledsonzg/easyactiveonsupplyreport/blob/main/client/pages/report.html): `client/pages/report.html`
- [Login page](https://github.com/kledsonzg/easyactiveonsupplyreport/blob/main/client/pages/login.html): `client/pages/login.html`
- [Result page](https://github.com/kledsonzg/easyactiveonsupplyreport/blob/main/client/pages/result.html): `client/pages/result.html`
- [Result rendering](https://github.com/kledsonzg/easyactiveonsupplyreport/blob/main/client/scripts/report.js): `client/scripts/report.js`

### Local web server

- [Server startup](https://github.com/kledsonzg/easyactiveonsupplyreport/blob/main/server/Program.cs): `server/Program.cs`
- [HTTP request handler](https://github.com/kledsonzg/easyactiveonsupplyreport/blob/main/server/src/RequestsHandler/Handler.cs): `server/src/RequestsHandler/Handler.cs`
- [Path utility](https://github.com/kledsonzg/easyactiveonsupplyreport/blob/main/server/src/util/Util.cs): `server/src/util/Util.cs`
- [Shutdown request](https://github.com/kledsonzg/easyactiveonsupplyreport/blob/main/server/src/WebConnector/Connector.cs): `server/src/WebConnector/Connector.cs`

### OnSupply integration

- [External service connector](https://github.com/kledsonzg/easyactiveonsupplyreport/blob/main/server/src/WebConnector/Connector.cs): `server/src/WebConnector/Connector.cs`
- [Service endpoints](https://github.com/kledsonzg/easyactiveonsupplyreport/blob/main/server/src/WebConnector/Urls.cs): `server/src/WebConnector/Urls.cs`
- [Fiscal-note query](https://github.com/kledsonzg/easyactiveonsupplyreport/blob/main/server/src/WebConnector/Connector.cs): `server/src/WebConnector/Connector.cs`

### Report data

- [Filter definitions](https://github.com/kledsonzg/easyactiveonsupplyreport/blob/main/client/filtros/formatos.json): `client/filtros/formatos.json`
- [Filter request model](https://github.com/kledsonzg/easyactiveonsupplyreport/blob/main/server/src/Interface/IPostContent.cs): `server/src/Interface/IPostContent.cs`

### Other components

- **User**
- **Web browser**
- **OnSupply service**

## Connections

- User → Web browser: uses
- Server startup → Web browser: opens
- Web browser → HTTP request handler: requests pages
- Server startup → HTTP request handler: dispatches requests
- HTTP request handler → Path utility: resolves routes
- HTTP request handler → Web browser: serves files
- Web browser → App shell: loads app
- App shell → Login page: loads login
- App shell → Report page: loads report
- App shell → Login interface: loads script
- Login interface → HTTP request handler: requests login
- HTTP request handler → External service connector: routes login
- External service connector → Service endpoints: uses endpoints
- External service connector → OnSupply service: authenticates
- OnSupply service → External service connector: returns session data
- Login interface → Report page: loads after login
- Report filters → Filter definitions: reads definitions
- Report filters → HTTP request handler: posts filters
- Report filters → Filter request model: formats filter data
- HTTP request handler → External service connector: routes export
- External service connector → Fiscal-note query: builds query
- Fiscal-note query → OnSupply service: requests records
- OnSupply service → Fiscal-note query: returns records
- External service connector → HTTP request handler: sends response
- Report filters → Result page: loads result view
- Report filters → Result rendering: renders response
- Web browser → HTTP request handler: requests exit
- HTTP request handler → Shutdown request: routes exit
- Shutdown request → Server startup: stops server
