Projekte
Druckvorstufen Info Seite
Druckvorstufe GPI Hanover GmbH – Projektbeschreibung
Was ist das Projekt?
Das Projekt ist ein internes Web-Portal für die Druckvorstufen-Abteilung von Graphic Packaging International in Hannover. Es dient als zentrale digitale Anlaufstelle für alle Mitarbeiter der Abteilung und bündelt Dokumente, Prozesse, interne Kommunikation und abteilungsspezifische Verwaltung an einem Ort – ohne dass dafür ein externer Server oder ein CMS nötig ist.
Was macht es besonders?
Vollständig offline-fähig Das Portal läuft komplett lokal. Die HTML-Dateien liegen auf einem Netzlaufwerk (NAS) und werden direkt im Browser geöffnet – kein Hosting, kein Deployment, kein IT-Aufwand.
Intelligente Aktualitätserkennung Dokumente die in den letzten 21 Tagen aktualisiert wurden erhalten automatisch ein „Neu”-Badge. Ab dem 22. Tag verschwindet es ohne manuellen Eingriff.
Lebendiger Geburtstagskalender Der Kalender zeigt Geburtstage der Teammitglieder mit einem visuellen Kalender und einer Listenansicht. Wenn jemand Geburtstag hat erscheint ein animiertes Kuchensymbol neben dem Menüpunkt im Header – auf jeder Seite.
Aktualitätsprüfungs-Countdown Ein animierter Countdown auf der Startseite zeigt wann die nächste Aktualitätsprüfung der Dokumente fällig ist – mit einem Farbverlauf der von grün über gelb zu rot wechselt je näher der Termin rückt.
E-Mail-Vorlagen als Outlook-Entwürfe Vorgefertigte E-Mail-Vorlagen werden nicht nur angezeigt – ein Klick öffnet die Vorlage direkt als bearbeitbaren Entwurf in Microsoft Outlook inklusive Signatur und Formatierung.
Dark- und Light-Mode mit persistenter Speicherung Das Theme wird in einem Cookie gespeichert und beim nächsten Öffnen automatisch wiederhergestellt – seitenübergreifend auf allen Unterseiten.
Personalisierung Das Python Script matched lokale Usernames mit echten Namen. Die Startseite begrüßt User persönlich.
Wie ist es technisch gelöst?
Frontend
Das Portal besteht aus fünf statischen HTML-Seiten mit eigenem CSS und JavaScript – ohne Frameworks wie React oder Vue. Alle Seiten teilen sich ein gemeinsames Navigationssystem, einen Footer mit Saisonanimation und das globale Skript für Theme, Cookie-Verwaltung und Backend-Verbindungsstatus.
index.html– Startseite mit Dokumentenübersicht, Suchfunktion, Teamfotos, Countdown und Wetter-Widgetreklamationen.html– Reklamationsfälleentscheidungen.html– Entscheidungsprotokoll der Abteilungemail-vorlagen.html– E-Mail-Vorlagen die als Outlook-Entwurf geöffnet werdengeburtstag.html– Geburtstagskalender mit Monatsansicht
Backend
Ein einzelnes Python-Script startet beim Login automatisch im Hintergrund und öffnet vier lokale Ports:
| Port | Funktion |
|---|---|
| 5001 | Ordner scannen und auflisten |
| 8080 | Reklamationsfälle lesen und schreiben |
| 8081 | Entscheidungen lesen und schreiben |
| 8082 | EML-Dateien als Outlook-Entwurf öffnen |
Das Script wartet nach dem Start bis die Netzlaufwerke verbunden sind bevor es die netzwerkabhängigen Dienste aktiviert. Die JSON-basierten Dienste (Reklamationen, Entscheidungen) starten sofort.
Datenhaltung
Reklamationen und Entscheidungen werden in einfachen JSON-Dateien gespeichert die auf dem NAS liegen. Das macht sie für alle Nutzer gleichzeitig zugänglich ohne Datenbank.
Autostart
Eine AppleScript-App wird als macOS-Anmeldeobjekt eingetragen. Sie startet das Python-Script beim Login automatisch im Hintergrund – kein Terminal-Fenster, kein manueller Eingriff.
CORS-Lösung
Da die Website als file://-Protokoll geöffnet wird blockiert der Browser normalerweise alle Anfragen an localhost. Das Backend setzt auf jede Antwort explizit Access-Control-Allow-Origin: * und behandelt OPTIONS-Preflight-Requests manuell – so funktionieren alle Datenabrufe zuverlässig ohne die Website hosten zu müssen.
Aus Geheimhaltungsgründen, darf das Projekt hier nicht zur Verfügung gestellt werden.
Mehr erfahren
Website DLRG Tagungszentrum Hotel Delphin
Website DLRG Tagungszentrum Hotel Delphin
Hinter der Webseite des DLRG Tagungszentrums Hotel Delphin steckt mehr als ein klassischer Hotelauftritt. Gebaut auf WordPress mit Elementor als Page Builder, zeigt das Projekt wie sich Live-Daten sinnvoll in eine Unternehmenswebseite integrieren lassen.
Echtzeit-Fahrplandaten per API
Das technisch interessanteste Feature findet sich auf der Hotel-Info Seite: eine live eingebundene Abfahrtstafel für den Bahnhof Bad Nenndorf. Die Seite ruft in Echtzeit die aktuellen Zugverbindungen der S1 und S2 ab – inklusive planmäßiger Abfahrt, tatsächlicher Abfahrt und Verspätungsstatus. Die Daten kommen direkt aus der Deutschen Bahn API und werden dynamisch in eine Tabelle gerendert. Kein manuelles Pflegen, keine veralteten Infos – der Gast sieht genau was der Zug gerade macht.
Dynamische Öffnungszeiten-Anzeige
Ebenfalls auf der Hotel-Info Seite: eine Echtzeit-Statusanzeige für Rezeption, Restaurant und Bar mit dem Hinweis ob ein Bereich aktuell geöffnet ist und wie lange noch. Das läuft nicht über ein einfaches statisches Textelement, sondern wertet die hinterlegten Öffnungszeiten dynamisch gegen die aktuelle Uhrzeit aus.
Mehrsprachigkeit mit TranslatePress
Die gesamte Seite ist zweisprachig – Deutsch und Englisch – umgesetzt mit TranslatePress. Alle Inhalte, Navigation und dynamischen Elemente sind vollständig übersetzt, ohne dass dafür eine separate WordPress-Instanz nötig ist.
Technischer Stack im Überblick
- WordPress + Elementor als Grundlage
- Deutsche Bahn API für Live-Fahrplandaten
- TranslatePress für Mehrsprachigkeit
- Dynamische Öffnungszeiten-Logik
- Softgarden-Integration für Stellenanzeigen per iframe
- Google Maps Embed für die Routenführung vom Bahnhof
- Newsletter Anmeldung im Footer
- Direktbuchung
Fazit
Das Projekt zeigt, dass eine Hotel-Website mehr sein kann als eine digitale Broschüre.
Durch die API-Anbindung liefert die Seite echten Mehrwert für anreisende Gäste – und das vollautomatisch, wartungsfrei und immer aktuell.
Mehr erfahren
Automatische Netzwerklaufwerk-Einbindung via AppleScript
Automatische Netzwerklaufwerk-Einbindung via AppleScript
In vielen Unternehmensumgebungen ist das manuelle Verbinden von Netzwerklaufwerken beim Start eines Arbeitstages ein kleines, aber nerviges Ritual – Verbindungen einzeln aufbauen. Genau hier setzt dieses Projekt an.
Die Lösung
Entwickelt wurde ein AppleScript, das als Anmeldeobjekt in macOS hinterlegt ist und automatisch beim Login des Nutzers ausgeführt wird. Es erkennt den angemeldeten Benutzer, da er im Script definiert wird, fordert einmalig das aktuelle Passwort ab und mountet anschließend alle relevanten Netzwerklaufwerke mit den nutzerspezifischen Pfaden vollautomatisch im Hintergrund.
Der Nutzer muss nichts weiter tun, als seinen Arbeitsrechner zu starten und sein Passwort einzugeben – genau das, was er ohnehin tut.
Was das bringt
- Keine Support-Anfragen wegen vielleicht falsch getippten Nutzernamen
- Sofortige Arbeitsbereitschaft nach dem Login
- Funktioniert für jeden Nutzer individuell, ohne großen Konfigurationsaufwand
Technischer Hintergrund
AppleScript kommuniziert direkt mit dem macOS Finder und den Netzwerkdiensten des Systems. Durch die Einbindung als Login-Objekt greift das Script in den natürlichen Startprozess ein – unsichtbar, zuverlässig und ohne zusätzliche Software oder Administratorrechte zur Laufzeit.
Fazit
Ein kleines Script, das täglich Zeit spart. Nicht spektakulär in der Oberfläche – aber genau das ist der Punkt: Gute Automatisierung fällt nicht auf, weil sie einfach funktioniert.
Mehr erfahren
Abschlussprojekt Ping-Pong
Abschlussprojekt Ping-Pong
Ping Pong in Java programmieren – das klingt erstmal nach einem klassischen Schulprojekt. Tastatur, zwei Spieler, fertig. Wir haben das Ganze eine Ebene weitergedacht: Unser Pong läuft nicht über Tastaturtasten, sondern über echte Konsolen-Controller – egal ob Xbox, PlayStation oder Nintendo Switch.
Das Problem mit Controller-Input in Java
Java bringt von Haus aus keine native Unterstützung für Gamecontroller mit. Die Standard-Bibliotheken kennen Maus und Tastatur, aber keinen Analog-Stick und keinen A-Knopf. Die Lösung: das Steam Input Framework. Steam stellt eine API bereit, die angeschlossene Controller erkennt, normalisiert und als einheitliche Eingabequelle verfügbar macht – unabhängig vom Hersteller. Ein DualSense, ein Xbox-Controller und ein Switch Pro Controller liefern damit über dieselbe Schnittstelle dieselben Events.
Automatische Spieler- und Tastenzuordnung
Der interessante Teil liegt in der Controller-Erkennung. Sobald ein Controller verbunden wird, erkennt das Framework welches Gerät es ist und ordnet es automatisch einem Spieler zu. Spieler 1 bekommt den ersten erkannten Controller, Spieler 2 den zweiten. Die Tastenbelegung wird dabei geräteabhängig korrekt gemappt – auf dem PlayStation-Controller ist es das linke Analog-Stick-Achsenfeld, auf dem Switch Pro Controller dasselbe, auf einem Xbox-Controller ebenfalls. Der Spieler muss nichts konfigurieren, einstecken reicht.
Umsetzung in BlueJ
Das Projekt wurde komplett in BlueJ entwickelt – der Java-IDE die im Schulumfeld weit verbreitet ist und eigentlich nicht für solche Integrationen gedacht ist. Die Controller-Kommunikation läuft über eine native Bridge, die die Steam API anspricht und die Events als Java-lesbare Eingaben weitergibt. Die Spiellogik selbst – Ballphysik, Kollisionserkennung, Punktestand – ist klassisches objektorientiertes Java, wie man es im Unterricht lernt.
Was dabei technisch interessant ist
Das Projekt verbindet zwei Welten die normalerweise nichts miteinander zu tun haben: Schul-Java in BlueJ auf der einen Seite, und ein Framework das eigentlich für professionelle Spieleentwicklung gebaut wurde auf der anderen. Dass das funktioniert und am Ende ein vollständig spielbares Pong mit echtem Controller-Feeling rauskommt, ist das eigentlich Spannende daran.
Fazit
Es bleibt ein Schulprojekt – aber eines das zeigt, dass der Schritt von “Hello World” zu echter Hardware-Kommunikation kleiner ist als man denkt, wenn man bereit ist sich mit den richtigen Schnittstellen auseinanderzusetzen.
Mehr erfahren
E-Mail-Server in Filius
E-Mail-Server in Filius
Filius ist eine Java-basierte Netzwerksimulationssoftware die im Schulunterricht eingesetzt wird um grundlegende Netzwerkkonzepte greifbar zu machen. In diesem Projekt haben wir einen vollständigen E-Mail-Server aufgebaut – inklusive Client, Routing und Protokollkommunikation – komplett innerhalb der simulierten Netzwerkumgebung.
Was Filius kann und warum es interessant ist
Filius simuliert ein komplettes Netzwerk auf Software-Ebene. Man platziert Geräte – Rechner, Switches, Router – verbindet sie virtuell mit Kabeln und konfiguriert IP-Adressen, Gateways und DNS. Was dabei unter der Haube passiert entspricht dem was in echten Netzwerken passiert – nur sichtbar und kontrollierbar in einer geschlossenen Umgebung.
Aufbau des Mail-Servers
Das Netzwerk bestand aus mehreren simulierten Rechnern mit fest zugewiesenen IP-Adressen. Ein Rechner wurde als Mail-Server konfiguriert, auf dem der in Filius integrierte SMTP- und POP3-Dienst läuft. Zwei weitere Rechner dienten als Clients mit eigenem Mail-Client. Der Mailverkehr lief vollständig über das simulierte Netzwerk – vom Client über den Switch zum Server und zurück.
Dabei kamen die echten Protokolle zum Einsatz: SMTP für das Senden, POP3 für das Empfangen. Filius macht den Datenaustausch dabei transparent sichtbar – man kann in Echtzeit verfolgen welche Pakete über welchen Knoten laufen und wie die Protokoll-Handshakes ablaufen.
Was man dabei wirklich lernt
Der Unterschied zu einer rein theoretischen Unterrichtsstunde ist enorm. Wenn man selbst konfiguriert warum eine Mail nicht ankommt weil die DNS-Auflösung fehlt, oder warum der Client den Server nicht erreicht weil das Gateway falsch gesetzt ist, versteht man Netzwerkkommunikation auf eine ganz andere Art. Fehlerdiagnose in einem simulierten Netzwerk funktioniert genauso wie in einem echten – nur ohne dass dabei etwas kaputt gehen kann.
Technischer Überblick
- Simuliertes LAN mit Switch und mehreren Endgeräten
- Statische IP-Konfiguration und Gateway-Einrichtung
- DNS-Server zur Namensauflösung der Mail-Domain
- SMTP-Dienst auf dem Server für eingehende Mails
- POP3-Dienst für den Abruf durch die Clients
- Echtzeit-Paketvisualisierung im Netzwerk
Fazit
Filius klingt simpel, steckt aber voller echter Netzwerklogik. Ein E-Mail-Server in dieser Umgebung aufzubauen bedeutet nicht nur Buttons klicken – es bedeutet zu verstehen warum jede Konfigurationsebene notwendig ist damit am Ende eine Mail ihren Weg findet.
Mehr erfahren