Meine Projekte und Dokumentationen
Hier präsentiere ich eine Auswahl meiner Projekte, Dokumentationen und Lernexperimente. Jedes Projekt bietet Einblicke in die Konzeption, Implementierung und die Herausforderungen, die es zu meistern galt.
Projekt 1: Mein Persönliches Homelab – Nachhaltige IT-Infrastruktur
Mein Homelab ist das Herzstück meiner praktischen Ausbildung und Weiterbildung zum Fachinformatiker für Systemintegration. Es dient als Testumgebung, Spielwiese und Produktivsystem für persönliche Projekte. Besonderes Augenmerk lag auf der **Nachhaltigkeit durch Wiederverwendung älterer Hardware** und der Implementierung nutzbringender Dienste für den privaten Gebrauch.
Aufbau und Kernkomponenten

(Pihole im Betrieb)
Mein Homelab basiert auf einem **alten All-in-One (AIO) PC**, den ich vor dem Elektroschrott bewahren wollte, um der Technik ein zweites, nutzbringendes Leben zu schenken. Dieses System ist ausgestattet mit 4 GB RAM und 1 TB HDD-Speicher. Es läuft headless unter Debian, was die Ressourcen optimal für die Serverdienste nutzbar macht. Die Wahl eines AIO-PCs mit integriertem Monitor, der aber nicht ständig aktiv sein sollte, führte zur Herausforderung, den Monitor softwareseitig über Bash-Befehle zu deaktivieren – eine praktische Übung in der Systemadministration fernab der GUI.
Vollständige Projektdokumentation anzeigen
Motivation und Zielsetzung
Die Hauptmotivation für dieses Projekt war es, vorhandene, aber ungenutzte Technik **nachhaltig weiterzuverwenden** und gleichzeitig eine **unabhängige, lokale Infrastruktur** für häufig genutzte Dienste zu schaffen. Die Ziele waren konkret:
- **Ressourcenschonung:** Wiederbelebung älterer Hardware statt Neuanschaffung.
- **Werbeblockierung im Netzwerk:** Implementierung eines netzwerkweiten Adblockers für eine sauberere und schnellere Interneterfahrung.
- **Familienfreundliches Dateisystem:** Entwicklung einer Lösung zur einfachen Sicherung und Übertragung von Daten für die gesamte Familie, insbesondere mit einer benutzerfreundlichen grafischen Oberfläche für technisch weniger versierte Personen.
- **Erhöhung der lokalen Sicherheit:** Implementierung von Firewall-Regeln und Überlegungen zu weiteren Sicherheitsmaßnahmen.
Implementierte Dienste und Technologien
Zur Erreichung der Ziele wurden folgende Schlüsselkomponenten und -dienste implementiert und konfiguriert:
- **Pi-hole (Netzwerkweiter Adblocker):** Installation und Konfiguration von Pi-hole als DNS-Server, der Werbung und Tracker im gesamten Heimnetzwerk filtert. Dies reduziert den Datenverkehr, beschleunigt das Surfen und erhöht die Privatsphäre der Nutzer.
- **Nextcloud (Dateiverteilungssystem):** Nach ersten Überlegungen mit FileZilla entschied ich mich für Nextcloud. Die Gründe waren vielfältig: Nextcloud bietet eine **moderne, intuitive grafische Oberfläche**, die insbesondere für meine Mutter eine hohe Akzeptanz sicherstellt. Zudem bietet es weit mehr Funktionen als reines File-Sharing, wie Kalender- und Kontaktverwaltung, Notizen und integrierte Medienwiedergabe – eine umfassende private Cloud-Lösung.
- **UFW (Uncomplicated Firewall):** Implementierung einer Firewall auf dem Server, um den Netzwerkzugriff zu kontrollieren und nur benötigte Ports zu öffnen. Dies ist ein wichtiger Schritt zur Absicherung des Systems und zur Einhaltung von Sicherheitsstandards (mit der Option, zukünftig auf Sophos UTM für erweiterte Funktionen zu wechseln).
- **Bash-Skripte für headless Betrieb:** Da der AIO-PC headless betrieben wird, war das softwareseitige Ausschalten des integrierten Monitors eine Herausforderung. Dies wurde erfolgreich über angepasste Bash-Befehle gelöst, was mein Verständnis für die Kommandozeilensteuerung und Systemprozesse unter Linux vertiefte.
- **Debian:** Das schlanke Betriebssystem bildet die Basis für alle Dienste und ermöglicht einen effizienten Ressourceneinsatz.
Herausforderungen und Lernprozesse
Dieses Projekt war ein fortlaufender Lernprozess und stellte mich vor diverse Herausforderungen:
- **Hardware-Ressourcen:** Optimierung der Dienste für die ältere Hardware des AIO-PCs, um Performance-Engpässe zu vermeiden.
- **Headless-Betrieb und Monitorsteuerung:** Die Lösung des Problems der Monitorabschaltung über Bash-Befehle erforderte tiefgehende Recherche und Experimente mit Systemdiensten.
- **Nextcloud-Implementierung:** Das Verständnis und die Konfiguration aller Nextcloud-Komponenten (Webserver, Datenbank, PHP-Module) war komplexer als erwartet, insbesondere die Feinabstimmung der Performance.
- **Sicherheitskonfiguration:** Die korrekte Einrichtung der Firewall-Regeln, um einerseits den Zugriff zu ermöglichen und andererseits das System abzusichern.
- **Benutzerfreundlichkeit:** Die Herausforderung, eine technisch komplexe Lösung so zu gestalten, dass sie auch von Nicht-IT-versierten Familienmitgliedern einfach genutzt werden kann.
Jede dieser Herausforderungen bot wertvolle Einblicke in die praktische Systemintegration, Problemlösung und Anpassung an spezifische Nutzerbedürfnisse. Dies vertieft mein Wissen aus Lernfeldern wie LF02 "Arbeitsplatz nach Kundenwunsch ausstatten", LF03 "Clients in Netzwerke einbinden", LF04 "Schutzbedarfsanalyse...", LF08 "Daten systemübergreifend bereitstellen" und LF09 "Netzwerke und Dienste bereitstellen".
Zukünftige Pläne und Erweiterungen
Der Homelab-Server ist ein dynamisches Projekt. Zukünftig plane ich, die Sicherheit durch den möglichen Umstieg auf Sophos UTM als dedizierte Firewall-Lösung weiter zu erhöhen und möglicherweise weitere Dienste wie einen VPN-Server für sicheren Fernzugriff zu implementieren. Die kontinuierliche Optimierung der Performance und die Automatisierung von Wartungsaufgaben stehen ebenfalls auf der Agenda. Dieses Projekt bleibt meine persönliche Spielwiese für fortgeschrittene Systemintegration und Netzwerksicherheit.
Projekt 2: Eigener Passwort-Manager – Sicherheit und Unabhängigkeit
In diesem Projekt habe ich einen eigenständigen Passwort-Manager in Python entwickelt. Die Motivation war es, eine Lösung zu schaffen, die mir die volle Kontrolle über meine sensiblen Daten gibt, unabhängig von Cloud-Diensten großer Konzerne. Besonderer Fokus lag auf der Implementierung robuster Sicherheitsmechanismen, die über gängige Standards hinausgehen, um Passwörter lokal und sicher zu verwalten.
Screenshot der Anwendung

