merged data info and created one mvp.md
This commit is contained in:
275
docs/mvp.md
Normal file
275
docs/mvp.md
Normal file
@ -0,0 +1,275 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user