====== Webserver & Website ====== Slides: {{ :ef_informatik:efif_websites.pdf |Slides EFIF Websites}} ===== Übersicht ===== ==== Auftrag in Kürze ==== Erstelle mit HTML, CSS und JavaScript eine eigene Website. Setze einen Raspberry Pi als Server auf und hoste auf diesem deine Website. Nur TALITS: Die Website muss ein Backend (z.B. Flask) beinhalten. Für Nicht-TALITs ist dies rein optional (und nur Empfohlen für Personen mit viel Vorwissen in diesem Bereich). Diese wird abgegeben und mittels mündlicher Prüfung benotet. Sämtlicher Code, den die Website beinhaltet, muss man zu 100% verstanden haben (wird an mündl. Prüfung überprüft). ==== Hauptlernziele ==== * Verstehen, was ein **(Web)Server** ist ... * ... und wie man mit einem solchen eine **Website** betreiben kann. * Mit **Linux** auf einem **Raspberry Pi** arbeiten. * Mit der **Kommandozeile** arbeiten. * Die Programmiersprache **JavaScript** lernen. * Eine **Website** mit HTML, CSS und JavaScript erstellen. * TALITs: Backend programmieren * **Mündliche Prüfung** absolvieren. ==== Benotung/Bewertung ==== Gesamtprojekt: 1 Note davon je 50%: * Abgegebene Website * mündliche Prüfung === Kriterien Website === * Funktionalität * Schwierigkeitsgrad (abhängig von Anz. Lektionen, die zur Verfügung stehen, z.B. falls 4M weniger Zeit als 3M) * Code * Design & Layout * (Inhalt/Sprache) Bonuspunkte: * Mobile Layout === mündliche Prüfung === Zeit: Ca. 15' pro Person Themen: * Grundlagen Webseite (HTML, CSS, JavaScript, Backend (TALITs)) * Fragen zu deiner Seite * Grundlagen Netzwerke (Big Picture, keine Details) ==== Abgabebedingungen ==== * **Deadline:** (folgt noch) * **Schritte Abgabe:** * 1. (Falls noch nicht gemacht.) Erstelle **GitHub-Repo** für Projekt und lade alle relevanten Dateien dort hoch. * 2. **Kontrolliere** auf GitHub, dass auch alles korrekt hochgeladen wird. Typischer Fehler: Vergessen, File(s) zu adden. * 3. **Teile Repo** mit *beiden* Lehrpersonen: *anschae* und *mspeissegger* * 4. Sende **Teams-Nachricht** in 3er-Chat (du und beide Lehrpersonen) * **Verspätete Abgabe:** -0.25 Note pro angebrochene 24h Verspätung, fehlende Files zählen auch als verspätete Abgabe ==== Nützliche Links ==== * Netzwerke & Internet: * GF IF: [[gf_informatik:web_sca:netzwerke_internet]] (siehe Slides) * [[https://oinf.ch/kurs/vernetzung-und-systeme/kommunikation-in-netzwerken/|Netzwerke einfach erklärt]] * [[https://oinf.ch/interactive/tcp-ip-visualisierung/|Visualisierung TCP/IP]] * HTML & CSS: * GF IF: [[gf_informatik:web_sca:websites]] * JavaScript: * [[informatik:javascript_cheat_sheet|]] * [[informatik:website_with_js|]] ===== Lektionen & Termine ===== ==== Plan FS 2025 ==== * **Lektion 1: 4.3.25** * **Ziele:** * Raspi selbst aufsetzen * Linux kennenlernen * Raspi mit Terminalbefehlen steuern * Raspberry Pi aufsetzen (Betriebssystem *mit* GUI) * Programme installieren (z.B. LibreOffice) * Input Terminalbefehle * Auftrag zu Terminalbefehlen * **Lektion 2: 11.3.25** * Raspi wieder platt machen und neu aufsetzen mit Betriebssystem *ohne* GUI * Input DHCP * Feste IP pro Raspi festlegen * SSH Verbindung auf Raspberry Pi einrichten * Raspberry Pi per Kommandozeile steuern * **Lektion 3: 18.3.25** * Erinnerung: [[https://sca.ksr.ch/doku.php?id=gf_informatik:web_sca:websites|HTML & CSS]] * [[https://sca.ksr.ch/doku.php?id=gf_informatik:web_sca:websites#flexbox |Flexbox]] * [[https://sca.ksr.ch/doku.php?id=gf_informatik:web_sca:websites#grid_layout|Grid]] * **Lektion 4: 25.3.25** * Slides JavaScript * Auftrag I: Schnaps-Bier-Sirup * Auftrag II: [[https://sca.ksr.ch/doku.php?id=gf_informatik:web_sca:websites#auftragdies_und_das|Auftrag Dies und das (inkl. Tipps)]] * Ideen für Projekt finden & mit LP besprechen * **Lektion 5: 1.4.25** * Projektstart Termine: * Abgabe 4M: * Fr 9.5.25 4M TALITs * Fr 16.5.25 4M RegEFs * Mündl. Prüfungen 4M: * Di 13.5.25 4M TALITs * Di 20.5.25 4M RefEFs * Notenabgabe 4M Mo 26.5.25 * Notenabgabe 3M Fr 20.6.25 ++++Plan FS 2025 grob| * Raspi & Linux kennenlernen, zuerst mit, dann ohne GUI * Wichtigste Protokolle: DHCP, TCP/IP, ... * Website: * HTML & CSS Repetition * JavaScript lernen, einige Übungen dazu * Virtualisierung: Docker und co. * Datenbank Basics, wichtigste Befehle, ev. eigenen DB-Server mit Raspi, z.B. mit Dbeaver verwalten oder direkt mit Docker installieren * Website-Projekt: * RegEF: einfach mit JS * TALIT: mit Flask und Datenbank ++++ ++++Plan 2023| * Lektion 1: 18.4.2023 * Raspberry Pi aufsetzen (Betriebssystem "Raspberry Pi OS Lite", also Server-Version ohne grafisches UI) * Linux kennenlernen * Input DHCP * Feste IP pro Raspi festlegen * SSH Verbindung auf Raspberry Pi einrichten * Raspberry Pi per Kommandozeile steuern * HA: Thema für eigene Website überlegen, bis SO-Abend per Teamsnachricht an sps & sca (gemeinsamer Chat à 3) * Lektion 2: 25.4.2023 * Apache aufsetzen: [[https://tutorials-raspberrypi.de/webserver-installation-apache2/]] * Routing Game * Input HTML und CSS * Seite bauen * Lektion 3: 2.5.2023 * Input TCP/IP * JavaScript lernen * Seite bauen * Lektion 4: 9.5.2023 * Name der Site festlegen * Input DNS * Seite bauen * Lektion 5: 16.5.2023 * Seite bauen * Lektion 6: 23.5.2023 * Seite bauen * Input Client vs. Server * Lektion 7: 30.5.2023 * Seite bauen * **Abgabe 4M bis Freitag, 2.6.2023** * Lektion 8: 6.6.2023 (letztes Mal mit 4M) * **Mündliche Prüfungen 4M** (Notenabgabe 7.6.2023) * **Abgabe 3M bis Freitag, 9.6.2023** * Lektion 9: 13.6.2023 (nur 3M) * **Mündliche Prüfungen 3M** * Lektion 10: 20.6.2023 (nur 3M) * Hacking * Lektion 11: 27.6.2023 (nur 3M) * **SPORTTAG oder FERNUNTERRICHT** ++++