diff --git a/z2/README.md b/z2/README.md new file mode 100644 index 0000000..d4a2189 --- /dev/null +++ b/z2/README.md @@ -0,0 +1,105 @@ +# 📚 Hate Speech Bot – Dokumentácia + +## 🔍 Opis aplikácie + +Ide o kompletný systém na detekciu nenávistných správ v prostredí Telegramu. Obsahuje Telegram bota, ktorý analyzuje správy, zaznamenáva porušenia do databázy MySQL, a webovú aplikáciu (Flask), ktorá tieto dáta zobrazuje v reálnom čase. Webová stránka sa automaticky aktualizuje každých 5 sekúnd a zobrazí najnovších porušovateľov. + +--- + +## 📦 Zoznam použitých kontajnerov + +| Kontajner | Popis | +|--------------------------------------|-------| +| `tetianamohorian/hate-speech-bot` | Obsahuje Telegram bota a Flask webovú aplikáciu v jednom kontajneri. | +| `mysql:8` | Databázový server pre ukladanie porušení. | + +--- + +## ☸️ Zoznam Kubernetes objektov + +| Objekt | Popis | +|----------------------------|-------| +| `Namespace: botspace` | Oddelený menný priestor pre všetky objekty aplikácie. | +| `Deployment: bot-deployment` | Spúšťa Telegram bota. | +| `Deployment: flask-web` | Spúšťa webovú aplikáciu. | +| `StatefulSet: mysql` | Stabilné nasadenie MySQL databázy s uchovaním dát. | +| `PersistentVolume` | Trvalý zväzok na fyzickom disku pre MySQL. | +| `PersistentVolumeClaim` | Požiadavka na disk pre MySQL. | +| `Service: mysql` | Interný prístup k databáze z iných podov. | +| `Service: flask-service` | Sprístupňuje Flask web cez port-forward. | +| `ConfigMap: init-sql` | Obsahuje SQL skript na inicializáciu databázy. | +| `Secret: bot-secret` | Bezpečne uchováva Telegram API token. | + +--- + +## 🌐 Virtuálne siete a pomenované zväzky + +- Všetky pod-y komunikujú v internej sieti v rámci `botspace`. +- `PersistentVolume` pripojený k MySQL cez `PersistentVolumeClaim` zabezpečuje trvalé uloženie údajov v `/var/lib/mysql`. + +--- + +## ⚙️ Konfigurácia kontajnerov + +- `flask-web` je nakonfigurovaný na porte `5000`, ktorý je sprístupnený cez službu `flask-service`. +- `bot-deployment` využíva `Secret` na získanie Telegram tokenu. +- `mysql` inicializuje databázu automaticky pomocou `initContainer` a `ConfigMap` so SQL skriptom. + +--- + +## 🛠️ Návod na použitie + +### ✅ Príprava aplikácie: + +```bash +bash prepare-app.sh +``` + +➡️ Vytvorí Docker image a pushne ho na Docker Hub. + +--- + +### 🚀 Spustenie aplikácie: + +```bash +bash start-app.sh +``` + +➡️ Vytvorí všetky Kubernetes objekty a spustí port-forward (napr. na `localhost:8080`). + +--- + +### ⏸️ Pozastavenie aplikácie (port-forward): + +```bash +pkill -f "kubectl port-forward" +``` + +--- + +### ❌ Odstránenie celej aplikácie: + +```bash +bash stop-app.sh +``` + +➡️ Zmaže celý namespace `botspace` a všetky objekty. + +--- + +## 🌍 Prístup k webovej aplikácii + +Po spustení aplikácie si otvor webový prehliadač a zadaj adresu: + +``` +http://localhost:8080 +``` + +➡️ Zobrazí sa webová stránka s tabuľkou porušovateľov, ktorá sa aktualizuje každých 5 sekúnd. + +--- + +## 👩‍💻 Autor + +Vypracovala: **Tetiana Mohorian** +Projekt Z2 – Kubernetes nasadenie webovej aplikácie s databázou \ No newline at end of file