U13 — Workflow-Training I: Begrüßung nach Tageszeit

Ziel dieser Übung

Sie bauen ein kleines JavaScript-Feature — eine Begrüßung, die sich nach der Tageszeit richtet — und bringen es in drei kompletten Roundtrips von VS Code über Forgejo bis auf den Server. Das Feature nutzt, was Sie aus u6/u7 kennen (Variablen, Bedingungen, DOM). Der eigentliche Trainingseffekt liegt im Ablauf: ändern → committen → syncen → prüfen → pullen — bis er sitzt.

Voraussetzung: u12 (VS Code & Git einrichten) ist abgeschlossen.

Schritte im Überblick

Jeder Roundtrip durchläuft dieselben Stationen:

1In VS Code bauen & committen & syncen
2Forgejo-GUI: Commit & Struktur prüfen
3Server: pullen & im Browser testen
Roundtrip 1 — Begrüßung anzeigen (ca. 20 Min.)

lokal 1.1 Feature in VS Code bauen

  1. Öffnen Sie Ihr Projekt in VS Code
  2. Fügen Sie in index.html an passender Stelle (z. B. oben im <body>) ein leeres Element ein:
    <p id="begruessung"></p>
  3. Öffnen Sie Ihre script.js (bzw. js/script.js) und ergänzen Sie:
    // Begruessung nach Tageszeit const stunde = new Date().getHours(); let text; if (stunde < 10) { text = "Guten Morgen!"; } else if (stunde < 18) { text = "Hallo, schön dass du da bist!"; } else { text = "Guten Abend!"; } document.getElementById("begruessung").textContent = text;
  4. Speichern und lokal testen: öffnen Sie die index.html per Doppelklick im Browser — erscheint die Begrüßung?

lokal 1.2 Committen & syncen

  1. Source Control öffnen — index.html und script.js erscheinen unter Changes
  2. Beide Dateien stagen (+)
  3. Commit-Nachricht: Begruessung nach Tageszeit → Haken ✓
  4. Sync Changes

git 1.3 Im Forgejo-GUI prüfen

  1. git.md-phw.de → Ihr Repository
  2. Ist der Commit „Begruessung nach Tageszeit“ da?
  3. Klicken Sie auf den Commit — Forgejo zeigt Ihnen genau die geänderten Zeilen (grün = neu, rot = entfernt)

server 1.4 Pullen & testen

ssh -p 2222 isa##@edumake.de cd ~/public_html git pull
  1. Lesen Sie die Ausgabe: welche zwei Dateien wurden aktualisiert?
  2. Browser: https://isa##.edumake.deHard Reload (Strg/Cmd + Shift + R)
  3. Begrüßung sichtbar? ✓ Roundtrip 1 geschafft
Roundtrip 2 — Farbe nach Tageszeit (ca. 20 Min.)

lokal 2.1 CSS-Klassen anlegen

Ergänzen Sie in Ihrer CSS-Datei (z. B. css/style.css) drei Klassen:

.morgen { color: #d97706; } /* warmes Orange */ .tag { color: #16a34a; } /* frisches Grün */ .abend { color: #4338ca; } /* tiefes Blau */

lokal 2.2 JavaScript erweitern

Erweitern Sie Ihren Code so, dass zur Begrüßung die passende Klasse gesetzt wird:

const el = document.getElementById("begruessung"); el.textContent = text; if (stunde < 10) { el.classList.add("morgen"); } else if (stunde < 18) { el.classList.add("tag"); } else { el.classList.add("abend"); }

Denkanstoß: Sie prüfen die Stunde jetzt zweimal — geht das auch in einem if/else-Block? (Freiwillige Verbesserung)

lokal 2.3 Lokal testen → stagen → committen (Farbe nach Tageszeit) → Sync

git 2.4 GUI-Check

Commit da? Diesmal sind drei Dateien betroffen (HTML aus Roundtrip 1 nicht mehr — warum eigentlich? Überlegen Sie kurz: Git überträgt nur, was sich seit dem letzten Commit geändert hat).

server 2.5 Pullen & testen

cd ~/public_html git pull git log --oneline -3

Browser mit Hard Reload — Begrüßung jetzt farbig? ✓ Roundtrip 2 geschafft

Roundtrip 3 — README aktualisieren (ca. 10 Min.)

lokal 3.1 Dokumentieren

Ihr Projekt hat ein neues Feature — die README muss das wissen. Ergänzen Sie in README.md:

## Features - Begruessung nach Tageszeit (script.js): zeigt je nach Uhrzeit einen anderen Text in einer anderen Farbe (index.html, css/style.css)

Stagen → Commit (README: Begruessungs-Feature dokumentiert) → Sync

git 3.2 Struktur-Abgleich im GUI

  1. Forgejo zeigt die README direkt auf der Repo-Startseite an — liest sie sich korrekt?
  2. Abgleich: Stimmt die in der README beschriebene Verzeichnis- und Dateistruktur mit dem überein, was im Repo liegt?
  3. Falls nicht: korrigieren (lokal in VS Code!) und erneut committen + syncen

server 3.3 Letzter Pull

cd ~/public_html git pull cat README.md

README aktuell auf dem Server? ✓ Roundtrip 3 geschafft — Training abgeschlossen!

Check: Sie haben jetzt dreimal denselben Ablauf durchlaufen. Können Sie ihn auswendig? Ändern → Stage → Commit → Sync → GUI-Check → Server-Pull → Hard Reload. Wenn ja: weiter zu u14 — Workflow-Training II (eigenständig).