Milo Radio App
Milo Radio App
×

Milo Radio App

Milo Radio – Die neue Generation der Progressive Web App (PWA) Dieses Projekt ist eine vollwertige, moderne Audio-Streaming-Plattform, die als installierbare Progressive Web App (PWA) mit Single-Page-Architektur (SPA) und performantem REST-Backend realisiert wurde. Die Highlights im Überblick: • Frontend & PWA-Architektur: Modulares ES6-Komponentensystem mit dynamischem Routing, optimierten Touch-/Swipe-Gesten und Randschutz für Mobilgeräte. Der Service Worker (sw.js) mit Network-First-Strategie ermöglicht blitzschnelle Updates und Offline-Verfügbarkeit. • Globale Sticky-Bottom-Player-Bar: Unterbrechungsfreie Audiowiedergabe über alle Unterseiten hinweg mit modernem Glassmorphismus, animiertem Soundwave-Badge und Live-ICY-Metadaten (Songtitel, Interpret, Cover-Art). • Podcast-Integration & On-Demand Audio: Intelligente Unterscheidung zwischen Live-Streams und Episoden. Echtes Pause & Resume mit exaktem Zeiterhalt (kein Zurücksetzen auf 0:00), interaktive Scrubber-Timeline mit sekundengenauer Fortschrittsanzeige (Aktuelle Zeit / Gesamtlänge), 15-Sekunden Quick-Skip (-15s / +15s) sowie eine aufklappbare Episodenübersicht ("Weitere Folgen") in der Genre-Ansicht mit individueller Wiedergabe. • Weltweite Radiosendersuche (> 40.000 Sender) & Auto-Import: Integrierte Radio-Browser-Schnittstelle im Admin-Panel (Tab-System). Sekundenschnelle Live-Suche im globalen Verzeichnis mit Treffer-Pool inkl. Senderlogo, Genre, Bitrate und Herkunftsland zur zielsicheren Unterscheidung gleichnamiger Sender. 1-Klick Auto-Fill übernimmt alle Stream- und Bilddaten direkt in das Speicherformular; ergänzt durch einen 1-Klick Podcast-Auto-Import für RSS-/Podigee-Feeds. • Smartes Favoriten-Management: Lokale Top-6-Senderliste mit automatischem Verdrängungsprinzip (FIFO) und MRU-Sortierung (Most Recently Used). Beim Abspielen rückt der Sender mit sanftem Auto-Scroll sofort auf Platz #1 vor; ein berührungsfreundlicher 2-Klick-Button im Slate-Look ermöglicht sicheres Entfernen. • Deep Analytics Dashboard (Chart.js): Umfassende persönliche Hörerstatistiken mit interaktivem Hörverlauf (Liniendiagramm), Top-5-Sendern (Balkendiagramm) und Genre-Verteilung (Doughnut-Chart) über verschiedene Zeitfilter (Heute, Woche, Monat). • Personalisierte Empfehlungen & 1-Klick-Playlist: Dynamische Genre-Erkennung basierend auf dem individuellen Hörverhalten ("Empfehlungen für dich") mit Direkt-Play sowie die 1-Klick-Übernahme der Top 5 in die aktive Senderliste inklusive Floating-Toast-Feedback. • Abgesichertes Admin-Panel & Wartung: PIN-Authentifizierung mit 1,5s Verzögerung, automatischem 5-Minuten-Lockout (Brute-Force-Schutz) und signierten HMAC-SHA256 Cookies für Cluster-Sessions. Echtzeit-Hörer-Tracking (10-Minuten-Fenster), persistente Sender-CRUD in MySQL und automatisierter Archivierungs-Cronjob (maintenance.php) für 6-monatige Bereinigung. • Performantes REST-Backend: Entwickelt mit PHP 8 und sicherer PDO-Datenbankanbindung an MySQL / MariaDB (inkl. automatischer Umgebungserkennung für lokale Entwicklung und Strato-Produktion) sowie Server-Side-Caching (10 Min. für Sendersuche, 15 Min. für Podcast-Feeds).


Tech-Stack: Vanilla JS (ES6 Modules), PWA, PHP 8 (REST API), MySQL/MariaDB (PDO), Radio-Browser API, Podcast RSS, Chart.js, Bootstrap 5
×

Strukturplan

