# erpicoding/hausaufgaben-manager architecture

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

## Overview

Hausaufgaben-Manager is a browser-based weekly homework planner: students enter subjects and assignments, adjust per-day lesson counts and colors, and view the resulting timetable. The README describes local storage and no account requirement; the sampled script confirms browser localStorage use, day rendering, saving, and settings. Source excerpts are partial, so the graph omits uncertain UI wiring and capabilities whose implementation was not sampled.

Main entry points: [`script.js`](https://github.com/erpicoding/hausaufgaben-manager/blob/main/script.js) (Planner logic), [`index.html`](https://github.com/erpicoding/hausaufgaben-manager/blob/main/index.html) (Planner page), [`ha.css`](https://github.com/erpicoding/hausaufgaben-manager/blob/main/ha.css) (Planner styling), [`global.css`](https://github.com/erpicoding/hausaufgaben-manager/blob/main/global.css) (Global styling)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_planner["Homework planner"]
  node_page["Planner page<br/>[index.html]"]
  node_script["Planner logic<br/>[script.js]"]
  node_weekly["Weekly timetable<br/>[script.js]"]
end

subgraph group_preferences["Settings and display"]
  node_settings["Schedule and colors<br/>[script.js]"]
  node_styles["Planner styling<br/>[ha.css]"]
  node_globalstyles["Global styling<br/>[global.css]"]
end

subgraph group_runtime["Browser runtime"]
  node_storage[("Browser localStorage")]
  node_browser["Browser DOM"]
end

node_student(("Student"))

node_student -->|"uses"| node_page
node_page -->|"loads"| node_script
node_script -->|"reads and writes"| node_storage
node_script -->|"renders timetable"| node_browser
node_script -->|"builds days"| node_weekly
node_script -->|"saves settings"| node_settings
node_page -->|"styled by"| node_styles
node_page -->|"styled by"| node_globalstyles

click node_page "https://github.com/erpicoding/hausaufgaben-manager/blob/main/index.html"
click node_script "https://github.com/erpicoding/hausaufgaben-manager/blob/main/script.js"
click node_weekly "https://github.com/erpicoding/hausaufgaben-manager/blob/main/script.js"
click node_settings "https://github.com/erpicoding/hausaufgaben-manager/blob/main/script.js"
click node_styles "https://github.com/erpicoding/hausaufgaben-manager/blob/main/ha.css"
click node_globalstyles "https://github.com/erpicoding/hausaufgaben-manager/blob/main/global.css"

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_page,node_script,node_weekly toneBlue
class node_settings,node_styles,node_globalstyles toneAmber
class node_storage,node_browser toneMint
class node_student toneIndigo
```

## Components

### Homework planner

- [Planner page](https://github.com/erpicoding/hausaufgaben-manager/blob/main/index.html): `index.html`
- [Planner logic](https://github.com/erpicoding/hausaufgaben-manager/blob/main/script.js): `script.js`
- [Weekly timetable](https://github.com/erpicoding/hausaufgaben-manager/blob/main/script.js): `script.js`

### Settings and display

- [Schedule and colors](https://github.com/erpicoding/hausaufgaben-manager/blob/main/script.js): `script.js`
- [Planner styling](https://github.com/erpicoding/hausaufgaben-manager/blob/main/ha.css): `ha.css`
- [Global styling](https://github.com/erpicoding/hausaufgaben-manager/blob/main/global.css): `global.css`

### Browser runtime

- **Browser localStorage**
- **Browser DOM**

### Other components

- **Student**

## Connections

- Student → Planner page: uses
- Planner page → Planner logic: loads
- Planner logic → Browser localStorage: reads and writes
- Planner logic → Browser DOM: renders timetable
- Planner logic → Weekly timetable: builds days
- Planner logic → Schedule and colors: saves settings
- Planner page → Planner styling: styled by
- Planner page → Global styling: styled by
