improved documentation after review

This commit is contained in:
2026-06-11 18:41:18 +02:00
parent fe31e48e72
commit ba5fd5f7f6
2 changed files with 29 additions and 19 deletions

View File

@ -44,7 +44,8 @@ Systém funguje na princípe **Single-Page Application (SPA)** komunikujúcej s
/
├── data/ # NEPRÍSTUPNÉ Z WEBU (.htaccess deny all)
│ ├── users/ # <user_id>.json
── projects/ # <project_id>.json
── projects/ # <project_id>.json
│ └── llm/ # Fronta úloh pre AI (prikazy.json)
├── sites/ # PRÍSTUPNÉ Z WEBU (Vygenerované weby)
│ └── a8f7c3d1/ # Konkrétny vygenerovaný web
│ ├── index.html
@ -53,7 +54,8 @@ Systém funguje na princípe **Single-Page Application (SPA)** komunikujúcej s
│ └── config.json # Kópia konfigurácie pre daný export
├── src/ # PHP Logika
│ ├── Actions/ # Triedy pre jednotlivé AJAX akcie
│ ├── Services/ # AI Engine (DAIAPI Wrapper), FileStorage, Renderer
│ ├── Services/ # AI Engine (LLMpool.php), FileStorage, Renderer
│ ├── Prompts/ # Externé prompty (.txt, .md)
│ └── Utils/ # Helpery
├── public/ # Root webservera
│ ├── index.html # Hlavná aplikácia (Wizard)
@ -143,29 +145,37 @@ Všetky požiadavky smerujú na `public/ajax.php`.
---
## 7. Generovanie a publikovanie
## 7. Generovanie a publikovanie (Asynchrónny proces)
Kvôli eliminácii timeoutov a stabilite generovania využíva systém **LLM Pool**.
### Workflow:
1. **Spracovanie dát:** PHP vezme `wizard_data` z JSON súboru.
2. **AI Prompt:** Service vytvorí systémový prompt a pošle ho do DAIAPI cez HTTP POST.
3. **Parsing:** DAIAPI vráti vygenerovaný obsah (text/JSON).
4. **Templating:**
* PHP prečíta základnú HTML šablónu (v `/src/Templates/`).
* Nahradí placeholdery (napr. `{{BUSINESS_NAME}}`) vygenerovaným obsahom.
5. **Súborový systém:**
* Vytvorí priečinok `/sites/<project_id>/`.
* Nakopíruje statické assety (CSS, JS).
* Zapíše `index.html`.
6. **Relatívne URL:** Všetky cesty v šablóne sú `/assets/style.css` -> v kóde menené na `assets/style.css` (relatívne k index.html).
1. **Vytvorenie úlohy:** AJAX akcia `generateWebsite` nezavolá AI hneď. Zapíše JSON súbor do `/data/llm/<task_id>.json`, ktorý obsahuje vstupné dáta z wizardu a cieľové cesty.
2. **Spracovanie (LLMpool.php):**
* Skript spúšťaný cez **Cron** (napr. každú minútu) prechádza zložku `/data/llm/`.
* Pre každú úlohu načíta príslušný **Prompt** zo zložky `/src/Prompts/`.
* Nahradí premenné v prompte (napr. `[BUSINESS_TYPE]`) reálnymi dátami.
* Pošle požiadavku do DAIAPI.
3. **Dynamické generovanie:**
* Systém nepoužíva fixné HTML šablóny.
* AI inštruujeme, aby vygenerovalo kompletný kód (HTML/CSS) na mieru.
4. **Zápis a Cleanup:**
* Po úspešnom vygenerovaní skript vytvorí súbory v `/sites/<project_id>/`.
* Až po úspešnom zápise sa úloha z `/data/llm/` odstráni.
* **Retry mechanizmus:** Ak DAIAPI zlyhá, súbor s úlohou ostáva v zložke a skript sa ho pokúsi spracovať v ďalšom behu.
---
## 8. Bezpečnosť (MVP)
## 8. Správa dát a Limity (Storage Management)
1. **Ochrana dát:** `.htaccess` v priečinku `/data/` s obsahom `Deny from all`.
2. **Sanitizácia:** PHP `htmlspecialchars()` pri renderovaní vygenerovaného obsahu (prevencia XSS).
3. **Path Traversal:** Validácia `user_id` a `project_id` (iba alfanumerické znaky), aby sa predišlo prístupu k súborom mimo určených priečinkov.
4. **Rate Limiting:** Jednoduchá kontrola počtu požiadaviek na IP adresu v `ajax.php`.
2. **Uploady:**
* Limit na veľkosť súboru (napr. max 2MB pre logo).
* Kontrola povolených prípon (jpg, png, svg) a overenie MIME typu na strane PHP.
3. **Storage Cleanup:**
* Ak celkový objem dát v `/sites/` presiahne stanovenú kvótu, systém automaticky premaže najstaršie projekty (FIFO - First In, First Out).
4. **Sanitizácia:** PHP `htmlspecialchars()` pri renderovaní, ak je to potrebné, a validácia vstupov proti Path Traversal.
---

View File

@ -9,7 +9,7 @@ Tento dokument nadväzuje na pôvodnú špecifikáciu a detailnejšie rozpracov
WebWizard je navrhnutý ako **AI Website Concierge**, ktorý premieňa štruktúrované dáta od používateľa na funkčný web.
### 1.1 Komponenty
* **Frontend (Wizard UI):** Jednostránková aplikácia (React/Next.js) s dôrazom na UX, ktorá sprevádza používateľa procesom.
* **Frontend (Wizard UI):** Jednostránková aplikácia (Vanilla JS) s dôrazom na UX, ktorá sprevádza používateľa procesom.
* **Backend (API Layer):** Node.js (Express) alebo Python (FastAPI). Spracováva odpovede, spravuje session a komunikuje s AI.
* **AI Engine:** Integrácia s LLM (napr. GPT-4o) cez API. Používa špecifické system prompty pre rôzne segmenty biznisu.
* **Generator Service:** Modul, ktorý transformuje AI výstup (JSON/Markdown) na finálny kód (HTML/CSS/JS).