(Bild der Anwendung)
Die Anwendung bietet eine intuitive grafische Oberfläche, um Passwörter zu generieren, für verschiedene Accounts zu speichern und bei Bedarf abzurufen oder zu löschen. Die Bedienung ist bewusst einfach gehalten, um die Benutzerfreundlichkeit zu gewährleisten, während im Hintergrund komplexe Verschlüsselungs- und Sicherheitsverfahren ablaufen.
Vollständige Projektdokumentation anzeigen
Motivation und Zielsetzung
In Zeiten zunehmender Cyberangriffe und Datenlecks wird die sichere Verwaltung von Passwörtern immer kritischer. Bestehende Lösungen sind oft cloudbasiert, was ein gewisses Vertrauen in den Anbieter erfordert. Mein Ziel war es, eine **lokale, selbst gehostete und hochsichere Lösung** zu entwickeln. Der Fokus lag auf:
- **Maximale Sicherheit:** Einsatz etablierter kryptografischer Verfahren.
- **Unabhängigkeit:** Keine Abhängigkeit von externen Servern oder Cloud-Diensten.
- **Kontrolle:** Volle Hoheit über die eigenen Daten und deren Speicherung.
- **Lernprojekt:** Vertiefung von Python, GUI-Programmierung (Tkinter) und Kryptographie.
Technologien und Architektur
Das Projekt ist vollständig in **Python** implementiert und nutzt folgende Bibliotheken und Konzepte:
- **Python:** Die Kernlogik für Passwortgenerierung, Datenmanagement und Dateihandling.
- **Tkinter & `ttkthemes`:** Für die grafische Benutzeroberfläche (GUI), die eine plattformunabhängige und optisch ansprechende Bedienung ermöglicht. `ttkthemes` sorgt dabei für einen modernen Look.
- **
cryptography
-Bibliothek:** Dies ist das Herzstück der Sicherheit. Sie wird für alle kryptografischen Operationen verwendet und ist eine vom BSI empfohlene Bibliothek. - **
random
&string
:** Für die Erzeugung von hochkomplexen und zufälligen Passwörtern. - **JSON:** Zur strukturierten Speicherung der Account- und Passwortdaten im Dateisystem.
- **Dateisystem-Speicherung:** Alle sensiblen Daten werden lokal in einer verschlüsselten Datei (`passwords.json.enc`) gespeichert.
Das Sicherheitskonzept – BSI-Standards und darüber hinaus
Die Sicherheit des Passwort-Managers basiert auf einem mehrschichtigen Ansatz, der gängige Best Practices im Kryptographie-Bereich berücksichtigt:
- **Master-Passwort-Ableitung (PBKDF2HMAC):** Das eingegebene Master-Passwort wird nicht direkt zur Verschlüsselung verwendet. Stattdessen wird daraus mit einem **Salt** und einer hohen Anzahl von Iterationen (100.000) ein starker Verschlüsselungsschlüssel abgeleitet (Key Derivation Function - KDF). Dies schützt vor Brute-Force- und Rainbow-Table-Angriffen, selbst wenn der Salt bekannt werden sollte.
- **Salt-Datei (`salt.key`):** Ein einzigartiger, zufällig generierter Salt wird bei der ersten Nutzung erstellt und separat gespeichert. Dieser Salt sorgt dafür, dass selbst identische Master-Passwörter unterschiedliche Verschlüsselungsschlüssel ergeben und die Sicherheit bei einem Angriff auf mehrere Passwörter erhöht wird.
- **Symmetrische Verschlüsselung (Fernet):** Die eigentlichen Passwortdaten werden mit dem abgeleiteten Schlüssel unter Verwendung von Fernet verschlüsselt. Fernet ist eine symmetrische Verschlüsselung (AES im CBC-Modus mit HMAC-Authentifizierung), die von der
cryptography
-Bibliothek bereitgestellt wird und als robust und sicher gilt. Sie gewährleistet sowohl **Vertraulichkeit als auch Integrität** der Daten. - **Passwortversuche begrenzt:** Beim Start ist die Eingabe des Master-Passworts auf 3 Versuche begrenzt, um Brute-Force-Angriffe zu erschweren.
- **Fehlerbehandlung:** Robuste Fehlerbehandlung für ungültige Passwörter oder korrupte Dateien, um Datenverlust oder unsichere Zustände zu vermeiden.
Durch diese Maßnahmen ist der Passwort-Manager darauf ausgelegt, Passwörter sicher zu speichern, selbst wenn die verschlüsselte Datei in die falschen Hände geraten sollte. Die Einhaltung dieser Prinzipien geht Hand in Hand mit den Empfehlungen des Bundesamtes für Sicherheit in der Informationstechnik (BSI) für sichere Datenverarbeitung.
Funktionsweise der Anwendung
Passwort-Generierung:
Nutzer können die Länge des Passworts festlegen und wählen, welche Zeichentypen (Kleinbuchstaben, Großbuchstaben, Zahlen, Sonderzeichen) enthalten sein sollen. Die Passwörter werden mittels der Python-Bibliothek random
zufällig generiert, was eine hohe Entropie sicherstellt.
Passwort-Verwaltung:
- **Speichern:** Nach der Generierung kann das Passwort zusammen mit einem Accountnamen (z.B. "Facebook") und einem Benutzernamen gespeichert werden. Existiert der Account bereits, wird der Nutzer vor dem Überschreiben gefragt.
- **Laden:** Alle gespeicherten Accounts werden in einer Liste angezeigt. Bei Auswahl eines Accounts werden die zugehörigen Benutzerdaten und das Passwort (entschlüsselt) in den Detailbereich geladen.
- **Kopieren:** Sowohl das generierte als auch das geladene Passwort können mit einem Klick in die Zwischenablage kopiert werden, um ein einfaches Einfügen zu ermöglichen und Tippfehler zu vermeiden. Nach kurzer Zeit wird die Zwischenablage aus Sicherheitsgründen geleert.
- **Löschen:** Ausgewählte Einträge können sicher aus der verschlüsselten Datei entfernt werden.
Bezug zur Fachinformatiker-Ausbildung
Dieses Projekt ist eine direkte Anwendung und Vertiefung vieler relevanter Lernfelder der Fachinformatiker-Ausbildung für Systemintegration:
- **LF10b: Serverdienste bereitstellen und Administrationsaufgaben automatisieren:** Die Fähigkeit, Skripte zu schreiben und komplexe Systeme zu verwalten, wird hier direkt angewendet.
- **LF11b: Betrieb und Sicherheit vernetzter Systeme gewährleisten:** Das gesamte Sicherheitskonzept, von der Schlüsselableitung bis zur Verschlüsselung, ist eine praktische Umsetzung von Cybersicherheitsprinzipien.
- **LF12b: Kundenspezifische Systemintegration durchführen:** Obwohl es ein persönliches Projekt ist, simuliert es die Entwicklung einer maßgeschneiderten Softwarelösung, die spezifische Nutzeranforderungen erfüllt.
- **LF04: Schutzbedarfsanalyse im eigenen Arbeitsbereich durchführen:** Das Projekt entstand aus der Erkenntnis des Bedarfs an sicherer Passwortverwaltung.
- **LF06: Serviceanfragen bearbeiten:** Die GUI-Entwicklung und Fehlerbehandlung der Anwendung spiegeln die Notwendigkeit wider, benutzerfreundliche Lösungen zu schaffen.
- **Allgemeine Programmierkenntnisse:** Stärkt die Problemlösungsfähigkeiten und das Verständnis von Algorithmen.
Das Projekt dient somit als konkreter Beweis für meine Fähigkeit, komplexe technische Probleme zu analysieren, sichere Lösungen zu konzipieren und diese eigenständig zu implementieren.
Projekt 3: Datei Prüfsummen Rechner – Sicherstellung der Datenintegrität
Dieses Python-Projekt ist ein intuitiver Prüfsummenrechner mit grafischer Oberfläche, der die **Integrität von Dateien** überprüft. In einer Welt, in der Daten ständig übertragen und gespeichert werden, ist es von entscheidender Bedeutung, sicherzustellen, dass diese Daten unverändert und unbeschädigt bleiben. Mein Tool bietet eine schnelle und zuverlässige Methode, dies zu gewährleisten, und unterstreicht die Wichtigkeit der Datensicherheit im Alltag und in professionellen IT-Umgebungen.
Screenshot der Anwendung