Lade Diagramm...
Klicken zum Vergrößern
### Milo Radio – Fullstack PWA-, Streaming- & Podcast-Architektur Milo Radio kombiniert eine performante, clientseitige Single Page Application (SPA) mit einem leichtgewichtigen, hochgradig optimierten PHP-8-REST-Backend, relationaler MySQL/MariaDB-Persistenz und Schnittstellen zu globalen Audio-Verzeichnissen. **Technische Kernaspekte:** - **Podcast-Integration & On-Demand Audio:** - *Intelligente Stream-Erkennung:* Die App unterscheidet automatisch zwischen endlosen Live-Streams und zeitbegrenzten Podcast-Episoden (`podcastService.js`). - *Echtes Pause & Resume mit Zeiterhalt:* Beim Pausieren von Podcasts bleibt die aktuelle Spielzeit (`currentTime`) im HTML5-Audio-Element exakt erhalten. Beim Fortsetzen spielt die Episode an genau derselben Stelle weiter (kein versehentliches Zurücksetzen auf 0:00). - *Interaktive Scrubber-Timeline:* Bei Podcast-Wiedergabe schaltet die Player-Bar dynamisch eine sekundengenaue Zeitleiste (`Aktuelle Zeit / Gesamtlänge`) frei, über die frei vor- und zurückgesprungen werden kann. - *15-Sekunden Quick-Skip:* Tasten für `-15s` und `+15s` ermöglichen schnelles Überspringen oder Wiederholen von Passagen. - *Episodenauswahl in der Genre-Ansicht:* Podcast-Karten bieten neben dem Sofortstart der neuesten Episode den Button *"Weitere Folgen"*, der eine aufklappbare Liste der letzten Episoden samt Publikationsdatum, Laufzeit und Einzel-Play-Button anzeigt. - *Server-seitiger RSS-Feed-Resolver (`podcast.php`):* Parst XML/RSS-Feeds mit Namespace-Unterstützung (`itunes:image`, `itunes:duration`, `enclosure`) und nutzt einen 15-Minuten Server-Cache zur Entlastung externer Hosts und für minimale Ladezeiten. - **Weltweite Online-Radiosendersuche (> 40.000 Sender) & Admin-Tab-System:** - *Echtzeit-Verzeichnissuche (`radio_search.php`):* Ermöglicht im Admin-Panel das Durchsuchen des weltweiten Radio-Browser-Verzeichnisses mit über 40.000 Stationen in Sekundenbruchteilen (inkl. 10-Minuten Server-Cache). - *Treffer-Pool mit Länderunterscheidung:* Suchergebnisse zeigen neben Name, Genre, Bitrate und Favicon/Logo das **Herkunftsland (Country-Flag)** an. Dies ermöglicht es dem Administrator, bei Sendern mit identischen oder ähnlichen Namen (z. B. "Rock Antenne", "Sunshine Live", "1LIVE", "BBC") zielsicher den gewünschten Sender auszuwählen. - *1-Klick Auto-Fill:* Ein Klick auf *"Übernehmen"* füllt alle Formularfelder (Name, Audio-Stream-URL, Genre, Logo) automatisch aus. - *1-Klick Podcast-Auto-Import:* Importiert beliebige RSS-/Podigee-Links und extrahiert Metadaten und Stream-URL vollautomatisch. - *Übersichtliches Tab-System:* Klare Trennung zwischen *"Radiosender suchen"* und *"Podcast importieren"* mit schlichter Bootstrap-Icons-Typografie. - **PWA & Network-First Caching:** - Der Service Worker (`sw.js`) erzwingt eine strikte Network-First-Strategie für HTML, Skripte und Versionierungs-Header mit automatischer Neuinitialisierung bei Updates (`controllerchange`). Dadurch bleibt die App offlinefähig und garantiert gleichzeitig sofortige Updates auf Smartphones. - **Modulare ES6-SPA & Gestensteuerung:** - Dynamisches View-Routing ohne Page-Reloads. Native Touch- und Swipe-Gesten ermöglichen intuitives Wechseln der Ansichten inklusive 10 % Randschutz zur Vermeidung von Konflikten mit nativen Smartphone-Gesten. - **Globale Sticky-Bottom-Player-Bar:** - Entkoppelt von Seitenwechseln bleibt die Audiowiedergabe stets aktiv. Über den Backend-Metadaten-Proxy (`metadata.php`) werden ICY-Stream-Titeldaten in Echtzeit abgefragt und mit Cover-Artworks und animierter Soundwave visualisiert. - **Intelligentes Favoriten-Handling (`userStationService.js`):** - Clientseitige Verwaltung im `localStorage` mit Top-6-Begrenzung und automatischem FIFO-Verdrängen älterer Sender. Beim Abspielen rückt der aktive Sender nach dem MRU-Prinzip (Most Recently Used) auf Platz #1 vor (inkl. sanftem Auto-Scroll). Ein moderner 2-Klick-Bestätigungsdialog im dezenten Slate-Look verhindert versehentliches Löschen. - **Deep Analytics & Personalisierte Empfehlungen (Chart.js):** - Detaillierte Auswertungen des individuellen Hörverhaltens über Liniendiagramme, Top-5-Balken und Genre-Doughnut. Die Recommendation-Engine schlägt passende neue Sender basierend auf den Lieblingsgenres vor; mit der **1-Klick-Playlist-Übernahme** können die Top-5-Stationen direkt als aktive Favoritenliste übernommen werden. - **Admin-Sicherheit & Automatisierte Wartung:** - PIN-Authentifizierung mit künstlicher 1,5s Verzögerung sowie 5-Minuten-Lockout nach 5 Fehleingaben. Sichere, signierte HMAC-SHA256 Cookies (`milo_admin_token`) garantieren zuverlässige Sessions auch auf Shared-Hosting FastCGI-Clustern. Das Wartungsskript `maintenance.php` komprimiert Hörer-Events älter als 6 Monate in die Tabelle `archived_stats` und führt ein `OPTIMIZE TABLE` durch.
Scrum Quiz App
Scrum Quiz App
×

