Website strukturieren und erweitern

Auf Basis der einfachen Landing Page aus U2 bauen Sie jetzt eine vollständige, mehrseitige Website mit Navigation, Design und interaktiven Elementen. Alle Änderungen sind sofort unter https://isa##.edumake.de sichtbar.

Verbindung
SSH-Verbindung wie in U2 herstellen (ssh -p 2222 isa##@edumake.de), dann cd ~/public_html. Nicht vergessen: Eduroam sperrt Port 2222 — WLAN mbm oder Hotspot nutzen.

Zwischenstand: Was habt ihr bereits?

Alle Tandems haben in der ersten Sitzung die Grundstruktur angelegt. Folgendes sollte bei euch vorhanden sein:

Was bei vielen noch fehlt

Bevor wir mit Git starten, muss euer Projekt auf den Stand der Best-Practice-Struktur gebracht werden. Prüft die folgenden Punkte und arbeitet ab, was bei euch noch fehlt.

Zielstruktur (zur Erinnerung)

Verzeichnisbaum
~/public_html/
├── index.html
├── kontakt.html
├── ueber_uns.html
├── eis_projekt.html
├── impressum.html
├── css/
│   └── style.css
├── js/
│   └── script.js
├── img/
│   ├── gruppenbild.jpg
│   └── logo.svg
└── assets/
    └── projektinfo.pdf

Aufgabe 1: Dateistruktur aufräumen

Bei einigen Tandems liegen Dateien am falschen Ort. Prüft und korrigiert das:

Verschiebt falsch platzierte Dateien mit mv:

Shell
# Beispiel: style.css ins richtige Verzeichnis verschieben
mv style.css css/style.css

# script.js ins richtige Verzeichnis verschieben
mv script.js js/script.js

# .save-Dateien und Backups loeschen
rm -f *.save *~
rm -f css/*.save js/*.save

Prüft danach, ob die Verlinkung in euren HTML-Dateien noch stimmt:

HTML
<!-- Im <head> jeder Seite -->
<link rel="stylesheet" href="css/style.css">

<!-- Vor dem schliessenden </body> -->
<script src="js/script.js"></script>
Tipp: Prüft mit ls -la in jedem Ordner, ob dort nur die richtigen Dateien liegen. Mit find ~/public_html -name "*.save" findet ihr alle überflüssigen Backup-Dateien.

Aufgabe 2: Bilder & Fotogalerie

Die meisten Websites haben noch keine Bilder. Erstellt den Ordner img/ (falls nicht vorhanden) und füllt ihn:

Shell
# Ordner anlegen (falls noch nicht vorhanden)
mkdir -p img

# Bilder vom Laptop auf den Server kopieren (auf dem Laptop ausfuehren!)
scp -P 2222 bild1.jpg isa##@edumake.de:~/public_html/img/
scp -P 2222 bild2.jpg isa##@edumake.de:~/public_html/img/

Bindet die Bilder in einer eurer Seiten ein – z. B. als Galerie auf eis_projekt.html:

HTML
<h2>Fotogalerie</h2>
<div class="galerie">
  <img src="img/bild1.jpg" alt="Beschreibung Bild 1">
  <img src="img/bild2.jpg" alt="Beschreibung Bild 2">
  <img src="img/bild3.jpg" alt="Beschreibung Bild 3">
</div>

Passende CSS-Regeln für die Galerie in css/style.css:

CSS
.galerie {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 1rem;
  margin: 1rem 0;
}

.galerie img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  border-radius: 8px;
  cursor: pointer;
  transition: transform 0.2s;
}

.galerie img:hover {
  transform: scale(1.03);
}

Optional: Lightbox-Effekt – Klick auf ein Bild öffnet es vergrößert. Fügt das in js/script.js ein:

JavaScript
document.querySelectorAll('.galerie img').forEach(img => {
  img.addEventListener('click', () => {
    const overlay = document.createElement('div');
    overlay.style.cssText =
      'position:fixed;inset:0;background:rgba(0,0,0,.8);display:flex;' +
      'align-items:center;justify-content:center;cursor:pointer;z-index:999';
    const big = document.createElement('img');
    big.src = img.src;
    big.style.maxWidth = '90vw';
    big.style.maxHeight = '90vh';
    overlay.appendChild(big);
    overlay.addEventListener('click', () => overlay.remove());
    document.body.appendChild(overlay);
  });
});

Aufgabe 3: PDF-Download einrichten

Legt eine PDF-Datei im Ordner assets/ ab und verlinkt sie. Das kann z. B. eine Projektbeschreibung, ein Steckbrief oder ein beliebiges Dokument sein.

Shell
# Ordner anlegen (falls noch nicht vorhanden)
mkdir -p assets

# PDF vom Laptop auf den Server kopieren
scp -P 2222 projektinfo.pdf isa##@edumake.de:~/public_html/assets/

Download-Link in einer eurer Seiten einfügen:

HTML
<a href="assets/projektinfo.pdf" download>Projektinfo herunterladen (PDF)</a>

Das Attribut download sorgt dafür, dass der Browser die Datei herunterlädt statt sie im Tab zu öffnen.

Aufgabe 4: Logo & Favicon

Erstellt ein einfaches Logo (z. B. mit Canva) und ein Favicon für den Browser-Tab:

Shell
# Logo und Favicon hochladen
scp -P 2222 logo.svg isa##@edumake.de:~/public_html/img/
scp -P 2222 favicon.png isa##@edumake.de:~/public_html/img/
HTML
<!-- Im <head> jeder Seite -->
<link rel="icon" href="img/favicon.png" type="image/png">

<!-- Logo im Header -->
<img src="img/logo.svg" alt="Logo" style="height: 40px;">

Aufgabe 5: Impressum prüfen

Jede öffentlich erreichbare Website braucht ein Impressum. Prüft, ob eures vollständig ist:

HTML
<main>
  <h1>Impressum</h1>
  <p>Verantwortlich: [Euer Name]</p>
  <p>E-Mail: [Eure Hochschul-E-Mail]</p>
  <p>Diese Website ist ein Lernprojekt im Rahmen der Lehrveranstaltung
     „Entwicklung interaktiver Softwareanwendungen“ an der PH Weingarten.</p>
</main>

Checkliste vor Git

Bevor wir in der nächsten Aufgabe mit Git starten, sollte euer Projekt diese Punkte erfüllen:

KriteriumErledigt?
5 HTML-Seiten vorhanden (index, kontakt, ueber_uns, eis_projekt, impressum)
css/style.css existiert und ist auf allen Seiten eingebunden
js/script.js existiert und ist eingebunden
Navigation auf jeder Seite vorhanden und funktioniert
Ordner img/ mit mindestens einem Bild
Ordner assets/ mit einer PDF-Datei (Download-Link vorhanden)
Keine Dateien am falschen Ort (.save, HTML in css/ etc.)
Impressum vollständig
Wichtig: Bringt euer Projekt auf diesen Stand, bevor wir mit Git starten. Danach versionieren wir das gesamte Projekt – eine saubere Ausgangslage spart später Probleme.