(Die grafische Oberfläche des Prüfsummen Rechners)
Die Anwendung ermöglicht es Benutzern, einfach eine Datei auszuwählen und deren Prüfsumme mit gängigen Algorithmen wie SHA256 oder MD5 zu berechnen. Das Ergebnis kann dann mit einer bekannten Prüfsumme verglichen werden, um die Unversehrtheit der Datei zu bestätigen.
Vollständige Projektdokumentation anzeigen
Motivation und Zielsetzung
In der IT ist die **Datenintegrität** ein fundamentales Schutzziel. Ob bei Downloads, Datenmigrationen oder Backups – es muss sichergestellt werden, dass Dateien nicht unbemerkt verändert oder beschädigt wurden. Herkömmliche Prüfprogramme sind oft kommandozeilenbasiert oder bieten nur eingeschränkte Funktionen. Mein Ziel war es, ein **benutzerfreundliches GUI-Tool** zu entwickeln, das:
- **Einfache Überprüfung:** Schnelle und intuitive Berechnung von Prüfsummen.
- **Sicherstellung der Datenintegrität:** Bestätigung der Unverfälschtheit von Dateien.
- **Algorithmus-Flexibilität:** Unterstützung relevanter Hashing-Algorithmen.
- **Effiziente Verarbeitung:** Auch für große Dateien geeignet.
Technologien und Architektur
Der Prüfsummenrechner ist vollständig in **Python** implementiert und nutzt folgende Bibliotheken und Konzepte:
- **Python:** Die Kernlogik für Dateiverarbeitung und Prüfsummenberechnung.
- **Tkinter:** Für die plattformunabhängige grafische Benutzeroberfläche (GUI), die eine einfache Dateiauswahl und Ergebnisdarstellung ermöglicht.
- **
hashlib
-Modul:** Das Standardmodul von Python für sichere Hashes und Nachrichten-Digest-Algorithmen. Es wird für die Berechnung von SHA256 und MD5 verwendet. - **
tkinter.filedialog
:** Für die einfache und standardisierte Dateiauswahl durch den Benutzer. - **Chunk-Verarbeitung:** Dateien werden in kleinen Blöcken (64KB Chunks) gelesen und verarbeitet. Dies ist entscheidend für die **Speichereffizienz** und die Fähigkeit, auch sehr große Dateien (mehrere GB) ohne hohe RAM-Auslastung zu verarbeiten.
Funktionsweise und Sicherheitsaspekte
Das Programm bietet eine übersichtliche Oberfläche, auf der der Nutzer eine Datei auswählen kann. Anschließend wählt er den gewünschten Hashing-Algorithmus:
- **SHA256 (Secure Hash Algorithm 256):** Ein kryptografisch sicherer Hash-Algorithmus, der eine eindeutige "Signatur" einer Datei erzeugt. Er wird verwendet, um die **Integrität und Authentizität** von Daten zu überprüfen. Wenn sich auch nur ein Bit in der Datei ändert, ist die SHA256-Prüfsumme komplett anders.
- **MD5 (Message-Digest Algorithm 5):** Ein älterer Hashing-Algorithmus. Während MD5 noch für einfache **Integritätsprüfungen** (z.B. ob ein Download vollständig ist) nützlich sein kann, gilt er aufgrund von Kollisionsangriffen **nicht mehr als kryptografisch sicher zur Gewährleistung der Authentizität**. Dies bedeutet, dass es möglich ist, zwei verschiedene Dateien mit derselben MD5-Prüfsumme zu erzeugen. Für sicherheitsrelevante Überprüfungen sollte daher immer SHA256 oder ein stärkerer Algorithmus verwendet werden.
Das Programm berechnet die gewählte Prüfsumme und zeigt sie dem Benutzer an. Eine Statusleiste informiert über den Fortschritt und eventuelle Dateigröße. Die Fehlerbehandlung sorgt dafür, dass Probleme wie nicht gefundene Dateien oder ungültige Algorithmen dem Benutzer klar kommuniziert werden.
Bezug zur Fachinformatiker-Ausbildung
Dieses Projekt demonstriert umfassende Fähigkeiten, die direkt mit den Lernfeldern der Fachinformatiker-Ausbildung für Systemintegration in Verbindung stehen:
- **LF04: Schutzbedarfsanalyse im eigenen Arbeitsbereich durchführen:** Die Notwendigkeit der Datenintegrität und die Anwendung von Prüfsummen sind direkte Maßnahmen zur Schutzbedarfsanalyse.
- **LF11b: Betrieb und Sicherheit vernetzter Systeme gewährleisten:** Das Tool unterstützt die Überprüfung der Datenintegrität in Betriebssystemen und Netzwerken.
- **LF10b: Serverdienste bereitstellen und Administrationsaufgaben automatisieren:** Obwohl es ein GUI-Tool ist, basiert die Kernlogik auf Techniken, die für Skripte in der Administration (z.B. Dateiverwaltung, Backups) relevant sind.
- **Allgemeine Programmierkenntnisse:** Zeigt die Fähigkeit zur Softwareentwicklung mit Python und GUI-Programmierung.
- **LF06: Serviceanfragen bearbeiten (indirekt):** Ein solches Tool kann im Support zur schnellen Diagnose von Dateibeschädigungen eingesetzt werden.
Das Projekt unterstreicht meine Fähigkeit, sicherheitsrelevante Tools eigenständig zu entwickeln, die zur Sicherstellung der Datenintegrität und damit zur allgemeinen IT-Sicherheit beitragen.
Projekt 4: Zahlensystem-Umrechner – Präzision in der IT
Im Alltag eines Fachinformatikers ist das schnelle und präzise Umrechnen zwischen verschiedenen Zahlensystemen wie Dezimal, Binär und Hexadezimal unerlässlich. Um diesen Prozess zu vereinfachen und Fehlerquellen zu minimieren, habe ich einen intuitiven Umrechner mit grafischer Benutzeroberfläche entwickelt. Dieses Tool hat sich in meiner Ausbildung als unverzichtbare Hilfe erwiesen, um Berechnungen zu überprüfen und ein tieferes Verständnis für die Datendarstellung in IT-Systemen zu entwickeln.
Die Anwendung ermöglicht die schnelle Konvertierung von Zahlen zwischen den wichtigsten Basis-Systemen, die in der Informatik verwendet werden. Sie unterstützt das direkte Überprüfen von Netzwerk-Adressierungen, Bitmasken oder Speicheradressen, wodurch die Fehlerquote im Arbeitsalltag deutlich reduziert wird.
Vollständige Projektdokumentation anzeigen
Motivation und Zielsetzung
Gerade in Bereichen wie der Netzwerktechnik, der Programmierung auf Hardware-Ebene oder bei der Analyse von Speicherdumps ist das sichere Hantieren mit Binär-, Dezimal- und Hexadezimalzahlen essenziell. Persönlich habe ich gemerkt, wie schnell sich beim manuellen Umrechnen Fehler einschleichen können. Das Ziel dieses Projekts war es, ein einfaches, **zuverlässiges Tool** zu schaffen, das:
- **Schnelle und fehlerfreie Umrechnungen:** Zwischen Binär, Dezimal und Hexadezimal.
- **Lernunterstützung:** Als Hilfsmittel, um eigene Kopfrechnungen zu verifizieren und das Verständnis für Zahlensysteme zu festigen.
- **Einfache Bedienung:** Eine intuitive grafische Benutzeroberfläche für schnelle Ergebnisse.
Technologien und Architektur
Der Umrechner wurde vollständig in **Python** entwickelt und nutzt folgende Bibliotheken und Konzepte:
- **Python:** Die Kernlogik für die mathematischen Umrechnungsoperationen und die String-Manipulation.
- **Tkinter:** Für die plattformunabhängige grafische Benutzeroberfläche (GUI). Die Widgets wie Eingabefelder und Buttons sind intuitiv angeordnet.
- **Basis-Konvertierungsfunktionen:** Nutzung der eingebauten Python-Funktionen wie `int(value, base)` und `hex()`, `bin()`, um die Umrechnungen effizient und korrekt durchzuführen.
- **Fehlerbehandlung:** Implementierung von
try-except
-Blöcken, um ungültige Eingaben (z.B. Buchstaben in einer Binärzahl) abzufangen und dem Benutzer eine verständliche Fehlermeldung zu geben.
Funktionsweise und praktische Relevanz
Die Anwendung ist sehr direkt: Der Nutzer gibt eine Zahl in einem der Formate (z.B. Dezimal) ein und wählt das Quell- und Zielsystem aus. Das Programm führt dann die Konvertierung durch und zeigt das Ergebnis an. Die Implementierung deckt die gängigsten Anwendungsfälle ab:
- **Dezimal zu Binär/Hexadezimal:** Häufig für das Verständnis von Bitmasken, Zugriffsrechten oder Speicheradressen.
- **Binär zu Dezimal/Hexadezimal:** Wichtig beim Lesen von Netzwerkpaketen oder Low-Level-Programmierdaten.
- **Hexadezimal zu Dezimal/Binär:** Relevant für Farben im Webdesign, Hardware-IDs oder Fehlermeldungen in Logs.
Das Tool ist nicht nur ein Rechner, sondern auch ein Lerninstrument, das das Verständnis für die verschiedenen Zahlendarstellungen in der Informatik festigt.
Bezug zur Fachinformatiker-Ausbildung
Dieses Projekt ist ein exzellentes Beispiel für die Anwendung von Ausbildungsinhalten und die Entwicklung von Problemlösungskompetenzen:
- **LF03: Clients in Netzwerke einbinden & LF09: Netzwerke und Dienste bereitstellen:** Im Netzwerkbereich werden IP-Adressen (insbesondere IPv6), Subnetzmasken und Portnummern oft in verschiedenen Zahlensystemen dargestellt und erfordern präzise Umrechnungen.
- **LF10b: Serverdienste bereitstellen und Administrationsaufgaben automatisieren:** Bei der Konfiguration von Diensten oder der Analyse von Systemprotokollen sind Kenntnisse in Zahlensystemen häufig erforderlich.
- **LF-PV-2: Prüfungsbereich 2/3 (schriftliche Prüfungen):** Das Tool unterstützt das Üben und Verifizieren von Aufgaben, die im Rahmen der theoretischen Prüfung relevant sind und ein tiefes Verständnis von Zahlensystemen voraussetzen.
- **Allgemeine Informatik-Grundlagen:** Vertieft das Verständnis für die digitale Repräsentation von Daten auf Hardware-Ebene.
Das Projekt belegt meine Fähigkeit, praxisrelevante Software zu entwickeln, die den Arbeitsalltag effizienter gestaltet und das Lernen in komplexen IT-Bereichen unterstützt.
Projekt 5: Einfache To-Do-Liste – Organisation im Arbeitsalltag
Um im oft komplexen IT-Alltag den Überblick über Aufgaben und Prioritäten zu behalten, habe ich eine intuitive To-Do-Listen-Anwendung mit grafischer Benutzeroberfläche entwickelt. Dieses Projekt diente nicht nur dazu, meine eigenen organisatorischen Fähigkeiten zu verbessern, sondern auch, um grundlegende Konzepte der GUI-Programmierung und der persistenten Datenspeicherung zu vertiefen. Es ist ein praktisches Beispiel dafür, wie kleine, selbst entwickelte Tools den Arbeitsfluss optimieren können.
Screenshot der Anwendung