Scrum Quiz App

Scrum Quiz – Interaktive Vorbereitung auf PSM1-Zertifizierungen Dieses Projekt ist ein interaktives Quiz-Tool, das speziell dafür entwickelt wurde, Scrum-Wissen zu testen und sich gezielt auf Prüfungen wie die Professional Scrum Master I (PSM I) vorzubereiten. Die Highlights: • Mehrsprachig: Bietet Unterstützung für Deutsch und Englisch (questions_de.json / questions_en.json). • Konfigurierbar: Die Anzahl der Fragen kann individuell (1-120) festgelegt werden. • Dynamischer Timer: Der Zeitdruck passt sich automatisch an die gewählte Fragenanzahl an. • Quiz wiederholen: Ermöglicht das sofortige erneute Starten mit denselben Einstellungen. • Dynamische Engine: Eine JavaScript-basierte Logik verwaltet den Pool, berechnet Ergebnisse in Echtzeit und bietet Feedback inkl. Korrekturhinweisen. • Modernes Design: Minimalistisches, reaktionsfähiges UI (style.css), optimal für Desktop und Mobile. • Client-Side: Die gesamte Logik läuft im Browser (bereitgestellt über Strato). Technisch besticht das Projekt durch seine Modularität, wobei JSON-Datenstrukturen für eine saubere Trennung von Inhalten und Logik sorgen.


Tech-Stack: HTML, CSS, JavaScript
×

Strukturplan

Lade Diagramm...
Klicken zum Vergrößern
### Interactive Exam Engine Die Scrum Quiz App nutzt eine **Stateful Engine**, die den Prüfungsstatus in Echtzeit verwaltet. **Architektur-Highlights:** - **Encapsulation:** Die Prüfungsfragen sind strikt von der Logik getrennt und werden dynamisch geladen. - **Real-time Processing:** Das System validiert Antworten on-the-fly, ohne die Seite neu laden zu müssen. - **Data Integrity:** Durch die Verwendung von strukturierten Datenquellen ist die Erweiterung um neue Fragenkataloge nahtlos möglich.
SmartCalc – Taschenrechner
×

SmartCalc – Taschenrechner

SmartCalc – Wissenschaftlicher Web-Rechner mit Python & Flask Dieser wissenschaftliche Taschenrechner hat sich von einer Desktop-Anwendung zu einer modernen Web-App entwickelt. Er bietet mathematische Präzision gepaart mit einem eleganten Web-UI. Die Highlights: • Sicherer Rechen-Parser: Eine serverseitige Logik mit Whitelist-Validierung und RegEx-Preprocessing verhindert Code-Injection und sorgt für Stabilität. • Erweiterte Mathematik: Volle Unterstützung für komplexe Operationen wie Trigonometrie (sin, cos, tan), Logarithmen (log, ln), Wurzeln (√) und Potenzen (^). • Modernes Web-UI: Ein intuitives Glassmorphism-Design, das für Desktop und Mobile optimiert ist, inklusive Dark- & Light-Mode Support. • Intelligenter Verlauf: Eine REST-API gesteuerte Historie ermöglicht das Einsehen und Verwalten vergangener Berechnungen direkt im Browser. • Performance: Durch die serverseitige Berechnung in Python bleibt das Interface flüssig und zuverlässig. Technisch demonstriert das Projekt die Portierung komplexer mathematischer Logik in eine moderne Web-Umgebung mittels Flask, Jinja2 und Vanilla JS.


