Links
GitHub (bildungsorientiert): Überblick
Benutzer können Transaktionen mit Titel, Betrag, Notiz und der IP-Adresse des Clients hinzufügen, bearbeiten und löschen. Aktualisierungen werden in Echtzeit an alle verbundenen Clients über Socket.IO weitergegeben, während die vollständige Transaktionshistorie in einer MySQL-Datenbank gespeichert wird.
Architektur
Die Anwendung ist ein containerisierter Flask-System, der auf AKS bereitgestellt wird. Die Flask-App läuft als Kubernetes Deployment, während MySQL als StatefulSet mit einem PersistentVolumeClaim für dauerhafte Speicherung läuft. Der Cluster verwendet NGINX Ingress, um die App zu exponieren, und cert-manager + Let's Encrypt, um TLS-Zertifikate zu automatisieren. Container-Images werden im Azure Container Registry (ACR) gespeichert.
Frontend
Serverseitig gerendertes HTML (Jinja2-Vorlagen) mit Tailwind CSS stilisiert und mit JavaScript erweitert. Die Benutzeroberfläche verwendet Socket.IO, um Echtzeit-Updates zu empfangen und zu senden, und umfasst clientseitige Validierung und interaktive Modals.
Backend
Ein Flask-Backend bietet serverseitiges Rendering und REST-Endpunkte für Transaktionsoperationen sowie Flask-SocketIO für Echtzeit-Synchronisation. Transaktionsdaten werden in MySQL gespeichert und die Gesamtausgaben werden über einen dedizierten Endpunkt berechnet.
Funktionen
CRUD-Transaktionsverwaltung, Echtzeit-Multi-Client-Updates über Socket.IO, Gesamtausgabenberechnung, clientseitige Tabellensuchfilter, IP-basierte Transaktionsfilterung, Datumssortierung (aufsteigend/absteigend), Toast-Benachrichtigungen für Echtzeit-Aktionsfeedback und neue Zeilen-Highlight-Animation.
Bereitstellung
Bereitgestellt auf Microsoft Azure mit AKS und ACR. Zu den Kubernetes-Ressourcen gehören ein Deployment (Flask), StatefulSet + PVC (MySQL), Services, Secrets/ConfigMaps (Env + init.sql) und NGINX Ingress mit Staging/Production TLS-Manifesten. Der Bereitstellungsprozess wird durch Skripte automatisiert, die Bilder erstellen/pushen und Manifeste anwenden.
AI-Verarbeitung
KI-Tools wurden verwendet, um Sicherheitsmuster zu generieren, Kubernetes/AKS-Konzepte zu verstehen und Bereitstellungsprobleme zu beheben.
Sicherheit
CSRF-Schutz durch Flask-WTF/CSRFProtect, serverseitige Validierung mit WTForms, clientseitige Eingabeprüfungen, grundlegende Eingabebereinigung zur Reduzierung von Injektions-/XSS-Risiken und XSS-Minderung durch Jinja2-Autoescaping. HTTPS wird durch cert-manager und Let's Encrypt aktiviert.
Testen
Manuelles Testen mit Fokus auf CRUD-Abläufe, Echtzeit-Synchronisation zwischen Clients, Datenbankpersistenz und HTTPS-Ingress-Verhalten.
Zusammenarbeit
Einzelprojekt (von Anfang bis Ende erstellt)