# manwar/perlweeklychallenge-club architecture

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

- Interactive diagram: https://gitdiagram.com/manwar/perlweeklychallenge-club
- Repository: https://github.com/manwar/perlweeklychallenge-club

## Overview

The Weekly Challenge Club is a community archive of independently authored weekly programming-challenge solutions, not a single application with a shared runtime. A contributor finds a challenge, adds a solution under their contributor and language directories, then submits a pull request. The graph shows that documented workflow and a few sampled standalone solutions as examples; most solutions were not inspected, so no runtime relationships between them are inferred.

Main entry points: [`challenge-109/cheok-yin-fung/java/NBoxesJavaFX.java`](https://github.com/manwar/perlweeklychallenge-club/blob/master/challenge-109/cheok-yin-fung/java/NBoxesJavaFX.java) (Four-box puzzle), [`challenge-016/paulo-custodio/c/sha256.c`](https://github.com/manwar/perlweeklychallenge-club/blob/master/challenge-016/paulo-custodio/c/sha256.c) (SHA-256 implementation), [`challenge-001`](https://github.com/manwar/perlweeklychallenge-club/tree/master/challenge-001) (Challenge 001), [`challenge-098`](https://github.com/manwar/perlweeklychallenge-club/tree/master/challenge-098) (Challenge 098)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_contribution["Contribution workflow"]
  node_workflow["Submit solution"]
end

subgraph group_archive["Challenge archive"]
  node_challenge001["Challenge 001"]
  node_challenge098["Challenge 098"]
  node_challenge105["Challenge 105"]
  node_challenge109["Challenge 109"]
end

subgraph group_examples["Sample solutions"]
  node_sha256["SHA-256 implementation<br/>[sha256.c]"]
  node_sha256header["SHA-256 interface<br/>[sha256.h]"]
  node_searchinsert["Search-insert solution"]
  node_rootcalculation["Root calculation<br/>[Main.java]"]
  node_boxpuzzle["Four-box puzzle<br/>[NBoxesJavaFX.java]"]
  node_box["Box geometry<br/>[Box.java]"]
  node_point["Point geometry<br/>[Point.java]"]
end

node_contributor(("Contributor"))

node_contributor -->|"contributes"| node_workflow
node_workflow -->|"chooses challenge"| node_challenge001
node_workflow -->|"adds solution"| node_challenge098
node_workflow -->|"adds solution"| node_challenge105
node_workflow -->|"adds solution"| node_challenge109
node_sha256 -->|"uses interface"| node_sha256header
node_boxpuzzle -->|"uses geometry"| node_box
node_boxpuzzle -->|"uses coordinates"| node_point

click node_challenge001 "https://github.com/manwar/perlweeklychallenge-club/tree/master/challenge-001"
click node_challenge098 "https://github.com/manwar/perlweeklychallenge-club/tree/master/challenge-098"
click node_challenge105 "https://github.com/manwar/perlweeklychallenge-club/tree/master/challenge-105"
click node_challenge109 "https://github.com/manwar/perlweeklychallenge-club/tree/master/challenge-109"
click node_sha256 "https://github.com/manwar/perlweeklychallenge-club/blob/master/challenge-016/paulo-custodio/c/sha256.c"
click node_sha256header "https://github.com/manwar/perlweeklychallenge-club/blob/master/challenge-016/paulo-custodio/c/sha256.h"
click node_searchinsert "https://github.com/manwar/perlweeklychallenge-club/blob/master/challenge-098/ziameraj16/java/SearchInsertPosition.java"
click node_rootcalculation "https://github.com/manwar/perlweeklychallenge-club/blob/master/challenge-105/laurent-rosenfeld/java/Main.java"
click node_boxpuzzle "https://github.com/manwar/perlweeklychallenge-club/blob/master/challenge-109/cheok-yin-fung/java/NBoxesJavaFX.java"
click node_box "https://github.com/manwar/perlweeklychallenge-club/blob/master/challenge-109/cheok-yin-fung/java/Box.java"
click node_point "https://github.com/manwar/perlweeklychallenge-club/blob/master/challenge-109/cheok-yin-fung/java/Point.java"

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_workflow toneBlue
class node_challenge001,node_challenge098,node_challenge105,node_challenge109 toneAmber
class node_sha256,node_sha256header,node_searchinsert,node_rootcalculation,node_boxpuzzle,node_box,node_point toneMint
class node_contributor toneIndigo
```

## Components

### Contribution workflow

- **Submit solution**

### Challenge archive

- [Challenge 001](https://github.com/manwar/perlweeklychallenge-club/tree/master/challenge-001): `challenge-001`
- [Challenge 098](https://github.com/manwar/perlweeklychallenge-club/tree/master/challenge-098): `challenge-098`
- [Challenge 105](https://github.com/manwar/perlweeklychallenge-club/tree/master/challenge-105): `challenge-105`
- [Challenge 109](https://github.com/manwar/perlweeklychallenge-club/tree/master/challenge-109): `challenge-109`

### Sample solutions

- [SHA-256 implementation](https://github.com/manwar/perlweeklychallenge-club/blob/master/challenge-016/paulo-custodio/c/sha256.c): `challenge-016/paulo-custodio/c/sha256.c`
- [SHA-256 interface](https://github.com/manwar/perlweeklychallenge-club/blob/master/challenge-016/paulo-custodio/c/sha256.h): `challenge-016/paulo-custodio/c/sha256.h`
- [Search-insert solution](https://github.com/manwar/perlweeklychallenge-club/blob/master/challenge-098/ziameraj16/java/SearchInsertPosition.java): `challenge-098/ziameraj16/java/SearchInsertPosition.java`
- [Root calculation](https://github.com/manwar/perlweeklychallenge-club/blob/master/challenge-105/laurent-rosenfeld/java/Main.java): `challenge-105/laurent-rosenfeld/java/Main.java`
- [Four-box puzzle](https://github.com/manwar/perlweeklychallenge-club/blob/master/challenge-109/cheok-yin-fung/java/NBoxesJavaFX.java): `challenge-109/cheok-yin-fung/java/NBoxesJavaFX.java`
- [Box geometry](https://github.com/manwar/perlweeklychallenge-club/blob/master/challenge-109/cheok-yin-fung/java/Box.java): `challenge-109/cheok-yin-fung/java/Box.java`
- [Point geometry](https://github.com/manwar/perlweeklychallenge-club/blob/master/challenge-109/cheok-yin-fung/java/Point.java): `challenge-109/cheok-yin-fung/java/Point.java`

### Other components

- **Contributor**

## Connections

- Contributor → Submit solution: contributes
- Submit solution → Challenge 001: chooses challenge
- Submit solution → Challenge 098: adds solution
- Submit solution → Challenge 105: adds solution
- Submit solution → Challenge 109: adds solution
- SHA-256 implementation → SHA-256 interface: uses interface (evidence: `challenge-016/paulo-custodio/c/sha256.c`)
- Four-box puzzle → Box geometry: uses geometry (evidence: `challenge-109/cheok-yin-fung/java/NBoxesJavaFX.java`)
- Four-box puzzle → Point geometry: uses coordinates (evidence: `challenge-109/cheok-yin-fung/java/NBoxesJavaFX.java`)
