# nik1031/fullstackopen-submissions architecture

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

- Interactive diagram: https://gitdiagram.com/nik1031/fullstackopen-submissions
- Repository: https://github.com/nik1031/fullstackopen-submissions

## Overview

This repository is a Fullstack web-development learning workspace, not a single larger product. The sampled `part-1` app demonstrates a counter controlled by React state; the separate scratch runner explores click counts, click history, and totals. The diagrams and personal notes indicate learning material, not additional runtime subsystems. The graph shows the sampled app wiring; other learning topics are not mapped as runtime features.

Main entry points: [`part-1/src/App.jsx`](https://github.com/nik1031/fullstackopen-submissions/blob/main/part-1/src/App.jsx) (Counter app), [`personal-notes/scratch-runner/src/playground.jsx`](https://github.com/nik1031/fullstackopen-submissions/blob/main/personal-notes/scratch-runner/src/playground.jsx) (Click playground), [`part-1/src/main.jsx`](https://github.com/nik1031/fullstackopen-submissions/blob/main/part-1/src/main.jsx) (App entry), [`personal-notes/scratch-runner/src/main.jsx`](https://github.com/nik1031/fullstackopen-submissions/blob/main/personal-notes/scratch-runner/src/main.jsx) (Playground entry)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_part1["Counter app"]
  node_part1_entry["App entry<br/>[main.jsx]"]
  node_part1_app["Counter app<br/>[App.jsx]"]
  node_part1_display["Counter display<br/>[App.jsx]"]
  node_part1_button["Counter buttons<br/>[App.jsx]"]
end

subgraph group_scratch["Scratch runner"]
  node_scratch_entry["Playground entry<br/>[main.jsx]"]
  node_scratch_app["Click playground<br/>[playground.jsx]"]
end

node_learner(("User"))

node_part1_entry -->|"renders"| node_part1_app
node_part1_app -->|"passes count"| node_part1_display
node_part1_app -->|"passes handlers"| node_part1_button
node_learner -->|"clicks"| node_part1_button
node_part1_button -->|"calls handler"| node_part1_app
node_scratch_entry -->|"renders"| node_scratch_app
node_learner -->|"clicks controls"| node_scratch_app

click node_part1_entry "https://github.com/nik1031/fullstackopen-submissions/blob/main/part-1/src/main.jsx"
click node_part1_app "https://github.com/nik1031/fullstackopen-submissions/blob/main/part-1/src/App.jsx"
click node_part1_display "https://github.com/nik1031/fullstackopen-submissions/blob/main/part-1/src/App.jsx"
click node_part1_button "https://github.com/nik1031/fullstackopen-submissions/blob/main/part-1/src/App.jsx"
click node_scratch_entry "https://github.com/nik1031/fullstackopen-submissions/blob/main/personal-notes/scratch-runner/src/main.jsx"
click node_scratch_app "https://github.com/nik1031/fullstackopen-submissions/blob/main/personal-notes/scratch-runner/src/playground.jsx"

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_part1_entry,node_part1_app,node_part1_display,node_part1_button,node_learner toneBlue
class node_scratch_entry,node_scratch_app toneAmber
```

## Components

### Counter app

- [App entry](https://github.com/nik1031/fullstackopen-submissions/blob/main/part-1/src/main.jsx): `part-1/src/main.jsx`
- [Counter app](https://github.com/nik1031/fullstackopen-submissions/blob/main/part-1/src/App.jsx): `part-1/src/App.jsx`
- [Counter display](https://github.com/nik1031/fullstackopen-submissions/blob/main/part-1/src/App.jsx): `part-1/src/App.jsx`
- [Counter buttons](https://github.com/nik1031/fullstackopen-submissions/blob/main/part-1/src/App.jsx): `part-1/src/App.jsx`

### Scratch runner

- [Playground entry](https://github.com/nik1031/fullstackopen-submissions/blob/main/personal-notes/scratch-runner/src/main.jsx): `personal-notes/scratch-runner/src/main.jsx`
- [Click playground](https://github.com/nik1031/fullstackopen-submissions/blob/main/personal-notes/scratch-runner/src/playground.jsx): `personal-notes/scratch-runner/src/playground.jsx`

### Other components

- **User**

## Connections

- App entry → Counter app: renders
- Counter app → Counter display: passes count
- Counter app → Counter buttons: passes handlers
- User → Counter buttons: clicks
- Counter buttons → Counter app: calls handler
- Playground entry → Click playground: renders
- User → Click playground: clicks controls
