# cupnodeles/xdays-sl-export-direct architecture

> Architecture diagram of the GitHub repository cupnodeles/xdays-sl-export-direct, 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/cupnodeles/xdays-sl-export-direct
- Repository: https://github.com/cupnodeles/xdays-sl-export-direct

## Overview

XDAYS SL Export Direct is a Streamlit app that turns uploaded CSV or Excel collection exports into a standardized Excel download. The user uploads a file, confirms date order, and receives a processed workbook. The documented pipeline restructures columns, validates headers, cleans values, filters rows, and reports changes. The repository has only one application source file, so the nodes represent responsibilities within app.py, not separate modules; the README documents the overall workflow, while sampled code confirms selected cleaning and reporting behavior.

Main entry points: [`app.py`](https://github.com/cupnodeles/xdays-sl-export-direct/blob/main/app.py) (Download)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interface["User Interface"]
  node_ui["Upload &amp; Controls<br/>[app.py]"]
  node_dateorder["Date Order Selection<br/>[app.py]"]
  node_download["Download<br/>[app.py]"]
end

subgraph group_processing["Data Processing"]
  node_load["File Loading<br/>[app.py]"]
  node_restructure["Column Restructuring<br/>[app.py]"]
  node_validate["Header Validation<br/>[app.py]"]
  node_clean["Value Cleaning<br/>[app.py]"]
  node_filter["Row Filtering<br/>[app.py]"]
end

subgraph group_delivery["Results"]
  node_report["Processing Report<br/>[app.py]"]
  node_workbook["Excel Generation<br/>[app.py]"]
end

node_user(("Collection Agent"))
node_rawfile["Raw CSV / Excel"]
node_result["Processed Excel"]

node_user -->|"uploads"| node_ui
node_rawfile -->|"provides"| node_ui
node_ui -->|"loads file"| node_load
node_load -->|"passes data"| node_restructure
node_restructure -->|"passes columns"| node_validate
node_validate -->|"requests choice"| node_dateorder
node_user -->|"confirms order"| node_dateorder
node_dateorder -->|"sets date order"| node_clean
node_validate -->|"passes mapped data"| node_clean
node_clean -->|"passes cleaned rows"| node_filter
node_filter -->|"summarizes results"| node_report
node_filter -->|"provides output data"| node_workbook
node_workbook -->|"provides workbook"| node_download
node_download -->|"offers download"| node_user
node_download -->|"delivers file"| node_result

click node_ui "https://github.com/cupnodeles/xdays-sl-export-direct/blob/main/app.py"
click node_load "https://github.com/cupnodeles/xdays-sl-export-direct/blob/main/app.py"
click node_restructure "https://github.com/cupnodeles/xdays-sl-export-direct/blob/main/app.py"
click node_validate "https://github.com/cupnodeles/xdays-sl-export-direct/blob/main/app.py"
click node_dateorder "https://github.com/cupnodeles/xdays-sl-export-direct/blob/main/app.py"
click node_clean "https://github.com/cupnodeles/xdays-sl-export-direct/blob/main/app.py"
click node_filter "https://github.com/cupnodeles/xdays-sl-export-direct/blob/main/app.py"
click node_report "https://github.com/cupnodeles/xdays-sl-export-direct/blob/main/app.py"
click node_workbook "https://github.com/cupnodeles/xdays-sl-export-direct/blob/main/app.py"
click node_download "https://github.com/cupnodeles/xdays-sl-export-direct/blob/main/app.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_ui,node_dateorder,node_download toneBlue
class node_load,node_restructure,node_validate,node_clean,node_filter toneAmber
class node_report,node_workbook toneMint
class node_user,node_rawfile,node_result toneIndigo
```

## Components

### User Interface

- [Upload & Controls](https://github.com/cupnodeles/xdays-sl-export-direct/blob/main/app.py): `app.py`
- [Date Order Selection](https://github.com/cupnodeles/xdays-sl-export-direct/blob/main/app.py): `app.py`
- [Download](https://github.com/cupnodeles/xdays-sl-export-direct/blob/main/app.py): `app.py`

### Data Processing

- [File Loading](https://github.com/cupnodeles/xdays-sl-export-direct/blob/main/app.py): `app.py`
- [Column Restructuring](https://github.com/cupnodeles/xdays-sl-export-direct/blob/main/app.py): `app.py`
- [Header Validation](https://github.com/cupnodeles/xdays-sl-export-direct/blob/main/app.py): `app.py`
- [Value Cleaning](https://github.com/cupnodeles/xdays-sl-export-direct/blob/main/app.py): `app.py`
- [Row Filtering](https://github.com/cupnodeles/xdays-sl-export-direct/blob/main/app.py): `app.py`

### Results

- [Processing Report](https://github.com/cupnodeles/xdays-sl-export-direct/blob/main/app.py): `app.py`
- [Excel Generation](https://github.com/cupnodeles/xdays-sl-export-direct/blob/main/app.py): `app.py`

### Other components

- **Collection Agent**
- **Raw CSV / Excel**
- **Processed Excel**

## Connections

- Collection Agent → Upload & Controls: uploads
- Raw CSV / Excel → Upload & Controls: provides
- Upload & Controls → File Loading: loads file
- File Loading → Column Restructuring: passes data
- Column Restructuring → Header Validation: passes columns
- Header Validation → Date Order Selection: requests choice
- Collection Agent → Date Order Selection: confirms order
- Date Order Selection → Value Cleaning: sets date order
- Header Validation → Value Cleaning: passes mapped data
- Value Cleaning → Row Filtering: passes cleaned rows
- Row Filtering → Processing Report: summarizes results
- Row Filtering → Excel Generation: provides output data
- Excel Generation → Download: provides workbook
- Download → Collection Agent: offers download
- Download → Processed Excel: delivers file
