276 lines
5.4 KiB
Markdown
276 lines
5.4 KiB
Markdown
# WebWizard - MVP
|
|
|
|
Tento dokument je hlavny zdroj pravdy pre MVP. Detailnejsie technicke pravidla su v `architecture.md`; detail wizardu je vo `wizard.md`.
|
|
|
|
---
|
|
|
|
## 1. Ciel produktu
|
|
|
|
WebWizard je AI website concierge. Pouzivatel vyplni kratky wizard a system mu vytvori exportovatelny staticky web.
|
|
|
|
MVP sa sustredi na rychle vytvorenie kvalitneho prveho webu bez toho, aby pouzivatel musel rozumiet dizajnu, HTML alebo hostingu.
|
|
|
|
---
|
|
|
|
## 2. MVP rozsah
|
|
|
|
MVP obsahuje:
|
|
|
|
* wizard na zber dat,
|
|
* ulozenie projektu do JSON suborov,
|
|
* AI generovanie strukturovaneho JSON obsahu,
|
|
* PHP renderer, ktory z JSON dat vytvori HTML/CSS,
|
|
* preview,
|
|
* export webu,
|
|
* kontaktny formular v SMTP alebo lokalnom mode,
|
|
* GDPR suhlas pri zadani kontaktov.
|
|
|
|
MVP neobsahuje:
|
|
|
|
* domenu,
|
|
* DNS,
|
|
* SSL,
|
|
* automaticke nasadenie,
|
|
* databazu,
|
|
* drag-and-drop editor,
|
|
* frontend alebo backend frameworky.
|
|
|
|
---
|
|
|
|
## 3. Technologie
|
|
|
|
Pouzite technologie:
|
|
|
|
* PHP 8.2,
|
|
* JSON subory,
|
|
* Composer volitelne,
|
|
* HTML,
|
|
* CSS,
|
|
* Vanilla JavaScript,
|
|
* lokalne DAIAPI.
|
|
|
|
Nepouzivaju sa:
|
|
|
|
* databaza,
|
|
* React, Vue, Angular,
|
|
* TypeScript,
|
|
* Node/FastAPI backend,
|
|
* Redis alebo S3 ako MVP zavislost.
|
|
|
|
---
|
|
|
|
## 4. Architektura
|
|
|
|
System ma dve hlavne generovacie vrstvy:
|
|
|
|
### Content layer
|
|
|
|
AI generuje iba strukturovane JSON data:
|
|
|
|
* nazov firmy,
|
|
* slogan,
|
|
* sluzby,
|
|
* text O nas,
|
|
* FAQ,
|
|
* kontakty,
|
|
* benefity,
|
|
* referencie,
|
|
* SEO metadata,
|
|
* alt texty.
|
|
|
|
### Rendering layer
|
|
|
|
PHP renderer vytvara HTML/CSS z JSON dat.
|
|
|
|
Vyhody:
|
|
|
|
* zmena sablony nevymaze obsah,
|
|
* HTML je mozne opakovane pregenerovat,
|
|
* pouzivatel nepride o data,
|
|
* buduci editor moze upravovat obsah bez prepisovania HTML.
|
|
|
|
---
|
|
|
|
## 5. Wizard
|
|
|
|
Wizard ma tieto kroky:
|
|
|
|
1. Segmentacia biznisu.
|
|
2. Identita, kontakt a GDPR suhlas.
|
|
3. Sluzby a smart otazky.
|
|
4. Vizualny styl a assety.
|
|
5. Moduly webu a kontaktny formular.
|
|
6. Generovanie JSON obsahu.
|
|
7. Preview vyrenderovaneho webu.
|
|
8. Export webu.
|
|
|
|
Pouzivatel moze preskocit volitelne kroky a nechat rozhodnutie na AI. Povinne su typ podnikania, nazov, kontakt a GDPR suhlas.
|
|
|
|
---
|
|
|
|
## 6. Datovy model
|
|
|
|
Kanonicky `wizard_data` obsahuje:
|
|
|
|
```json
|
|
{
|
|
"identity": {},
|
|
"contact": {},
|
|
"services": {},
|
|
"visuals": {},
|
|
"modules": {},
|
|
"assets": {},
|
|
"language": {},
|
|
"business_category": {},
|
|
"smart_answers": {}
|
|
}
|
|
```
|
|
|
|
Vyznam sekcii:
|
|
|
|
* `identity` - nazov firmy, slogan, kratky popis.
|
|
* `contact` - email, telefon, adresa, mesto, socialne siete.
|
|
* `services` - sluzby, produkty, cennikove poznamky.
|
|
* `visuals` - styl, farby, typografia, hustota layoutu.
|
|
* `modules` - sekcie webu a konfiguracia formulara.
|
|
* `assets` - logo, obrazky, alt texty.
|
|
* `language` - primarny jazyk, dalsie jazyky, ton komunikacie.
|
|
* `business_category` - oblast podnikania, podkategoria, vlastny popis.
|
|
* `smart_answers` - odpovede na dynamicke otazky podla segmentu.
|
|
|
|
---
|
|
|
|
## 7. AI workflow
|
|
|
|
1. Backend vytvori AI ulohu z `wizard_data`.
|
|
2. `LLMpool.php` posle ulohu do lokalneho DAIAPI.
|
|
3. DAIAPI vrati JSON content layer.
|
|
4. Backend validuje, ze vystup nie je HTML a ma ocakavane polia.
|
|
5. Content JSON sa ulozi do projektu.
|
|
6. Renderer vytvori export.
|
|
|
|
Ak AI vystup nie je validny JSON alebo obsahuje nepovolene HTML ako hlavny vystup, uloha zlyha a moze sa zopakovat podla retry pravidiel.
|
|
|
|
---
|
|
|
|
## 8. Publikovanie webu
|
|
|
|
MVP nevykonava publikovanie na domenu.
|
|
|
|
Vystupom je exportovatelny priecinok:
|
|
|
|
```text
|
|
exports/<project_id>/
|
|
index.html
|
|
config.json
|
|
assets/
|
|
emailer.php # iba SMTP formular
|
|
form-viewer.php # iba lokalny formular
|
|
messages/ # iba lokalny formular
|
|
```
|
|
|
|
Vsetky URL su relativne a web funguje bez build procesu.
|
|
|
|
---
|
|
|
|
## 9. Kontaktny formular
|
|
|
|
### SMTP mod
|
|
|
|
Pouzivatel zada SMTP host, port, username, password, encryption a recipient email. Export obsahuje `emailer.php`, ktory odosiela spravy.
|
|
|
|
### Lokalny mod
|
|
|
|
Ak SMTP nie je nastaveny, formular zapisuje spravy do JSON suborov v `messages/`. Export obsahuje `form-viewer.php` s jednoduchym prihlasenim:
|
|
|
|
* heslo,
|
|
* session,
|
|
* logout.
|
|
|
|
Heslo sa uklada iba ako hash.
|
|
|
|
---
|
|
|
|
## 10. GDPR
|
|
|
|
V kroku identita/kontakt je povinny checkbox:
|
|
|
|
> Suhlasim so spracovanim zadanych udajov za ucelom vytvorenia webovej stranky.
|
|
|
|
Suhlas sa uklada s:
|
|
|
|
* `project_id`,
|
|
* `user_id`,
|
|
* `accepted_at`,
|
|
* `consent_text_version`,
|
|
* presnym textom suhlasu.
|
|
|
|
Bez suhlasu nie je mozne pokracovat ku generovaniu.
|
|
|
|
---
|
|
|
|
## 11. Bezpecnostne minimum
|
|
|
|
MVP musi obsahovat:
|
|
|
|
* validaciu vstupov,
|
|
* escapovanie pri renderovani,
|
|
* ochranu proti path traversal,
|
|
* neverejny `data/` priecinok,
|
|
* upload limity,
|
|
* kontrolu MIME typu,
|
|
* zakaz spustitelnych uploadov,
|
|
* rate limit na citlive AJAX akcie,
|
|
* formularove skripty obmedzene na vlastny exportny priecinok.
|
|
|
|
---
|
|
|
|
## 12. Neimplementovane funkcionality
|
|
|
|
MVP neriesi:
|
|
|
|
* registraciu domen,
|
|
* DNS,
|
|
* SSL,
|
|
* hosting deployment,
|
|
* prihlasovanie emailom a heslom,
|
|
* online platby,
|
|
* booking system,
|
|
* vizualny editor,
|
|
* automaticke preklady celeho webu,
|
|
* AI generovanie obrazkov.
|
|
|
|
---
|
|
|
|
## 13. Buduce rozsirenia
|
|
|
|
Po MVP mozu pribudnut:
|
|
|
|
* pouzivatelske ucty,
|
|
* databazove ulozisko,
|
|
* vlastne domeny,
|
|
* deployment na hosting,
|
|
* editor obsahu,
|
|
* viacjazycne weby,
|
|
* SEO odporucania,
|
|
* booking integracie,
|
|
* AI obrazky.
|
|
|
|
---
|
|
|
|
## Website Quality Requirements
|
|
|
|
Kazdy export musi splnat:
|
|
|
|
* mobile responsive design,
|
|
* zakladne SEO meta tagy,
|
|
* OpenGraph meta tagy,
|
|
* alt texty pre obrazky,
|
|
* minimalne accessibility poziadavky,
|
|
* validny HTML,
|
|
* validny CSS,
|
|
* bez JavaScript chyb,
|
|
* ziadne externe zavislosti okrem explicitne povolenych,
|
|
* relativne URL,
|
|
* fungovanie bez build procesu.
|