Tech-Stack: Python (Flask), Jinja2, CSS, JS
×

Strukturplan

Lade Diagramm...
Klicken zum Vergrößern
### Modulare Berechnungs-Architektur Die SmartCalc App folgt dem **Model-View-Controller (MVC)** Muster innerhalb eines autonomen Moduls. **Highlights:** - **Entkopplung:** Das UI kommuniziert ausschließlich über eine RESTful API mit der Logik. - **Sicherer Parser:** Die mathematische Engine validiert Eingaben über eine Whitelist, bevor sie berechnet werden. - **Modularität:** Das gesamte Modul ist als Flask Blueprint gekapselt und kann einfach in andere Systeme migriert werden.
Portfolio-Flask
Portfolio-Flask
×

Portfolio-Flask

Portfolio-Flask – Modernes Webdesign & Modulare Architektur Diese Portfolio-Anwendung ist das Schaufenster meiner Arbeit und gleichzeitig ein Beweis für meine Fähigkeiten in der Fullstack-Entwicklung. Sie vereint ein ästhetisches Design mit einer hochmodernen, modularen technischen Architektur. Die Highlights: • Zentrales Projekt-Hub: Das Portfolio dient als primäre Basis, über die verschiedene eigenständige Projekte (Scrum Quiz, Livio, SmartCalc) modular auf derselben Domain gebündelt werden. • Modulare Blueprint-Architektur: Durch den nahtlosen Einsatz von Flask-Blueprints wird eine saubere Trennung und einfache Erweiterbarkeit des gesamten Ökosystems gewährleistet. • Dynamische Content-Verwaltung: Inhalte wie Projektdaten und der "About Me" Text werden über JSON und Markdown gesteuert, was eine strikte Trennung von Logik und Inhalt ermöglicht. • Premium Design System: Ein konsequentes Dark-Mode-Konzept mit CSS-Gradients, Glassmorphism-Effekten und flüssigen Animationen sorgt für eine hochwertige Nutzererfahrung. • Automatisierte Kontakt-Engine: Ein integriertes Formular mit Flask-Mail Anbindung ermöglicht die direkte und sichere Kommunikation. • Responsive Architektur: Durch intelligente CSS-Breakpoints und ein flexibles Container-Modell passt sich die App perfekt an alle Endgeräte an. Technisch basiert die App auf Python und Flask, nutzt eine modulare Struktur zur Integration verschiedener Web-Module und implementiert moderne SEO- sowie Performance-Standards.


Tech-Stack: Python (Flask), Jinja2, CSS, JS
×

Strukturplan

Lade Diagramm...
Klicken zum Vergrößern
### Die Hub-and-Spoke Architektur Dieses Portfolio basiert auf einer **Clean Architecture**. Der zentrale Kern (Controller) orchestriert den Datenfluss zwischen den verschiedenen spezialisierten Modulen (Spokes). **Vorteile dieses Ansatzes:** - **Sicherheit:** Strikte Trennung von Geschäftslogik und Datenhaltung. - **Skalierbarkeit:** Neue Features (wie der Taschenrechner oder das Quiz) lassen sich als unabhängige Blueprints integrieren. - **Wartbarkeit:** Klare Abhängigkeiten ohne zirkuläre Referenzen.
Online-Bibliothek mit Ollama-Einbindung
Online-Bibliothek mit Ollama-Einbindung
×

Online-Bibliothek mit Ollama-Einbindung

