Odkazy
GitHub (edukačný projekt): Prehľad
Používatelia môžu pridávať, upravovať a mazať transakcie vrátane názvu, sumy, poznámky a IP adresy klienta. Zmeny sa okamžite synchronizujú medzi všetkými pripojenými klientmi, pričom kompletná história transakcií je perzistentne uložená v databáze MySQL.
Architektúra
Aplikácia je kontajnerizovaný Flask systém nasadený na AKS. Flask beží ako Kubernetes Deployment, MySQL ako StatefulSet s PersistentVolumeClaim pre trvalé úložisko. NGINX Ingress zabezpečuje verejný prístup a cert-manager spolu s Let's Encrypt automatizuje TLS certifikáty. Docker image sú uložené v Azure Container Registry (ACR).
Frontend
Server-side renderované HTML (Jinja2 templates) štýlované pomocou Tailwind CSS a doplnené o JavaScript. UI využíva Socket.IO na prijímanie a vysielanie real-time aktualizácií a obsahuje client-side validáciu aj interaktívne modálne okná.
Backend
Backend je postavený na Flask a poskytuje server-side rendering aj REST endpointy pre prácu s transakciami. Flask-SocketIO zabezpečuje real-time synchronizáciu. Dáta sú uložené v MySQL a celkové výdavky sa počítajú cez samostatný endpoint.
Funkcie
CRUD správa transakcií, real-time synchronizácia cez Socket.IO, výpočet celkových výdavkov, client-side vyhľadávanie v tabuľke, filtrovanie podľa IP adresy, triedenie podľa dátumu (vzostupne/zostupne), toast notifikácie a vizuálne zvýraznenie nových záznamov.
Nasadenie
Nasadenie prebieha na Microsoft Azure s využitím AKS a ACR. Kubernetes konfigurácia zahŕňa Deployment (Flask), StatefulSet + PVC (MySQL), Services, Secrets/ConfigMaps (env + init.sql) a NGINX Ingress s TLS konfiguráciou pre staging aj production. Build a deploy proces je automatizovaný skriptmi.
Spracovanie AI
AI nástroje boli využité pri návrhu bezpečnostných patternov, pochopení Kubernetes/AKS konceptov a riešení problémov počas nasadzovania.
Bezpečnosť
CSRF ochrana cez Flask-WTF/CSRFProtect, server-side validácia pomocou WTForms, základná sanitizácia vstupov proti injection/XSS, ochrana cez Jinja2 autoescaping a HTTPS zabezpečené pomocou cert-manager a Let's Encrypt.
Testovanie
Manuálne testovanie zamerané na CRUD operácie, real-time synchronizáciu medzi klientmi, perzistenciu dát v databáze a správne fungovanie HTTPS ingress vrstvy.
Spolupráca
Samostatný projekt realizovaný end-to-end.