# 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 ./prepare-app.sh ``` Vytvorí Docker image a pushne ho na Docker Hub. --- ### Spustenie aplikácie: ```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 ./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:8888 ``` Zobrazí sa webová stránka s tabuľkou porušovateľov, ktorá sa aktualizuje každých 5 sekúnd. ---