# cchristion/2frc architecture

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

- Interactive diagram: https://gitdiagram.com/cchristion/2frc
- Repository: https://github.com/cchristion/2frc

## Overview

2FRC is a small Streamlit app for applying a regex to two inputs and comparing the resulting matches. Its single runtime file collects URL, uploaded-file, or pasted-text inputs; fetches URL content, extracts and deduplicates matches, computes differences and overlap, and displays counts and tables. The README also claims report export, but no export implementation appears in the available source. The architecture is based on the single sampled source file.

Main entry points: [`main.py`](https://github.com/cchristion/2frc/blob/main/main.py) (Input interface)

## Diagram (Mermaid)

```mermaid
flowchart TD

node_user(("Analyst"))
node_input_ui["Input interface<br/>[main.py]"]
node_url_fetch["URL fetch<br/>[main.py]"]
node_regex["Regex extraction<br/>[main.py]"]
node_comparison["Set comparison<br/>[main.py]"]
node_results["Results display<br/>[main.py]"]
node_remote_url(("URL source"))

node_user -->|"provides inputs"| node_input_ui
node_input_ui -->|"fetches URL"| node_url_fetch
node_url_fetch -->|"requests content"| node_remote_url
node_input_ui -->|"provides text"| node_regex
node_regex -->|"supplies matches"| node_comparison
node_comparison -->|"displays results"| node_results

click node_input_ui "https://github.com/cchristion/2frc/blob/main/main.py"
click node_url_fetch "https://github.com/cchristion/2frc/blob/main/main.py"
click node_regex "https://github.com/cchristion/2frc/blob/main/main.py"
click node_comparison "https://github.com/cchristion/2frc/blob/main/main.py"
click node_results "https://github.com/cchristion/2frc/blob/main/main.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_user,node_remote_url toneIndigo
class node_input_ui,node_url_fetch,node_regex,node_comparison,node_results toneTeal
```

## Components

### Other components

- **Analyst**
- [Input interface](https://github.com/cchristion/2frc/blob/main/main.py): `main.py`
- [URL fetch](https://github.com/cchristion/2frc/blob/main/main.py): `main.py`
- [Regex extraction](https://github.com/cchristion/2frc/blob/main/main.py): `main.py`
- [Set comparison](https://github.com/cchristion/2frc/blob/main/main.py): `main.py`
- [Results display](https://github.com/cchristion/2frc/blob/main/main.py): `main.py`
- **URL source**

## Connections

- Analyst → Input interface: provides inputs (evidence: `main.py`)
- Input interface → URL fetch: fetches URL (evidence: `main.py`)
- URL fetch → URL source: requests content (evidence: `main.py`)
- Input interface → Regex extraction: provides text (evidence: `main.py`)
- Regex extraction → Set comparison: supplies matches (evidence: `main.py`)
- Set comparison → Results display: displays results (evidence: `main.py`)
