added files with prompts

This commit is contained in:
2026-06-12 12:54:10 +02:00
parent 0f791c3a90
commit 2cd8671014
21 changed files with 1517 additions and 0 deletions

74
docs/prompts/step04.md Normal file
View File

@ -0,0 +1,74 @@
# Krok 04 - Správa používateľov a projektov (Session)
## Kontext projektu
WebWizard potrebuje identifikovať používateľa (pomocou ID uloženého v prehliadači) a priradiť k nemu jeho projekty. MVP nepoužíva klasické prihlasovanie, ale `user_id` generované pri prvej návšteve.
## Pred implementáciou si preštuduj
- `docs/architecture.md` - Sekcia 5 (Projekt) a 8 (Identifikácia používateľa).
- `docs/wizard.md` - Sekcia 10 (Wizard Data Schema).
## Cieľ
Implementovať logiku pre inicializáciu session (vytvorenie `user_id`) a základnú správu projektov (vytvorenie, zoznam).
## Požadované zmeny
1. Implementácia akcie `initSession` v `ajax.php`:
- Ak `user_id` chýba, vygeneruj unikátne ID (napr. `u_` + hash).
- Vytvor súbor `data/users/<user_id>.json`.
2. Implementácia akcie `createProject` v `ajax.php`:
- Vygeneruj unikátne `project_id`.
- Vytvor základnú štruktúru projektu v `data/projects/<project_id>.json` so stavom `draft`.
- Pridaj `project_id` do zoznamu projektov v používateľskom JSONe.
3. Implementácia akcie `listProjects` v `ajax.php`:
- Vráti zoznam projektov pre dané `user_id` so základnými metadátami (názov z identity, stav, dátum).
4. Implementácia akcie `getProjectStatus` v `ajax.php`:
- Vráti kompletné dáta projektu pre dané `project_id`.
## Implementačné pravidlá
- Používaj `FileStorage` službu z Kroku 02.
- ID musia byť bezpečne generované.
- Overuj, či projekt patrí danému `user_id` pri každej operácii s projektom.
## Súbory ktoré je potrebné vytvoriť
- `src/Actions/ProjectActions.php` (odporúčané pre logiku)
## Súbory ktoré je potrebné upraviť
- `public/ajax.php` (pridanie nových akcií)
## API a dátové štruktúry
Šruktúra projektu (`data/projects/<project_id>.json`):
```json
{
"project_id": "...",
"user_id": "...",
"status": "draft",
"current_step": 1,
"wizard_data": {},
"created_at": "...",
"updated_at": "..."
}
```
## Frontend požiadavky
Nerelevantné (implementácia backend logic).
## Backend požiadavky
- PHP 8.2.
## Testovací scenár
1. Zavolaj `initSession` bez `X-User-ID`. Dostaneš nové ID.
2. Zavolaj `createProject` s novým ID. Dostaneš `project_id`.
3. Over, či vznikli súbory v `data/users/` a `data/projects/`.
4. Zavolaj `listProjects` a over, či obsahuje vytvorený projekt.
## Definition of Done
- Používateľské relácie a projekty sú perzistentne uložené v JSON súboroch.
- API akcie pre správu projektov sú funkčné.
## Obmedzenia
- Nepoužívaj PHP natívne sessions (`session_start()`), identifikácia je čiste cez `user_id` v hlavičke a perzistenciu v súboroch.
## Výstup
- zoznam vytvorených súborov
- zoznam upravených súborov
- stručné zhrnutie vykonaných zmien
- prípadné otvorené problémy