Online-Bibliothek – Sichere Webverwaltung mit RAG-KI-Bibliothekar Dieses Projekt demonstriert eine hochmoderne, sichere Bibliotheksplattform, die klassisches Web-CRUD mit modernster Künstlicher Intelligenz (Retrieval-Augmented Generation) vereint. Die Highlights im Überblick: • Rollenbasierter Zugriff (RBAC): Differenzierte Berechtigungen und Dashboards für "Mitarbeiter" (CRUD-Verwaltung von Kunden inkl. Aktivitätsstatus `ist_aktiv`, Buch- & E-Book-Bestand, globale Verleih- und Rückgabeübersicht) und "Kunden" (physische Buchausleihe nach Bestand, digitale E-Book-Lizenzierung, In-Browser PDF-Reader). • RAG-basierter KI-Bibliothekar: Interaktiver Chatbot auf Basis von `gemma4:31b` via Ollama-API, der anhand des realen Buchbestands und kompakter Buch-Zusammenfassungen maßgeschneiderte Leseempfehlungen formuliert. • Token-Ökonomie & Antwort-Cache: Striktes Antwortbudget (`max_tokens: 500`) für leserfreundliche 3-Absatz-Antworten, bis zu 80 % Input-Token-Einsparung durch Kontext-Kompression sowie SQLite-Antwort-Cache (`ki_cache`), der wiederholte Fragen latenzfrei (0,01s) und ohne Tokenverbrauch beantwortet. • Ausfallschutz (Graceful Degradation): Intelligenter Heuristik-Fallback auf eine integrierte Katalogsuche bei Ausfall, Timeout oder Rate-Limits des KI-Dienstes für 100 % ausfallsichere Vorführungen. • KI-PDF-Analyse & Sammel-Import: Beim Upload extrahiert der integrierte PDF-Parser den Text und lässt Metadaten (Titel, Autor, ISBN, Zusammenfassungen) von der KI generieren. Enthält eine PDF mehrere Bücher oder Nutzer, werden diese per Sammel-Import automatisch in einem einzigen Durchlauf erfasst und in der Datenbank angelegt. • E-Mail-Verifikationsworkflow: Zwei-Schritt-Registrierung mit 6-stelligem Verifizierungstoken vor der individuellen Passwortvergabe. • Enterprise-Sicherheitsstandards: Durchgängiger Schutz vor SQL-Injection mittels Prepared Statements, konsequente XSS-Maskierung dynamischer Inhalte, BCRYPT-Passworthashing und restriktive Session-/Cache-Control-Header (`no-store, no-cache`) gegen Browser-Verlaufsangriffe. • Datenintegrität: Relationales SQLite3-Schema mit kaskadierender Bereinigung (`ON DELETE CASCADE`) verknüpfter Ausleihen und Analysen.


Tech-Stack: Python (Flask), SQLite3, Bootstrap 5, Ollama AI (RAG), Jinja2, pypdf
×

Strukturplan

Lade Diagramm...
Klicken zum Vergrößern
### RAG-gestützte Bibliotheks-Architektur & Sicherheitsstandards Die Online-Bibliothek ist als modulares Flask-Blueprint konzipiert und vereint Enterprise-Web-Architektur mit einem ausfallsicheren RAG-System (Retrieval-Augmented Generation). **Technische Kernaspekte & Features:** - **RAG-Integration & Token-Ökonomie:** Bei Benutzeranfragen injiziert das System den aktuellen Buchbestand und komprimierte Buchanalysen als Kontext in den System-Prompt für das LLM (`gemma4:31b`). Durch Kontext-Kompaktierung (Kürzung auf max. 180 Zeichen, Verzicht auf rohe Inhaltsverzeichnisse) wird der Input-Token-Verbrauch um bis zu 80 % gesenkt. Das Antwortbudget ist auf `max_tokens: 500` für prägnante 3-Absatz-Antworten optimiert. - **Smartes Antwort-Caching (`ki_cache`):** Jede KI-Anfrage wird als SHA256-Hash in der SQLite-Tabelle `ki_cache` hinterlegt. Wiederholte oder identische Fragen werden mit 0 Token-Kosten in nur 0,01 Sekunden beantwortet. - **Graceful Degradation (Ausfallschutz):** Sollte der Ollama-Dienst offline, überlastet oder ratelimited sein, greift automatisch eine heuristische SQL-Katalogsuche (`LIKE`-Query), die passende Bücher aus dem Bestand liefert. - **KI-gestützte PDF-Analyse & Sammel-Import:** Der integrierte Parser liest hochgeladene PDFs serverseitig aus und erfasst via KI Titel, Autor, ISBN und Zusammenfassungen. Enthält ein Dokument mehrere Bücher oder Nutzerdatensätze, erkennt das System diese Strukturen und legt alle Entitäten vollautomatisch in einem einzigen Durchlauf an. - **Enterprise-Sicherheit & Datenintegrität:** - **SQL-Injection-Prävention:** Konsequenter Einsatz parametrisierter SQL-Abfragen (Prepared Statements). - **XSS-Schutz:** Vollständige Maskierung aller dynamischen Ein- und Ausgaben mittels HTML-Escaping. - **Passwortsicherheit:** Sicheres Passworthashing via BCRYPT mit individuellen Salts. - **Session- & Cache-Schutz:** Vollständiges Zerstören von Sessions beim Logout und restriktive `Cache-Control`-Header (`no-store, no-cache`), um Ausspähen über die Browser-Historie zu unterbinden. - **Relationale Integrität:** Fremdschlüsselbeziehungen mit automatischer Kaskadierung (`ON DELETE CASCADE`) zur sauberen Bereinigung abhängiger Datensätze.
×