Přidat z2/README.md

This commit is contained in:
Tetiana Mohorian 2025-04-10 10:55:38 +00:00
parent dedfbc8343
commit 7513232859

105
z2/README.md Normal file
View File

@ -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