diff --git a/README.md b/README.md index de242fd..d40e1fe 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,77 @@ -# WebWizard +# WebWizard - AI Website Concierge (MVP) -Simple wizard for create website with LLM. \ No newline at end of file +WebWizard je inteligentný asistent na tvorbu statických webových stránok pre malé podniky a živnostníkov. Pomocou intuitívneho wizardu a umelej inteligencie (DAIAPI) premení vaše základné informácie na profesionálny, responzívny web pripravený na nasadenie. + +## 🚀 Hlavné funkcie +- **Inteligentný Wizard**: 8 krokov od definície biznisu až po finálny export. +- **AI Content Generation**: Automatické písanie marketingových textov a SEO metadát cez DAIAPI. +- **Vizuálna personalizácia**: Výber z preddefinovaných farebných paliet a dizajnových štýlov. +- **Správa Assetov**: Asynchrónne nahrávanie loga a fotogalérie. +- **Kontaktný formulár**: Podpora SMTP odosielania alebo lokálneho ukladania správ s vlastným prehliadačom. +- **Statický Export**: Kompletný balíček webu v ZIP formáte pripravený na FTP upload. + +## 🛠️ Technický Stack +- **Backend**: PHP 8.2+ (bez frameworkov, čistý kód). +- **Frontend**: Vanilla JavaScript (ES6+), CSS Grid/Flexbox. +- **Dáta**: Súborový systém (JSON), žiadna databáza. +- **AI**: Integrácia s lokálnym DAIAPI. + +## 📋 Požiadavky +- Webový server (Apache/Nginx) s podporou PHP 8.2. +- PHP rozšírenia: `curl`, `zip`, `fileinfo`. +- Povolený zápis (write permissions) do priečinkov `data/` a `exports/`. + +## ⚙️ Inštalácia +1. Naklonujte repozitár na váš server. +2. Spustite `composer install` pre vygenerovanie autoloadera. +3. Skopírujte `.env.example` do `.env` a nastavte URL pre vaše DAIAPI: + ```ini + DAIAPI_URL=http://10.2.8.1:9001/run + ``` +4. Nastavte Document Root vášho webservera do priečinka `public/`. + +### Príklad NGINX konfigurácie +Pre správne fungovanie (najmä prístup k náhľadom v `/exports`) odporúčame nasledovnú konfiguráciu: +```nginx +server { + listen 80; + server_name webwizard.test; + + root /cesta/k/projektu/public; + + # Sprístupnenie vygenerovaných webov pre náhľad + location /exports { + alias /cesta/k/projektu/exports; + } + + location / { + index index.php index.html; + try_files $uri $uri/ /index.php?$query_string; + } + + include php.conf; # alebo vaša konfigurácia pre PHP-FPM +} +``` + +## 🤖 Spustenie Workera +Pre spracovanie AI úloh na pozadí je potrebné spustiť worker skript: + +**Manuálne (DEV):** +```powershell +php scripts/worker.php --loop +``` + +**Cez Cron (PROD):** +Nastavte spúšťanie každú minútu: +```cron +* * * * * /usr/bin/php /cesta/k/projektu/scripts/worker.php >> /cesta/k/projektu/data/worker.log 2>&1 +``` + +## 🔒 Bezpečnosť +- Všetky vstupné dáta sú sanitizované. +- Prístup do `data/` je blokovaný cez `.htaccess`. +- Citlivé konfigurácie exportovaných webov sú uložené v `.php` súboroch. +- Heslá pre prezeranie správ sú hašované pomocou `password_hash()`. + +## 📄 Licencia +MIT diff --git a/public/js/wizard.js b/public/js/wizard.js index 810df5d..053b545 100644 --- a/public/js/wizard.js +++ b/public/js/wizard.js @@ -784,7 +784,7 @@ const App = { try { const result = await this.apiCall('generateWebsite'); if (result.success) { - console.log('Generation started:', result.data.task_id); + this.startPolling(); } } catch (error) { @@ -817,7 +817,7 @@ const App = { } catch (error) { console.error('Polling error:', error); } - }, 10000); + }, 5000); }, updateGenerationStatus(status) { @@ -886,3 +886,5 @@ const App = { }; document.addEventListener('DOMContentLoaded', () => App.init()); + +App.init());