# cupnodeles/guiller-2 architecture

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

- Interactive diagram: https://gitdiagram.com/cupnodeles/guiller-2
- Repository: https://github.com/cupnodeles/guiller-2

## Overview

OneProd is a Streamlit tool for converting DRR files into the ONEPROD format, resolving mapping anomalies, and maintaining lookup tables. The principal workflow starts with a user uploading a file, then processes and maps its data for export; a separate References view edits lookup data stored in an Excel workbook. The excerpts show the upload-to-mapping handoff and reference editing, but omit much of the processing and download flow, so those internal connections are not asserted here.

Main entry points: [`app.py`](https://github.com/cupnodeles/guiller-2/blob/main/app.py) (Streamlit App), [`references.py`](https://github.com/cupnodeles/guiller-2/blob/main/references.py) (Reference Access), [`references.xlsx`](https://github.com/cupnodeles/guiller-2/blob/main/references.xlsx) (Reference Workbook)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_processing["DRR Processing"]
  node_app["Streamlit App<br/>[app.py]"]
  node_ingest["File Ingestion<br/>[app.py]"]
  node_mapping["DRR Mapping<br/>[app.py]"]
  node_anomalies["Anomaly Resolution<br/>[app.py]"]
  node_batch_export["Batch Export<br/>[app.py]"]
end

subgraph group_references["Reference Data"]
  node_reference_ui["Reference Editor<br/>[app.py]"]
  node_reference_access["Reference Access<br/>[references.py]"]
  node_workbook[("Reference Workbook<br/>[references.xlsx]")]
end

subgraph group_schema["Data Schema"]
  node_schema["Column Definitions<br/>[schema.py]"]
end

node_user(("Operator"))

node_user -->|"uses"| node_app
node_app -->|"uploads file"| node_ingest
node_app -->|"maps data"| node_mapping
node_reference_ui -->|"saves entry"| node_reference_access
node_reference_access -->|"reads and writes"| node_workbook

click node_app "https://github.com/cupnodeles/guiller-2/blob/main/app.py"
click node_ingest "https://github.com/cupnodeles/guiller-2/blob/main/app.py"
click node_mapping "https://github.com/cupnodeles/guiller-2/blob/main/app.py"
click node_anomalies "https://github.com/cupnodeles/guiller-2/blob/main/app.py"
click node_batch_export "https://github.com/cupnodeles/guiller-2/blob/main/app.py"
click node_reference_ui "https://github.com/cupnodeles/guiller-2/blob/main/app.py"
click node_reference_access "https://github.com/cupnodeles/guiller-2/blob/main/references.py"
click node_workbook "https://github.com/cupnodeles/guiller-2/blob/main/references.xlsx"
click node_schema "https://github.com/cupnodeles/guiller-2/blob/main/schema.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_app,node_ingest,node_mapping,node_anomalies,node_batch_export toneBlue
class node_reference_ui,node_reference_access,node_workbook toneAmber
class node_schema toneMint
class node_user toneIndigo
```

## Components

### DRR Processing

- [Streamlit App](https://github.com/cupnodeles/guiller-2/blob/main/app.py): `app.py`
- [File Ingestion](https://github.com/cupnodeles/guiller-2/blob/main/app.py): `app.py`
- [DRR Mapping](https://github.com/cupnodeles/guiller-2/blob/main/app.py): `app.py`
- [Anomaly Resolution](https://github.com/cupnodeles/guiller-2/blob/main/app.py): `app.py`
- [Batch Export](https://github.com/cupnodeles/guiller-2/blob/main/app.py): `app.py`

### Reference Data

- [Reference Editor](https://github.com/cupnodeles/guiller-2/blob/main/app.py): `app.py`
- [Reference Access](https://github.com/cupnodeles/guiller-2/blob/main/references.py): `references.py`
- [Reference Workbook](https://github.com/cupnodeles/guiller-2/blob/main/references.xlsx): `references.xlsx`

### Data Schema

- [Column Definitions](https://github.com/cupnodeles/guiller-2/blob/main/schema.py): `schema.py`

### Other components

- **Operator**

## Connections

- Operator → Streamlit App: uses (evidence: `app.py`)
- Streamlit App → File Ingestion: uploads file (evidence: `app.py`)
- Streamlit App → DRR Mapping: maps data (evidence: `app.py`)
- Reference Editor → Reference Access: saves entry (evidence: `app.py`)
- Reference Access → Reference Workbook: reads and writes (evidence: `references.py`)
