Workshop: Wir bauen einen WebServer mit JavaScript und node.js
Das Internet steckt heute in jeder Hosentasche und Webseiten und Apps regieren den Alltag. Aber wie funktionieren eigentlich dieses Internet und verbreitete Dienste wie WhatsApp? Und warum sind Programmierer heute so gefragt? Kann ich sowas auch selbst machen? Natürlich!
Wir programmieren gemeinsam einen einfachen Webserver als Chatsystem und lernen dabei etwas über Netzwerke, Programmieren mit JavaScript und Node.js, Browser und Webserver. Ganz nebenbei tauchen wir auch ein bisschen in die (Un)Tiefen der Privatsphäre im Internet ein und beantworten Fragen wie "Warum sehe ich ständig Werbung von Zalando, wenn ich mal nach Schuhen gegoogelt habe".
Als das machen wir mit einfachen und kostengünstigen Mitteln, die jeder Zuhause hat oder einfach beschaffen kann. Der Workshop ist komplett kostenfrei und Du brauchst außer etwas Zeit und Interesse nichts mitzubringen.
Hier ein Vorschlag für den Ablauf, jeweils abwechselnd eine kurze Einführung zu einem neuen Thema, dann wieder was zum selbst ausprobieren/programmieren. Das ist nicht direkt so zur Veröffentlichung gedacht, sondern erstmal eine Gedankenstütze der Struktur für mich. Falls Du Teile davon gerne in die Ausschreibung übernehmen willst, kann ich Dir dafür gerne auch noch ein paar Punkte in den Text oben packen, wenn Du das für sinnvoll hältst?
An geeigneten Stellen müssen wir dann noch Pausen einbauen und einen groben Zeitplan aufstellen.
-
Ankommen, kurze Vorstellungsrunde, Ablauf des Workshops (inkl. Pasuen) erläutern
-
Frage nach Erwartungen an den Workshop und Vorerfahrungen bzgl Programmieren und Netzwerken
-
Erläuterung des Workshop-Themas und -Ziels, Fragen dazu
-
Verweis auf Workshop-Materialien (Handout/Script, Code-Vorlagen, und Lösungen)
-
kurze Einführung: Linux, Raspi, Kommandozeile (Terminal)
-
selber machen: Ausprobieren Raspi, Linux, ggf. eigenes Handy ins Workshop-WLAN einbinden
-
kurze Einführung: Browser, HTML
-
selber machen: Los geht's: Hello, world! (lokale HTML-Datei)
-
kurze Einführung: HTML+CSS
-
selber machen: Make it pretty: Styling (lokale HTML-Datei)
-
kurze Einführung: Browser/WebServer, JavaScript
-
selber machen: Erster Webserver: Hello, world! (via node.js, lokal ausgeführt)
-
kurze Einführung: Netzwerk (TCP/IP)
-
selber machen: Webserver der anderen aufrufen (via node.js, übers Netz)
-
gemeinsam erarbeiten: was ist ein Chat-System (Whiteboard/Tafel)
-
kurze Einführung: HTTP, Formulare
-
selber machen: Nachrichten an den Server schicken, Antwort bekommen
-
kurze Einführung: Daten speichern
-
selber machen: Nachrichten im Server speichern, alle Nachrichten seit letzter Anfrage abrufen
-
kurze Einführung: Sicherheit und Benutzerverwaltung
-
selber machen: Anmelden, nur Nachrichten für den aktuellen Benutzer abrufen
-
kurze Einführung: Verschlüsselung (https), Zertifikate
-
selber machen: HTTPS aktivieren (?)
-
selber machen: gegenseitig den Chat aufrufen
-
kurze Einführung: Einbinden von Mobilgeräten (Handys): progressive Websites
-
selber machen: Optimierung der Webseiten für Mobilgeräte, eigenen Chat und den anderer mit Mobilgeräten aufrufen
-
kurze Einführung: APIs und Einbinden von anderen Diensten
-
selber machen: OpenStreetMap einbinden
-
kurze Einführung: Cookies und die Folgen (Werbung, Tracking)
-
selber machen: Links zwischen Diensten aufbauen, Benutzer-Tracking ausprobieren
-
kurze Einführung: was macht eine App anders/mehr als eine Webseite?
-
Abschluss: Erfahrungen aus dem Workshop, Fragen, Wunsch nach Fortsetzung? Interessante Themen?
Vorraussetzungen, technischer Aufbau:
-
ein Raspi mit Tastatur, Maus und Monitor für je zwei Teilnehmer, SD-Karte mit aktuellem Raspbian, ggf. weitere Software und sonstige Materialien wie Workshop-Script
-
ausgedrucktes Workshop-Script je Teilnehmer
-
alle Raspis vernetzt (LAN oder eigenes Workshop-WLAN mit Internet-Zugang, um notwendige Dinge herunterzuladen)
-
ggf. Zugang für Handys der Teilnehmer zum Workshop-WLAN, um auch mit eigenen Geräten auf das Ergebnis zugreifen zu können