# jonasjore/coding-challenges architecture

> Architecture diagram of the GitHub repository jonasjore/coding-challenges, 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/jonasjore/coding-challenges
- Repository: https://github.com/jonasjore/coding-challenges

## Overview

This repository is a collection of independent solutions to coding challenges, not a single application or shared execution framework. The principal workflow is to choose a challenge, provide its expected input or use its example input, and run or submit that solution to obtain an answer. The README names Codewars, Kattis, and LeetCode; the tree also contains other challenge collections. Sampled programs show varied input and output patterns, so the graph groups solutions by collection rather than implying shared runtime wiring. Unsampled solutions are represented only at their enclosing directories.

Main entry points: [`CodeWars/cpp`](https://github.com/jonasjore/coding-challenges/tree/master/CodeWars/cpp) (C++ katas), [`CodeWars/go`](https://github.com/jonasjore/coding-challenges/tree/master/CodeWars/go) (Go katas), [`CodeWars/java`](https://github.com/jonasjore/coding-challenges/tree/master/CodeWars/java) (Java katas), [`CodeWars/javascript`](https://github.com/jonasjore/coding-challenges/tree/master/CodeWars/javascript) (JavaScript katas)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_codewars["Codewars solutions"]
  node_cw_cpp["C++ katas"]
  node_cw_go["Go katas"]
  node_cw_java["Java katas"]
  node_cw_js["JavaScript katas"]
  node_cw_python["Python katas"]
  node_cw_rust["Rust katas"]
  node_cw_other["Other katas"]
end

subgraph group_platforms["Other platforms"]
  node_hackerrank["HackerRank tasks"]
  node_kattis["Kattis tasks"]
  node_leetcode["LeetCode tasks"]
  node_checkio["CheckiO tasks"]
end

subgraph group_puzzles["Puzzle series"]
  node_aoc2015["Advent 2015"]
  node_aoc2020["Advent 2020"]
  node_aoc2023["Advent 2023"]
  node_euler["Project Euler"]
end

subgraph group_standalone["Standalone challenges"]
  node_daily_programmer["Daily Programmer<br/>[talking_clock.rs]"]
end

node_challenger(("Challenge user"))
node_answer["Challenge answer"]

node_challenger -->|"chooses challenge"| node_cw_cpp
node_challenger -->|"chooses challenge"| node_cw_go
node_challenger -->|"chooses challenge"| node_cw_java
node_challenger -->|"chooses challenge"| node_cw_js
node_challenger -->|"chooses challenge"| node_cw_python
node_challenger -->|"chooses challenge"| node_cw_rust
node_challenger -->|"chooses challenge"| node_cw_other
node_challenger -->|"chooses challenge"| node_hackerrank
node_challenger -->|"chooses challenge"| node_kattis
node_challenger -->|"chooses challenge"| node_leetcode
node_challenger -->|"chooses challenge"| node_checkio
node_challenger -->|"chooses puzzle"| node_aoc2015
node_challenger -->|"chooses puzzle"| node_aoc2020
node_challenger -->|"chooses puzzle"| node_aoc2023
node_challenger -->|"chooses problem"| node_euler
node_challenger -->|"chooses challenge"| node_daily_programmer
node_cw_cpp -->|"computes answer"| node_answer
node_cw_go -->|"computes answer"| node_answer
node_cw_java -->|"computes answer"| node_answer
node_cw_js -->|"computes answer"| node_answer
node_cw_python -->|"computes answer"| node_answer
node_cw_rust -->|"computes answer"| node_answer
node_cw_other -->|"computes answer"| node_answer
node_hackerrank -->|"computes answer"| node_answer
node_kattis -->|"computes answer"| node_answer
node_leetcode -->|"computes answer"| node_answer
node_checkio -->|"computes answer"| node_answer
node_aoc2015 -->|"computes answer"| node_answer
node_aoc2020 -->|"computes answer"| node_answer
node_aoc2023 -->|"computes answer"| node_answer
node_euler -->|"computes answer"| node_answer
node_daily_programmer -->|"prints answer"| node_answer

click node_cw_cpp "https://github.com/jonasjore/coding-challenges/tree/master/CodeWars/cpp"
click node_cw_go "https://github.com/jonasjore/coding-challenges/tree/master/CodeWars/go"
click node_cw_java "https://github.com/jonasjore/coding-challenges/tree/master/CodeWars/java"
click node_cw_js "https://github.com/jonasjore/coding-challenges/tree/master/CodeWars/javascript"
click node_cw_python "https://github.com/jonasjore/coding-challenges/tree/master/CodeWars/python"
click node_cw_rust "https://github.com/jonasjore/coding-challenges/tree/master/CodeWars/rust"
click node_cw_other "https://github.com/jonasjore/coding-challenges/tree/master/CodeWars"
click node_hackerrank "https://github.com/jonasjore/coding-challenges/tree/master/HackerRank/cpp"
click node_kattis "https://github.com/jonasjore/coding-challenges/tree/master/Kattis/cpp"
click node_leetcode "https://github.com/jonasjore/coding-challenges/tree/master/Leetcode/kotlin"
click node_checkio "https://github.com/jonasjore/coding-challenges/tree/master/checkio"
click node_aoc2015 "https://github.com/jonasjore/coding-challenges/tree/master/advent-of-code-2015/src"
click node_aoc2020 "https://github.com/jonasjore/coding-challenges/tree/master/advent-of-code-2020"
click node_aoc2023 "https://github.com/jonasjore/coding-challenges/tree/master/advent-of-code-2023/src"
click node_euler "https://github.com/jonasjore/coding-challenges/tree/master/project-euler/src/main/kotlin"
click node_daily_programmer "https://github.com/jonasjore/coding-challenges/blob/master/daily-programmer/talking_clock.rs"

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_cw_cpp,node_cw_go,node_cw_java,node_cw_js,node_cw_python,node_cw_rust,node_cw_other,node_challenger toneBlue
class node_hackerrank,node_kattis,node_leetcode,node_checkio toneAmber
class node_aoc2015,node_aoc2020,node_aoc2023,node_euler toneMint
class node_daily_programmer toneRose
class node_answer toneIndigo
```

## Components

### Codewars solutions

- [C++ katas](https://github.com/jonasjore/coding-challenges/tree/master/CodeWars/cpp): `CodeWars/cpp`
- [Go katas](https://github.com/jonasjore/coding-challenges/tree/master/CodeWars/go): `CodeWars/go`
- [Java katas](https://github.com/jonasjore/coding-challenges/tree/master/CodeWars/java): `CodeWars/java`
- [JavaScript katas](https://github.com/jonasjore/coding-challenges/tree/master/CodeWars/javascript): `CodeWars/javascript`
- [Python katas](https://github.com/jonasjore/coding-challenges/tree/master/CodeWars/python): `CodeWars/python`
- [Rust katas](https://github.com/jonasjore/coding-challenges/tree/master/CodeWars/rust): `CodeWars/rust`
- [Other katas](https://github.com/jonasjore/coding-challenges/tree/master/CodeWars): `CodeWars`

### Other platforms

- [HackerRank tasks](https://github.com/jonasjore/coding-challenges/tree/master/HackerRank/cpp): `HackerRank/cpp`
- [Kattis tasks](https://github.com/jonasjore/coding-challenges/tree/master/Kattis/cpp): `Kattis/cpp`
- [LeetCode tasks](https://github.com/jonasjore/coding-challenges/tree/master/Leetcode/kotlin): `Leetcode/kotlin`
- [CheckiO tasks](https://github.com/jonasjore/coding-challenges/tree/master/checkio): `checkio`

### Puzzle series

- [Advent 2015](https://github.com/jonasjore/coding-challenges/tree/master/advent-of-code-2015/src): `advent-of-code-2015/src`
- [Advent 2020](https://github.com/jonasjore/coding-challenges/tree/master/advent-of-code-2020): `advent-of-code-2020`
- [Advent 2023](https://github.com/jonasjore/coding-challenges/tree/master/advent-of-code-2023/src): `advent-of-code-2023/src`
- [Project Euler](https://github.com/jonasjore/coding-challenges/tree/master/project-euler/src/main/kotlin): `project-euler/src/main/kotlin`

### Standalone challenges

- [Daily Programmer](https://github.com/jonasjore/coding-challenges/blob/master/daily-programmer/talking_clock.rs): `daily-programmer/talking_clock.rs`

### Other components

- **Challenge user**
- **Challenge answer**

## Connections

- Challenge user → C++ katas: chooses challenge
- Challenge user → Go katas: chooses challenge
- Challenge user → Java katas: chooses challenge
- Challenge user → JavaScript katas: chooses challenge
- Challenge user → Python katas: chooses challenge
- Challenge user → Rust katas: chooses challenge
- Challenge user → Other katas: chooses challenge
- Challenge user → HackerRank tasks: chooses challenge
- Challenge user → Kattis tasks: chooses challenge
- Challenge user → LeetCode tasks: chooses challenge
- Challenge user → CheckiO tasks: chooses challenge
- Challenge user → Advent 2015: chooses puzzle
- Challenge user → Advent 2020: chooses puzzle
- Challenge user → Advent 2023: chooses puzzle
- Challenge user → Project Euler: chooses problem
- Challenge user → Daily Programmer: chooses challenge
- C++ katas → Challenge answer: computes answer
- Go katas → Challenge answer: computes answer
- Java katas → Challenge answer: computes answer
- JavaScript katas → Challenge answer: computes answer
- Python katas → Challenge answer: computes answer
- Rust katas → Challenge answer: computes answer
- Other katas → Challenge answer: computes answer
- HackerRank tasks → Challenge answer: computes answer
- Kattis tasks → Challenge answer: computes answer
- LeetCode tasks → Challenge answer: computes answer
- CheckiO tasks → Challenge answer: computes answer
- Advent 2015 → Challenge answer: computes answer
- Advent 2020 → Challenge answer: computes answer
- Advent 2023 → Challenge answer: computes answer
- Project Euler → Challenge answer: computes answer
- Daily Programmer → Challenge answer: prints answer
