Zum Inhalt springen

Lehrplan und Ablauf

Zu Zen-Modus wechseln

Der Lehrplan für den IV. Jahrgang sieht wie folgt aus (Zitat aus dem offiziellen Lehrplan):

Die Schülerinnen und Schüler können im

Bereich Webentwicklung

  • Webanwendungen gegen einfache Angriffsvektoren und Risiken absichern;
  • Serverumgebungen zur Veröffentlichung von Webauftritten unter Berücksichtigung der IT-Sicherheit einrichten und betreiben.

Bereich Appentwicklung

  • Webservices mit Datenbankschnittstelle implementieren;
  • Frontends für Webservices auf Basis aktueller Frameworks implementieren.

Bereich Webentwicklung:

  • Webhosting, IT-Sicherheit.

Bereich Appentwicklung:

  • Webservices, Datenbankschnittstellen, Frontend-Frameworks.

Die Schülerinnen und Schüler können im

Bereich Webentwicklung

  • Erweiterungen in Enterprise Content Management Systeme einbinden und konfigurieren;
  • größere Webauftritte mit Hilfe von Enterprise Content Management Systemen realisieren.

Bereich Appentwicklung

  • Anforderungen an die Benutzerergonomie und Benutzererfahrung erläutern und anwenden;
  • Anwendungen unter Berücksichtigung der IT-Sicherheit gestalten und realisieren.

Bereich Webentwicklung:

  • Enterprise Content Management Systeme, CMS Extensions, Umsetzung von Webauftritten.

Bereich Appentwicklung:

  • Webservices, Datenbankschnittstellen, Frontend-Frameworks, Benutzerergonomie, Benutzererfahrung, IT-Sicherheit.

Daraus ergibt sich der folgende (grobe) Wochenplan für das IV. Jahr:

Verplant sind in der 4. Klasse 31 Wochen. Das Jahr ist nicht als Folge unabhängiger Themen organisiert, sondern um ein eigenes Jahresprojekt: Jede Schülerin und jeder Schüler - allein oder in einem Team aus zwei oder drei Personen - wählt zu Jahresbeginn eine Anwendung, die über das ganze Jahr wächst. Jedes Kapitel wird an diesem Projekt erarbeitet und abgegeben; die Wochenangaben sind der Takt, in dem das geschieht.