(Die grafische Oberfläche der To-Do-Liste)
Die Anwendung ermöglicht das einfache Hinzufügen, Löschen und Markieren von Aufgaben als erledigt. Alle Aufgaben werden lokal gespeichert, sodass sie auch nach dem Neustart des Programms verfügbar sind. Dies bietet eine zuverlässige und unkomplizierte Möglichkeit zur Aufgabenverwaltung.
Vollständige Projektdokumentation anzeigen
Motivation und Zielsetzung
Effizientes Aufgabenmanagement ist in jedem Berufsfeld, besonders aber in der IT, entscheidend. Ich wollte ein einfaches, aber effektives Tool, das mir hilft, meine täglichen Aufgaben zu strukturieren und zu verfolgen. Die Ziele für dieses Projekt waren:
- **Grundlagen der GUI-Entwicklung:** Praktische Anwendung von Tkinter.
- **Persistente Datenspeicherung:** Erlernen des Speicherns und Ladens von Daten in Textdateien.
- **Effizienzsteigerung:** Ein Tool für den Eigengebrauch, das den Überblick über Aufgaben verbessert.
- **Modulare Programmierung:** Strukturierung des Codes in Funktionen und Klassen.
Technologien und Architektur
Die To-Do-Liste ist vollständig in **Python** implementiert und nutzt folgende Bibliotheken und Konzepte:
- **Python:** Die Kernlogik für die Aufgabenverwaltung.
- **Tkinter:** Für die plattformunabhängige grafische Benutzeroberfläche (GUI). Die Anwendung verwendet Standard-Widgets wie `Entry` für die Eingabe, `Listbox` zur Anzeige der Aufgaben und `Button` für Aktionen.
- **Dateisystem-Speicherung:** Aufgaben werden in einer einfachen Textdatei (`tasks.txt`) gespeichert und geladen. Dies gewährleistet, dass die Aufgaben auch nach dem Schließen der Anwendung erhalten bleiben.
- **Fehlerbehandlung und Bestätigungen:** Einsatz von `tkinter.messagebox` für Benutzerbestätigungen (z.B. beim Löschen von Aufgaben) und zur Anzeige von Warnungen oder Fehlern.
Funktionsweise der Anwendung
Die Anwendung bietet eine klare und einfache Schnittstelle zur Aufgabenverwaltung:
- **Aufgabe hinzufügen:** Über ein Eingabefeld können neue Aufgaben hinzugefügt werden, die sofort in der Liste erscheinen.
- **Aufgabe löschen:** Ausgewählte Aufgaben können mit einem Klick entfernt werden, wobei eine Bestätigung abgefragt wird, um versehentliches Löschen zu verhindern.
- **Aufgabe als erledigt markieren:** Erledigte Aufgaben können visuell markiert werden (z.B. durch Durchstreichen oder Ändern der Textfarbe), um den Fortschritt zu visualisieren.
- **Automatisches Speichern/Laden:** Beim Start der Anwendung werden alle zuvor gespeicherten Aufgaben automatisch geladen, und bei jeder Änderung werden die Aufgaben sofort in der `tasks.txt`-Datei aktualisiert.
Dieses Projekt ist ein Beweis für die Fähigkeit, eine vollständige, wenn auch einfache, Desktop-Anwendung zu entwickeln, die einen klaren Nutzen bietet.
Bezug zur Fachinformatiker-Ausbildung
Dieses Projekt demonstriert grundlegende, aber entscheidende Fähigkeiten, die in der Fachinformatiker-Ausbildung für Systemintegration relevant sind:
- **LF07: Anwendungen kundenorientiert entwickeln und anpassen:** Obwohl es ein persönliches Tool ist, zeigt es die Fähigkeit, Benutzeranforderungen (einfache Aufgabenverwaltung) in eine funktionierende Software umzusetzen.
- **LF05: Software zur Verwaltung von Daten anpassen (indirekt):** Die Speicherung und Verwaltung von Aufgaben in einer Textdatei ist eine grundlegende Form der Datenhaltung.
- **LF06: Serviceanfragen bearbeiten:** Die Entwicklung kleiner Tools zur Effizienzsteigerung ist eine Fähigkeit, die auch im IT-Support nützlich ist, um eigene Prozesse oder die von Kollegen zu optimieren.
- **Allgemeine Programmierkenntnisse:** Vertieft das Verständnis für Python-Syntax, Funktionen, Klassen und GUI-Programmierung.
- **Dateiverwaltung:** Praktische Anwendung von Dateisystemoperationen (Lesen, Schreiben).
Das Projekt belegt meine Fähigkeit, eigenständig kleine Anwendungen zu konzipieren und zu implementieren, die den Arbeitsalltag erleichtern und organisatorische Kompetenzen unterstützen.
Projekt 6: Nolden.tech im Web – Vom Code zur Online-Präsenz
Dieses Projekt ist die Realisierung meiner eigenen professionellen Online-Präsenz: die Website "Nolden.tech", auf der Sie sich gerade befinden. Es ist das umfassendste Projekt meiner Ausbildung, da es nicht nur die Frontend-Entwicklung umfasst, sondern auch alle Schritte von der Konzeption über das Webhosting bis zur finalen Veröffentlichung im World Wide Web. Dieses Projekt demonstriert meine Fähigkeit, eine vollständige IT-Lösung von Grund auf zu planen, zu implementieren und bereitzustellen, und dient als digitales Portfolio meiner erworbenen Fähigkeiten.
Screenshot der Live-Website

