# leacara/cv_web architecture

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

## Overview

This repository is a collection of web-development lessons and small exercises, not one integrated application. A typical user workflow is interacting with a browser exercise—such as rolling dice, playing a sequence game, or adding a to-do item—and seeing the page update. Separate Node.js examples handle HTTP requests, including a calculator form. The tree also includes Bootstrap distributions and many static lesson pages. Relationships below are limited to those shown in sampled source; unsampled pages are not assumed to be wired to particular scripts.

Main entry points: [`NodeJS/Calc_server/index.html`](https://github.com/leacara/cv_web/blob/main/NodeJS/Calc_server/index.html) (Calculator form), [`NodeJS/Calc_server/calculator.js`](https://github.com/leacara/cv_web/blob/main/NodeJS/Calc_server/calculator.js) (Calculator server), [`Dicee-Page/index.js`](https://github.com/leacara/cv_web/blob/main/Dicee-Page/index.js) (Dice roll), [`SimonSay/game.js`](https://github.com/leacara/cv_web/blob/main/SimonSay/game.js) (Simon game)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_browser_games["Browser games"]
  node_dicee_page["Dice roll<br/>[index.js]"]
  node_dicee_solved["Dice winner<br/>[index.js]"]
  node_simon_game["Simon game<br/>[game.js]"]
  node_simon_completed["Simon completed<br/>[game.js]"]
  node_drum_kit["Drum kit<br/>[index.js]"]
end

subgraph group_browser_demos["Browser demos"]
  node_jquery_demo["jQuery demo<br/>[index.js]"]
  node_todo_list["To-do list<br/>[index.js]"]
end

subgraph group_node_examples["Node examples"]
  node_express_server["Express routes<br/>[server.js]"]
  node_express_server2["Express hello<br/>[server.js]"]
  node_calculator["Calculator server<br/>[calculator.js]"]
  node_calculator_page["Calculator form<br/>[index.html]"]
end

subgraph group_bootstrap["Bootstrap distribution"]
  node_bootstrap_bundle["Bootstrap bundle"]
  node_bootstrap_esm["Bootstrap ESM<br/>[bootstrap.esm.js]"]
  node_bootstrap_js["Bootstrap JS<br/>[bootstrap.js]"]
end

node_browser_user(("Browser user"))

node_browser_user -->|"prompts for name"| node_dicee_page
node_browser_user -->|"starts and clicks"| node_simon_game
node_browser_user -->|"starts and clicks"| node_simon_completed
node_browser_user -->|"clicks or types"| node_drum_kit
node_browser_user -->|"interacts with page"| node_jquery_demo
node_browser_user -->|"adds or removes items"| node_todo_list
node_browser_user -->|"requests routes"| node_express_server
node_browser_user -->|"requests home"| node_express_server2
node_browser_user -.->|"submits numbers"| node_calculator_page
node_calculator -->|"serves form"| node_calculator_page
node_calculator_page -.->|"posts numbers"| node_calculator

click node_dicee_page "https://github.com/leacara/cv_web/blob/main/Dicee-Page/index.js"
click node_dicee_solved "https://github.com/leacara/cv_web/blob/main/Dicee-solved/Dicee%20Challenge%20-%20Completed/index.js"
click node_simon_game "https://github.com/leacara/cv_web/blob/main/SimonSay/game.js"
click node_simon_completed "https://github.com/leacara/cv_web/blob/main/SimonSay/Simon%20Game%20Challenge%20Completed/game.js"
click node_drum_kit "https://github.com/leacara/cv_web/blob/main/drum/index.js"
click node_jquery_demo "https://github.com/leacara/cv_web/blob/main/JQuery/index.js"
click node_todo_list "https://github.com/leacara/cv_web/blob/main/jQuery_todoList/index.js"
click node_express_server "https://github.com/leacara/cv_web/blob/main/NodeJS/my-express-server/server.js"
click node_express_server2 "https://github.com/leacara/cv_web/blob/main/NodeJS/my-express-server2/server.js"
click node_calculator "https://github.com/leacara/cv_web/blob/main/NodeJS/Calc_server/calculator.js"
click node_calculator_page "https://github.com/leacara/cv_web/blob/main/NodeJS/Calc_server/index.html"
click node_bootstrap_bundle "https://github.com/leacara/cv_web/blob/main/Bootstrap-installation/js/bootstrap.bundle.js"
click node_bootstrap_esm "https://github.com/leacara/cv_web/blob/main/Bootstrap-installation/js/bootstrap.esm.js"
click node_bootstrap_js "https://github.com/leacara/cv_web/blob/main/Bootstrap-installation/js/bootstrap.js"

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_dicee_page,node_dicee_solved,node_simon_game,node_simon_completed,node_drum_kit,node_browser_user toneBlue
class node_jquery_demo,node_todo_list toneAmber
class node_express_server,node_express_server2,node_calculator,node_calculator_page toneMint
class node_bootstrap_bundle,node_bootstrap_esm,node_bootstrap_js toneRose
```

## Components

### Browser games

- [Dice roll](https://github.com/leacara/cv_web/blob/main/Dicee-Page/index.js): `Dicee-Page/index.js`
- [Dice winner](https://github.com/leacara/cv_web/blob/main/Dicee-solved/Dicee%20Challenge%20-%20Completed/index.js): `Dicee-solved/Dicee Challenge - Completed/index.js`
- [Simon game](https://github.com/leacara/cv_web/blob/main/SimonSay/game.js): `SimonSay/game.js`
- [Simon completed](https://github.com/leacara/cv_web/blob/main/SimonSay/Simon%20Game%20Challenge%20Completed/game.js): `SimonSay/Simon Game Challenge Completed/game.js`
- [Drum kit](https://github.com/leacara/cv_web/blob/main/drum/index.js): `drum/index.js`

### Browser demos

- [jQuery demo](https://github.com/leacara/cv_web/blob/main/JQuery/index.js): `JQuery/index.js`
- [To-do list](https://github.com/leacara/cv_web/blob/main/jQuery_todoList/index.js): `jQuery_todoList/index.js`

### Node examples

- [Express routes](https://github.com/leacara/cv_web/blob/main/NodeJS/my-express-server/server.js): `NodeJS/my-express-server/server.js`
- [Express hello](https://github.com/leacara/cv_web/blob/main/NodeJS/my-express-server2/server.js): `NodeJS/my-express-server2/server.js`
- [Calculator server](https://github.com/leacara/cv_web/blob/main/NodeJS/Calc_server/calculator.js): `NodeJS/Calc_server/calculator.js`
- [Calculator form](https://github.com/leacara/cv_web/blob/main/NodeJS/Calc_server/index.html): `NodeJS/Calc_server/index.html`

### Bootstrap distribution

- [Bootstrap bundle](https://github.com/leacara/cv_web/blob/main/Bootstrap-installation/js/bootstrap.bundle.js): `Bootstrap-installation/js/bootstrap.bundle.js`
- [Bootstrap ESM](https://github.com/leacara/cv_web/blob/main/Bootstrap-installation/js/bootstrap.esm.js): `Bootstrap-installation/js/bootstrap.esm.js`
- [Bootstrap JS](https://github.com/leacara/cv_web/blob/main/Bootstrap-installation/js/bootstrap.js): `Bootstrap-installation/js/bootstrap.js`

### Other components

- **Browser user**

## Connections

- Browser user → Dice roll: prompts for name (evidence: `Dicee-Page/index.js`)
- Browser user → Simon game: starts and clicks (evidence: `SimonSay/game.js`)
- Browser user → Simon completed: starts and clicks (evidence: `SimonSay/Simon Game Challenge Completed/game.js`)
- Browser user → Drum kit: clicks or types (evidence: `drum/index.js`)
- Browser user → jQuery demo: interacts with page (evidence: `JQuery/index.js`)
- Browser user → To-do list: adds or removes items (evidence: `jQuery_todoList/index.js`)
- Browser user → Express routes: requests routes (evidence: `NodeJS/my-express-server/server.js`)
- Browser user → Express hello: requests home (evidence: `NodeJS/my-express-server2/server.js`)
- Browser user → Calculator form: submits numbers
- Calculator server → Calculator form: serves form (evidence: `NodeJS/Calc_server/calculator.js`)
- Calculator form → Calculator server: posts numbers
