You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Web-Dev-For-Beginners/translations/sk/7-bank-project/4-state-management/assignment.md

162 lines
8.8 KiB

<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "50a7783473b39a2e0f133e271a102231",
"translation_date": "2025-10-24T21:38:58+00:00",
"source_file": "7-bank-project/4-state-management/assignment.md",
"language_code": "sk"
}
-->
# Implementácia dialógu "Pridať transakciu"
## Prehľad
Vaša banková aplikácia má teraz solídne riadenie stavu a ukladanie dát, ale chýba jej kľúčová funkcia, ktorú skutočné bankové aplikácie potrebujú: možnosť, aby používatelia mohli pridávať vlastné transakcie. V tejto úlohe implementujete kompletný dialóg "Pridať transakciu", ktorý sa bezproblémovo integruje s vaším existujúcim systémom riadenia stavu.
Táto úloha spája všetko, čo ste sa naučili v štyroch lekciách o bankovníctve: HTML šablóny, spracovanie formulárov, integráciu API a riadenie stavu.
## Ciele učenia
Po splnení tejto úlohy budete schopní:
- **Vytvoriť** používateľsky prívetivý dialógový rozhranie na zadávanie údajov
- **Implementovať** prístupný dizajn formulára s podporou klávesnice a čítačiek obrazovky
- **Integrovať** nové funkcie do vášho existujúceho systému riadenia stavu
- **Precvičiť** komunikáciu s API a spracovanie chýb
- **Aplikovať** moderné webové vývojové vzory na funkciu z reálneho sveta
## Pokyny
### Krok 1: Tlačidlo "Pridať transakciu"
**Vytvorte** tlačidlo "Pridať transakciu" na stránke vášho dashboardu, ktoré používatelia ľahko nájdu a použijú.
**Požiadavky:**
- **Umiestnite** tlačidlo na logické miesto na dashboarde
- **Použite** jasný, akčný text na tlačidle
- **Štylizujte** tlačidlo tak, aby zodpovedalo vášmu existujúcemu dizajnu používateľského rozhrania
- **Zabezpečte**, že tlačidlo je prístupné pomocou klávesnice
### Krok 2: Implementácia dialógu
Vyberte jednu z dvoch možností na implementáciu vášho dialógu:
**Možnosť A: Samostatná stránka**
- **Vytvorte** novú HTML šablónu pre formulár transakcie
- **Pridajte** novú trasu do vášho systému smerovania
- **Implementujte** navigáciu na stránku formulára a späť
**Možnosť B: Modálny dialóg (odporúčané)**
- **Použite** JavaScript na zobrazenie/skrytie dialógu bez opustenia dashboardu
- **Implementujte** pomocou vlastnosti [`hidden`](https://developer.mozilla.org/docs/Web/HTML/Global_attributes/hidden) alebo CSS tried
- **Vytvorte** plynulý používateľský zážitok s riadením zamerania
### Krok 3: Implementácia prístupnosti
**Zabezpečte**, že váš dialóg spĺňa [štandardy prístupnosti pre modálne dialógy](https://developer.paciellogroup.com/blog/2018/06/the-current-state-of-modal-dialog-accessibility/):
**Navigácia pomocou klávesnice:**
- **Podporte** kláves Escape na zatvorenie dialógu
- **Uzamknite** zameranie v dialógu, keď je otvorený
- **Vráťte** zameranie na tlačidlo spúšťača, keď je dialóg zatvorený
**Podpora čítačiek obrazovky:**
- **Pridajte** vhodné ARIA štítky a role
- **Oznámte** otvorenie/zatvorenie dialógu čítačkám obrazovky
- **Poskytnite** jasné štítky polí formulára a chybové správy
### Krok 4: Vytvorenie formulára
**Navrhnite** HTML formulár, ktorý zbiera údaje o transakcii:
**Povinné polia:**
- **Dátum**: Kedy sa transakcia uskutočnila
- **Popis**: Na čo bola transakcia určená
- **Suma**: Hodnota transakcie (pozitívna pre príjem, negatívna pre výdavky)
**Funkcie formulára:**
- **Validujte** vstupy používateľa pred odoslaním
- **Poskytnite** jasné chybové správy pre neplatné údaje
- **Zahrňte** užitočný text zástupcu a štítky
- **Štylizujte** konzistentne s vaším existujúcim dizajnom
### Krok 5: Integrácia API
**Pripojte** váš formulár k backendovému API:
**Kroky implementácie:**
- **Preskúmajte** [špecifikácie serverového API](../api/README.md) pre správny koncový bod a formát dát
- **Vytvorte** JSON dáta z vašich vstupov formulára
- **Odošlite** dáta na API s vhodným spracovaním chýb
- **Zobrazte** správy o úspechu/neúspechu používateľovi
- **Riešte** chyby siete elegantne
### Krok 6: Integrácia riadenia stavu
**Aktualizujte** váš dashboard s novou transakciou:
**Požiadavky na integráciu:**
- **Obnovte** údaje účtu po úspešnom pridaní transakcie
- **Aktualizujte** zobrazenie dashboardu bez potreby obnovy stránky
- **Zabezpečte**, že nová transakcia sa zobrazí okamžite
- **Udržujte** správnu konzistenciu stavu počas celého procesu
## Technické špecifikácie
**Podrobnosti o koncovom bode API:**
Pozrite si [dokumentáciu serverového API](../api/README.md) pre:
- Požadovaný formát JSON pre údaje o transakcii
- HTTP metódu a URL koncového bodu
- Očakávaný formát odpovede
- Spracovanie chýb v odpovedi
**Očakávaný výsledok:**
Po dokončení tejto úlohy by vaša banková aplikácia mala mať plne funkčnú funkciu "Pridať transakciu", ktorá vyzerá a správa sa profesionálne:
![Screenshot zobrazujúci príklad dialógu "Pridať transakciu"](../../../../translated_images/dialog.93bba104afeb79f12f65ebf8f521c5d64e179c40b791c49c242cf15f7e7fab15.sk.png)
## Testovanie vašej implementácie
**Funkčné testovanie:**
1. **Overte**, že tlačidlo "Pridať transakciu" je jasne viditeľné a prístupné
2. **Otestujte**, že dialóg sa správne otvára a zatvára
3. **Potvrďte**, že validácia formulára funguje pre všetky povinné polia
4. **Skontrolujte**, že úspešné transakcie sa okamžite zobrazia na dashboarde
5. **Zabezpečte**, že spracovanie chýb funguje pre neplatné údaje a problémy so sieťou
**Testovanie prístupnosti:**
1. **Navigujte** cez celý proces iba pomocou klávesnice
2. **Otestujte** s čítačkou obrazovky, aby ste zabezpečili správne oznámenia
3. **Overte**, že riadenie zamerania funguje správne
4. **Skontrolujte**, že všetky prvky formulára majú vhodné štítky
## Hodnotiace kritériá
| Kritérium | Vynikajúce | Dostatočné | Potrebné zlepšenie |
| --------- | ---------- | ---------- | ------------------ |
| **Funkčnosť** | Funkcia pridania transakcie funguje bezchybne s vynikajúcim používateľským zážitkom a dodržiava všetky najlepšie praktiky z lekcií | Funkcia pridania transakcie funguje správne, ale nemusí dodržiavať niektoré najlepšie praktiky alebo má drobné problémy s použiteľnosťou | Funkcia pridania transakcie funguje len čiastočne alebo má významné problémy s použiteľnosťou |
| **Kvalita kódu** | Kód je dobre organizovaný, dodržiava zavedené vzory, obsahuje správne spracovanie chýb a bezproblémovo sa integruje s existujúcim riadením stavu | Kód funguje, ale môže mať niektoré problémy s organizáciou alebo nekonzistentné vzory s existujúcim kódom | Kód má významné štrukturálne problémy alebo sa dobre neintegruje s existujúcimi vzormi |
| **Prístupnosť** | Plná podpora navigácie pomocou klávesnice, kompatibilita s čítačkami obrazovky a dodržiavanie pokynov WCAG s vynikajúcim riadením zamerania | Základné funkcie prístupnosti sú implementované, ale môžu chýbať niektoré funkcie navigácie pomocou klávesnice alebo čítačiek obrazovky | Obmedzené alebo žiadne zohľadnenie prístupnosti |
| **Používateľský zážitok** | Intuitívne, prepracované rozhranie s jasnou spätnou väzbou, plynulými interakciami a profesionálnym vzhľadom | Dobrý používateľský zážitok s drobnými oblasťami na zlepšenie spätnej väzby alebo vizuálneho dizajnu | Slabý používateľský zážitok s mätúcim rozhraním alebo nedostatkom spätnej väzby |
## Doplnkové výzvy (voliteľné)
Keď splníte základné požiadavky, zvážte tieto vylepšenia:
**Rozšírené funkcie:**
- **Pridajte** kategórie transakcií (jedlo, doprava, zábava atď.)
- **Implementujte** validáciu vstupov s okamžitou spätnou väzbou
- **Vytvorte** klávesové skratky pre pokročilých používateľov
- **Pridajte** možnosť úpravy a mazania transakcií
**Pokročilá integrácia:**
- **Implementujte** funkciu spätného kroku pre nedávno pridané transakcie
- **Pridajte** hromadný import transakcií z CSV súborov
- **Vytvorte** vyhľadávanie a filtrovanie transakcií
- **Implementujte** funkciu exportu dát
Tieto voliteľné funkcie vám pomôžu precvičiť pokročilejšie koncepty webového vývoja a vytvoriť komplexnejšiu bankovú aplikáciu!
---
**Upozornenie**:
Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za žiadne nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.