(Das Logo und die gesamte Website, die Sie gerade besuchen, sind das Ergebnis dieses Projekts. Es repräsentiert die Summe aller Frontend- und Backend-Arbeiten sowie der Hosting-Infrastruktur, die notwendig waren, um diese Online-Präsenz zu realisieren.)
Vollständige Projektdokumentation anzeigen
Motivation und Zielsetzung
Die Hauptmotivation für dieses Projekt war es, ein **eigenes, zentrales Portfolio** zu schaffen, das meine technischen Fähigkeiten und Projekte greifbar und jederzeit zugänglich macht. Zudem wollte ich den gesamten Prozess der Website-Bereitstellung von Grund auf verstehen und selbst durchführen. Die Ziele waren:
- **Professionelle Online-Präsenz:** Aufbau einer persönlichen Marke und eines digitalen Lebenslaufs.
- **End-to-End-Implementierung:** Von der Konzeption und Entwicklung bis zum Hosting und zur Veröffentlichung.
- **Praktische Anwendung:** Vertiefung von Webtechnologien und Serveradministration.
- **Sicherheitsstandards:** Implementierung von HTTPS für eine sichere Verbindung.
Technologien und Umsetzungsschritte
Für die Realisierung der Website kamen verschiedene Technologien und klar definierte Schritte zum Einsatz:
- **Frontend-Entwicklung (HTML5 & CSS3):**
- **HTML5:** Strukturierung des Inhalts auf allen Seiten (Startseite, Projekte, Kontakt, Impressum, Datenschutz).
- **CSS3:** Gestaltung des modernen, "techy" Designs, Responsivität für verschiedene Bildschirmgrößen und Animationen (Hover-Effekte, Dropdowns). Integration von Google Fonts für Typografie und Font Awesome für Icons.
- **Backend für Kontaktformular (PHP):**
- Implementierung eines einfachen PHP-Skripts, das die über das Kontaktformular gesendeten Daten empfängt und per E-Mail an mich weiterleitet. Dies erfordert serverseitige Verarbeitung und sichere Konfiguration des E-Mail-Versands.
- **Domain-Registrierung:** Erwerb der Domain `nolden.tech` als zentrale Adresse meiner Website.
- **Webhosting & Dateitransfer:**
- Auswahl eines geeigneten Webhosting-Anbieters und Einrichtung des Webspaces.
- Übertragung aller Website-Dateien (HTML, CSS, Bilder, PHP-Skripte) mittels FTP/SFTP auf den Server.
- **DNS-Konfiguration:**
- Einrichtung der DNS-Einträge (A-Record, CNAME) bei meinem Domain-Registrar, um die Domain `nolden.tech` mit der IP-Adresse des Webservers zu verbinden.
- **SSL/TLS-Verschlüsselung (HTTPS):**
- Einrichtung eines SSL/TLS-Zertifikats (z.B. über Let's Encrypt), um die Kommunikation zwischen Browser und Server zu verschlüsseln (HTTPS). Dies ist entscheidend für Sicherheit, Datenschutz und SEO.
Herausforderungen und Lernprozesse
Die Umsetzung dieses Projekts war ein umfassender Lernprozess mit mehreren Herausforderungen:
- **Domain- und DNS-Management:** Das korrekte Verständnis und die Konfiguration von DNS-Einträgen, um die Domain erfolgreich mit dem Hosting zu verbinden.
- **Webserver-Umgebung:** Sicherstellen, dass der Webspace die benötigten PHP-Versionen und Server-Einstellungen für das Kontaktformular korrekt ausführt.
- **Sichere E-Mail-Konfiguration:** Die korrekte Konfiguration des E-Mail-Versands über PHP, um SPAM-Filter zu umgehen und eine zuverlässige Zustellung zu gewährleisten.
- **Debugging von Online-Problemen:** Das Identifizieren und Beheben von Fehlern, die nur im Live-Betrieb auftreten (z.B. Pfadprobleme, Server-Konfiguration).
- **Rechtliche Aspekte:** Die korratione Umsetzung von Impressum und Datenschutzerklärung gemäß DSGVO und TMG erforderte genaue Recherche und sorgfältige Implementierung.
Jeder Schritt in diesem Projekt hat mein Verständnis für die gesamte Bandbreite der Web-Infrastruktur vertieft und meine Fähigkeiten in der Problemlösung, Systemintegration und dem Management von Online-Diensten erheblich erweitert.
Bezug zur Fachinformatiker-Ausbildung
Dieses Projekt ist ein Paradebeispiel für die Anwendung zahlreicher Ausbildungsinhalte und festigt meine Kompetenzen als Fachinformatiker für Systemintegration:
- **LF09: Netzwerke und Dienste bereitstellen:** Direkte Anwendung bei der Konfiguration von DNS und dem Webserver.
- **LF10b: Serverdienste bereitstellen und Administrationsaufgaben automatisieren:** Installation, Konfiguration und Betrieb des Webservers (Apache/Nginx) und der PHP-Laufzeitumgebung.
- **LF11b: Betrieb und Sicherheit vernetzter Systeme gewährleisten:** Implementierung von HTTPS, Absicherung des Servers und des Kontaktformulars.
- **LF12b: Kundenspezifische Systemintegration durchführen:** Die gesamte Website ist eine kundenspezifische Lösung, die verschiedene Technologien integriert.
- **LF10: Konzepte für IT-Systeme erstellen und dokumentieren:** Die Website selbst ist eine Dokumentation meiner Fähigkeiten.
- **LF-PV-3: Betriebliche Projektarbeit:** Dieses Projekt könnte als eine solche Arbeit dienen, da es einen komplexen Auftrag von der Planung bis zur Umsetzung abbildet.
Die erfolgreiche Konzeption, Implementierung und das Hosting meiner eigenen Website unterstreichen meine praktische Kompetenz im Bereich der digitalen Infrastruktur und der Webtechnologien.
Projekt 7: IP-Subnetting-Rechner – Interaktives Netzwerk-Tool
Der IP-Subnetting-Rechner ist ein praktisches, browserbasiertes Tool, das ich entwickelt habe, um die komplexen Berechnungen von Netzwerkparametern für sowohl IPv4 als auch IPv6 zu vereinfachen. Als Fachinformatiker ist das Verständnis von Subnetting unerlässlich für die Netzwerkplanung und -konfiguration. Dieses interaktive Tool ermöglicht es, schnell und präzise Netz-IDs, Broadcast-Adressen, Host-Bereiche und weitere wichtige Informationen zu ermitteln und dient als wertvolle Unterstützung im Lernprozess und im Arbeitsalltag.
Anwendung direkt testen
Erleben Sie die Funktionalität des Rechners direkt hier:
Zum Subnetting Rechner(Klicken Sie, um das Tool in einem neuen Tab zu öffnen und zu testen.)
Der Rechner bietet eine übersichtliche Oberfläche für die Eingabe von IP-Adresse und Subnetzmaske (oder CIDR-Notation) und liefert sofort detaillierte Ergebnisse für die gewählte IP-Version.
Vollständige Projektdokumentation anzeigen
Motivation und Zielsetzung
Das Subnetting von IP-Adressen ist ein grundlegendes Konzept der Netzwerktechnik, das in der Ausbildung oft viel Übung erfordert. Manuelle Berechnungen sind fehleranfällig und zeitaufwendig. Mein Ziel war es, ein **zuverlässiges und benutzerfreundliches Web-Tool** zu schaffen, das:
- **Komplexe Berechnungen vereinfacht:** Schnelle und präzise Ermittlung von Netzwerkparametern.
- **Lernunterstützung:** Als Hilfsmittel, um Subnetting-Konzepte zu visualisieren und eigene Berechnungen zu überprüfen.
- **Beide IP-Versionen unterstützt:** Umrechnungen für IPv4 und IPv6 gleichermaßen zu ermöglichen.
- **Direkt im Browser nutzbar ist:** Ohne Installation oder externen Download.
Technologien und Architektur
Der IP-Subnetting-Rechner ist als reines Frontend-Projekt entwickelt und nutzt folgende Webtechnologien:
- **HTML5:** Strukturierung der Eingabefelder und Ergebnisbereiche der Benutzeroberfläche.
- **CSS3:** Gestaltung des Designs, das sich nahtlos in den Look von Nolden.tech einfügt. Hierbei wurde auf ein responsives Design geachtet, um die Nutzung auf verschiedenen Geräten zu optimieren.
- **JavaScript:** Die gesamte Berechnungslogik ist in JavaScript implementiert. Dies umfasst:
- **Validierung der IP-Adressen und CIDR-Notation** für IPv4 und IPv6.
- **Bitweise Operationen:** Fundamentale Berechnungen von Netzwerk-ID und Broadcast-Adresse für IPv4.
- **`BigInt` für IPv6:** Nutzung des modernen `BigInt`-Datentyps, um die 128-Bit-IPv6-Adressen präzise zu verarbeiten und Berechnungen wie die Ermittlung des Netzwerk-Präfixes und des Host-Bereichs durchzuführen.
- **Funktionen zur Formatierung:** Hilfsfunktionen zur Expansion von verkürzten IPv6-Adressen und zur Konvertierung zwischen BigInt und lesbaren IPv6-Strings.
Funktionsweise und Praktische Relevanz
Der Rechner bietet Radiobuttons zur Auswahl zwischen IPv4 und IPv6. Der Nutzer gibt eine IP-Adresse und die entsprechende Subnetzmaske (für IPv4) oder Präfixlänge (für IPv4/IPv6) ein. Nach dem Klick auf "Berechnen" werden die detaillierten Netzwerkparameter sofort angezeigt. Dazu gehören:
- **Netz-ID / Netzwerk-Präfix:** Die Startadresse des Subnetzes.
- **Broadcast-Adresse (nur IPv4):** Die letzte Adresse im Subnetz, die für Broadcasts verwendet wird.
- **Erste und letzte nutzbare Host-IP:** Der Bereich der Adressen, die an Endgeräte vergeben werden können.
- **Anzahl nutzbarer Hosts / Adressen im Bereich:** Die Gesamtzahl der verfügbaren IP-Adressen im Subnetz.
- **Subnetzmaske in Dezimal- und Binärform (IPv4):** Zur besseren Veranschaulichung.
- **CIDR-Notation:** Die kompakte Darstellung der Netzwerkgröße.
Das Tool ist ein essenzielles Hilfsmittel für Netzwerkadministratoren, die täglich mit IP-Adressierung und der Segmentierung von Netzwerken arbeiten.
Bezug zur Fachinformatiker-Ausbildung
Dieses interaktive Projekt unterstreicht meine Kompetenzen in kritischen Bereichen der Fachinformatiker-Ausbildung:
- **LF03: Clients in Netzwerke einbinden:** Grundlegendes Verständnis der IP-Adressierung und Subnetze für die Integration von Clients.
- **LF09: Netzwerke und Dienste bereitstellen:** Kernkompetenz bei der Planung, Konfiguration und Segmentierung von Netzwerken, sowohl in kleinen als auch in großen Umgebungen.
- **LF12b: Kundenspezifische Systemintegration durchführen:** Die Entwicklung eines Tools zur Lösung eines spezifischen Bedarfs ist ein Beispiel für kundenzentrierte Lösungsfindung.
- **LF-PV-2: Prüfungsbereich 3 Analyse und Entwicklung von Netzwerken:** Das Tool unterstützt die Vertiefung von Prüfungsinhalten, die sich mit Netzwerkberechnungen befassen.
- **Webentwicklung (HTML, CSS, JavaScript):** Demonstriert meine Fähigkeiten in der Frontend-Entwicklung und im Aufbau interaktiver Webanwendungen.
- **Problemlösung & Logisches Denken:** Die Implementierung komplexer mathematischer und bitweiser Logik in JavaScript zeigt ausgeprägte Problemlösungsfähigkeiten.
Die Bereitstellung dieses Rechners direkt auf meiner Website dient als direkter Beweis meiner praktischen Fähigkeiten in der Netzwerktechnik und der Webentwicklung.
Projekt 8: IT-Wissen Test – Interaktive Wissensüberprüfung
Dieser interaktive IT-Wissen Test wurde entwickelt, um Besuchern meiner Website die Möglichkeit zu geben, ihr Wissen in verschiedenen Bereichen der Fachinformatik spielerisch zu überprüfen. Jedes Mal, wenn der Test gestartet wird, werden Fragen zufällig aus einem größeren Pool ausgewählt, was für Abwechslung sorgt. Das Projekt demonstriert meine Fähigkeiten in der Frontend-Entwicklung mit JavaScript und im Aufbau benutzerfreundlicher interaktiver Webanwendungen.
Anwendung direkt testen
Fordern Sie Ihr IT-Wissen heraus:
Test starten(Klicken Sie, um das Quiz in einem neuen Tab zu öffnen und zu testen.)
Nach Beantwortung der Fragen erhalten Sie sofortiges Feedback zu jeder einzelnen Antwort sowie eine Gesamtauswertung, um Ihren aktuellen Wissensstand einzuschätzen.
Vollständige Projektdokumentation anzeigen
Motivation und Zielsetzung
Als angehender Fachinformatiker ist das kontinuierliche Überprüfen und Festigen von Fachwissen entscheidend. Ich wollte ein Tool schaffen, das nicht nur informativ ist, sondern auch eine **interaktive Lernplattform** bietet. Die Ziele dieses Projekts waren:
- **Wissensüberprüfung:** Besuchern ermöglichen, ihr Fachwissen zu testen.
- **Abwechslungsreicher Fragenpool:** Zufällige Auswahl und Mischen der Fragen für jeden Durchlauf.
- **Sofortiges Feedback:** Direkte Rückmeldung zu jeder beantworteten Frage.
- **Vertiefung von JavaScript:** Praktische Anwendung fortgeschrittener JavaScript-Konzepte.
Technologien und Architektur
Der IT-Wissen Test ist als reines Frontend-Projekt entwickelt und nutzt folgende Webtechnologien:
- **HTML5:** Strukturierung des Quiz-Layouts, der Fragen und Antwortoptionen.
- **CSS3:** Styling des Quiz-Designs, Anpassung an das Gesamtlayout der Website und Implementierung von visuellen Hinweisen für richtig/falsch. Die Responsivität gewährleistet eine gute Darstellung auf verschiedenen Geräten.
- **JavaScript:** Die gesamte Logik des Quiz ist in JavaScript implementiert:
- **Fragenmanagement:** Speicherung eines umfangreichen Fragenpools mit Optionen, korrekten Antworten und Feedback.
- **Zufallsauswahl & Mischen:** Implementierung des Fisher-Yates (Knuth) Shuffle-Algorithmus, um Fragen zufällig zu mischen und eine bestimmte Anzahl für jeden Test auszuwählen.
- **Dynamisches Rendering:** Fragen und Antwortoptionen werden dynamisch in die HTML-Struktur geladen.
- **Antwortprüfung & Feedback:** Auswertung der Benutzerantworten, Berechnung der Punktzahl und Anzeige von individuellem Feedback (richtig/falsch, Korrektur und Erklärung) für jede Frage.
- **Benutzerinteraktion:** Handling von Button-Klicks für "Ergebnisse anzeigen" und "Neu starten".
- **Font Awesome:** Integration von Icons zur visuellen Unterstützung von Feedback und Buttons.
Funktionsweise und Pädagogischer Nutzen
Der Test beginnt mit einer zufälligen Auswahl von Fragen aus dem hinterlegten Pool. Benutzer wählen ihre Antworten per Radiobutton aus. Nach dem Klicken auf "Ergebnisse anzeigen" geschieht Folgendes:
- Jede Frage zeigt sofort an, ob die gewählte Antwort korrekt oder falsch war.
- Bei einer falschen Antwort wird die korrekte Lösung und eine kurze Erklärung angezeigt.
- Ein Gesamtpunktestand wird am Ende präsentiert.
- Die Radiobuttons werden deaktiviert, um weitere Änderungen zu verhindern, bis der Test neu gestartet wird.
Dieses sofortige und detaillierte Feedback ist pädagogisch wertvoll, da es den Lernenden direkt auf Fehler hinweist und die korrekte Information liefert. Der zufällige Fragenpool fördert das Wiederholen und Verinnerlichen des Wissens.
Bezug zur Fachinformatiker-Ausbildung
Dieses Projekt ist ein hervorragender Beleg für meine umfassenden Fähigkeiten, die direkt mit der Ausbildung zum Fachinformatiker für Systemintegration zusammenhängen:
- **LF-PV-2: Prüfungsbereich 2/3/4 (schriftliche Prüfungen):** Das Quiz kann direkt zur Vorbereitung auf die theoretischen Prüfungsteile genutzt werden und deckt typische Fragestellungen ab.
- **LF07: Anwendungen kundenorientiert entwickeln und anpassen:** Zeigt die Fähigkeit, interaktive Anwendungen auf Basis von Benutzeranforderungen zu entwickeln.
- **Webentwicklung (HTML, CSS, JavaScript):** Demonstriert fundierte Kenntnisse in Frontend-Technologien.
- **Problemlösung & Logisches Denken:** Die Implementierung der Quiz-Logik, der Zufallsauswahl und des Feedbacks zeigt starke analytische Fähigkeiten.
- **Pädagogisches Geschick:** Die Konzeption eines Lernwerkzeugs zeigt die Fähigkeit, Wissen zu strukturieren und zu vermitteln.
Dieses interaktive Tool unterstreicht meine praktische Kompetenz im Bereich der Webentwicklung und mein Engagement, Wissen zu teilen und zu festigen.