added files with prompts
This commit is contained in:
74
docs/prompts/step04.md
Normal file
74
docs/prompts/step04.md
Normal 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
|
||||
Reference in New Issue
Block a user