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), danncd ~/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:
- 5 HTML-Seiten:
index.html,kontakt.html,ueber_uns.html,eis_projekt.html,impressum.html - CSS-Datei:
css/style.css(auf allen Seiten eingebunden) - JavaScript-Datei:
js/script.js - Einheitliche Navigation auf jeder Seite
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)
~/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:
style.cssgehört in den Ordnercss/, nicht ins Hauptverzeichnisscript.jsgehört in den Ordnerjs/- Keine HTML-Dateien im
css/-Ordner! .save-Dateien und Duplikate löschen (entstehen durch nano)
Verschiebt falsch platzierte Dateien mit mv:
# 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:
<!-- Im <head> jeder Seite -->
<link rel="stylesheet" href="css/style.css">
<!-- Vor dem schliessenden </body> -->
<script src="js/script.js"></script>
Tipp: Prüft mitls -lain jedem Ordner, ob dort nur die richtigen Dateien liegen. Mitfind ~/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:
# 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:
<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:
.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:
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.
# 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:
<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:
# 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/
<!-- 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:
<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:
| Kriterium | Erledigt? |
|---|---|
| 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.