# 🧠 Detekcia nenávistnej reči Webová aplikácia na klasifikáciu textov a detekciu nenávistnej alebo toxickej reči. Projekt bol vytvorený ako súčasť zadania na skúšku a spĺňa všetky požiadavky vrátane cloud nasadenia, API rozhrania a perzistentného ukladania výsledkov. --- ## Čo aplikácia robí - Umožňuje používateľovi zadať text cez frontend (React) - Text sa odosiela na backend (Flask API), kde je analyzovaný pomocou ML modelu - Výsledok predikcie („Pravdepodobne toxický“ alebo „Neutrálny text“) sa zobrazí používateľovi - Každá požiadavka sa uloží do `history.json` spolu s časovou pečiatkou - Endpoint `/api/history` vracia históriu predikcií vo formáte JSON --- ## Použité technológie ### Cloud infraštruktúra – [Railway](https://railway.app) - Automatizované nasadenie z GitHub - Predkonfigurovaný HTTPS a verejná doména - Automatická správa buildov, reštartov a logovania ### Docker - Backend kontajnerizovaný vlastným `Dockerfile` (Flask + model) - Frontend ako samostatná React služba (build cez Nixpacks alebo Docker) - Podpora manuálneho spustenia cez `Docker Compose` ### Perzistencia - `history.json`: lokálna databáza vo forme JSON - Uchováva: vstupný text, predikciu a čas - Endpoint: `GET /api/history` --- ## Štruktúra projektu ``` . ├── backend/ │ ├── app.py # Flask API endpointy │ ├── Dockerfile # Konfigurácia kontajnera pre backend │ └── history.json # Perzistencia predikcií ├── frontend/ │ └── vite.config.js # Railway doménová konfigurácia ├── docker-compose.yaml # Definuje služby pre frontend a backend ├── prepare-app.sh # Spustenie Docker kontajnerov ├── remove-app.sh # Zastavenie a odstránenie kontajnerov └── README.md # Dokumentácia projektu ```