Werkzeuge: ein eigener Linux-VPS bei Hetzner, Docker und Dokploy für das Deployment, TypeScript mit Next.js für Webservice und Frontend, TanStack Query und TanStack Form im Frontend, PostgreSQL als Datenbank sowie ein Enterprise Content Management System als Inhaltsbestandteil des Projekts.

  1. Jahresprojekt: Thema und Team (1 Woche)
    Projektidee und Abgrenzung, Teambildung (1 bis 3 Personen), Anforderungen als Nutzergeschichten, Schnitt zwischen Frontend, Webservice und Inhaltsbereich festlegen, Repository- und Dokumentationsstruktur

  2. Server aufsetzen und härten (2 Wochen)
    VPS bei Hetzner anlegen, Shell, Benutzer und Rechte, SSH mit Schlüsseln, Dienste mit systemd; SSH härten, Firewall, automatische Sicherheitsupdates, Angriffsfläche verkleinern, Logs lesen, Snapshots

  3. Auslieferung mit Containern (2 Wochen)
    Dockerfile und Compose für das eigene Projekt, Dokploy einrichten, Deployment aus dem Git-Repository, Reverse Proxy und TLS über Traefik, DNS und Domain, Umgebungsvariablen und Secrets, Rollback

  4. Schnittstellen im Vergleich (2 Wochen)
    Richardson-Reifegrade und HATEOAS, Ressourcenschnitt und Idempotenz; SOAP mit Envelope, WSDL, XML-Schema und WS-Security; RPC, gRPC und GraphQL zur Einordnung; Vertrag zuerst gegen Code zuerst, OpenAPI gegen WSDL, Auswahl für das eigene Projekt begründen

  5. Getrennte Systeme (2 Wochen)
    Same-Origin-Policy und CORS im Detail (Preflight, Credentials), Cookies gegen Bearer-Tokens, SameSite, Proxy- und BFF-Muster, getrennte Container und Domains, typisierte Clients aus der OpenAPI-Beschreibung erzeugen, Verträge zwischen Teams

  6. Datenbank produktionsnah (2 Wochen)
    Von SQLite zu PostgreSQL, ORM und Migrationen im laufenden Betrieb, Transaktionen und Isolationsstufen, Verbindungsverwaltung, N+1-Problem, Indizes, parametrisierte Abfragen gegen SQL-Injection

  7. Robuste Webservices (2 Wochen)
    Einheitliche Fehlerformate (problem+json), Idempotenz und Wiederholbarkeit, Paginierung, Filter und Sortierung, Ratenbegrenzung, Caching-Header und ETag, Versionierung, Vertragstests gegen die eigene Schnittstelle

  8. Authentifizierung und Rechte (2 Wochen)
    Passwort-Hashing, Sessions gegen JWT, Refresh und Abmeldung, Rollen und Berechtigungsprüfung an einer Stelle, geschützte Routen im getrennten Aufbau, OAuth 2.0 und OIDC als Ausblick

  9. Angriffsvektoren und Schutz (2 Wochen)
    OWASP Top 10 als Landkarte, Injection, Cross-Site-Scripting, CSRF im Cookie- und im Token-Modell, Security-Header und Content Security Policy, Umgang mit Secrets, Abhängigkeiten als Angriffsfläche

  10. Serverzustand im Frontend (2 Wochen)
    Server- gegen Client-Zustand, Query Keys und Cache, Invalidierung, stale-while-revalidate, optimistische Aktualisierungen, Infinite Queries, Wiederholungs- und Fehlerstrategien, Zusammenspiel mit Server Components

  11. Formulare mit TanStack Form (2 Wochen)
    Ein Zod-Schema für Client und Server, Validierung auf Feld- und Formularebene, asynchrone Prüfungen, Fehlerdarstellung und Fokusführung, mehrstufige Formulare, Dateiuploads, Barrierefreiheit von Formularen

  12. Internationalisierung (1 Woche)
    Sprachen im Routing, ICU-MessageFormat mit Plural und Genus, Formatierung von Datum, Zahl und Währung, Übersetzungsdateien und Redaktionsprozess, mehrsprachige Inhalte im CMS, RTL als Randfall

  13. Performance und Optimierung (2 Wochen)
    Erst messen: Lighthouse, Core Web Vitals, Netzwerk- und Datenbankprofile; Rendering-Strategien (SSR, SSG, ISR, Streaming), Caching auf allen Ebenen, Bundle-Analyse und Code-Splitting, Bilder und Schriften, Datenbankabfragen optimieren, Lasttest gegen den eigenen Server

  14. Content Management (2 Wochen)
    Begriff und Marktüberblick, CMS installieren und konfigurieren, Inhaltsmodell und Redaktionsrollen, Templates gestalten, Extensions auswählen und einbinden, Headless-Anbindung an das eigene Frontend

  15. Benutzerergonomie und UX (2 Wochen)
    Gestaltungsheuristiken, Bedienbarkeit prüfen, Barrierefreiheit (WCAG in Grundzügen), Responsive Design, Lade- und Fehlerzustände aus Benutzersicht

  16. Sicherheits-Review (1 Woche)
    Server und Anwendung gegen eine Checkliste prüfen, Befunde priorisieren, dokumentieren und beheben

  17. Projektabschluss (2 Wochen)
    Restarbeiten, Betriebs- und Härtungsdokumentation fertigstellen, Übergabe des laufenden Systems, Präsentation und Retrospektive