Files
Nutrio/doc/prompt.txt
igor ee144847bd added component for MacroBadge,
used MacroBadge.vue in Day Meal, Meal View and Ingrediens View
2026-02-14 13:04:37 +01:00

103 lines
5.2 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

----- 2026-02-14 05:35:18 -----------------------------------------------------
Si senior Vue 3 + TypeScript architekt. Robím aplikáciu Nutrio (nutrition tracker).
Backend API v PHP je hotové. Frontend má zatiaľ iba login obrazovku, kde sa pri prihlásení automaticky zaregistruje používateľ.
Po prihlásení chcem vnútornú časť aplikácie (authenticated area) s jednoduchým, čistým SaaS dizajnom.
Ciele:
1) Navrhni routing štruktúru (Vue Router) pre verejnú časť (login) a privátnu časť (app), vrátane guards.
2) Navrhni layouty:
- AuthLayout (pre login) uz je spraveny v frontend\src\views\AuthView.vue
- AppLayout (sidebar na desktope, bottom tabs na mobile; aspoň navrhni komponentovú štruktúru)
3) Navrhni pages a komponenty pre minimálne:
- Today (diár pre konkrétny deň): raňajky/obed/večera; výber jedálnička pre čas dňa; zobrazenie súčtov (kcal, B/S/T)
- Meals (knižnica jedálničkov): list + filter podľa meal_type; detail/edit jedálnička s položkami (ingredient + grams)
- Ingredients (databáza surovín): list + create/edit
- Stats (základný prehľad; môže byť placeholder)
- Settings (logout)
4) Výpočty totals nerobím cez SQL VIEW počítaj ich na FE pri zobrazení (alebo cez 1 jednoduchú helper funkciu).
Makrá sú uložené na 100g: protein_g_100, carbs_g_100, sugar_g_100, fat_g_100, fiber_g_100.
Pre položku s grams: macro = grams/100 * macro_100.
kcal = protein*4 + carbs*4 + fat*9. (Sugar je podmnožina carbs, neráta sa zvlášť do kcal.)
5) Navrhni štruktúru projektu:
- frontend/src/router
- frontend/src/views
- frontend/src/components
- frontend/src/stores (Pinia)
- frontend/src/utils (nutrition math)
6) Daj konkrétny návrh názvov súborov a exportov + ukážku kódu:
- router index.ts s routes + guard
- auth store (token/user)
- nutrition utils (computeMealTotals, computeDayTotals)
- typy (Ingredient, Meal, MealItem, DiaryEntry)
Preferencie:
- Vue 3 + Composition API + TypeScript
- Pinia
- Vue Router
- UI môže byť čisté bez knižnice, alebo minimalisticky (napr. jednoduché CSS rozhodni a drž konzistentne a pokracuj v pouzivani suboru frontend/src/assets/css/style.css).
- Použi slovenské názvy v UI (Raňajky, Obed, Večera), ale kľúče v kóde nech sú anglické (breakfast/lunch/dinner).
Výstup: konkrétny návrh + ukážky kódu, nie všeobecné rady.
----- 2026-02-14 07:16:25 -----------------------------------------------------
dopln kluce pre UI texty pre preklad, pre kluce pouzivaj anglictinu, dopln potom aj vsetky preklady vo frontend/src/locales/*.json
----- 2026-02-14 08:05:38 -----------------------------------------------------
na zobrazeni app/ingredients sprav aby formular pre pridanie novej suroviny sa zobrazil az ked kliknem na tlacitko Nova surovina, a po uspesnom ulozeni ten formular pre pridanie novej suroviny skry, nezabudni vynulovat udaje vo formulari po ulozeni
----- 2026-02-14 08:08:33 -----------------------------------------------------
dopln jemnejší UX flow (toasty, confirm modaly pri delete, loading/error states per card)
----- 2026-02-14 12:44:33 -----------------------------------------------------
v zozname surovin app/ingredients sa zobrazuju len bielkoviny, sacharidy a tuky, pridaj tam aj vlakninu,
zaroven to chcem farebne rozlisit, urob to ako farebny stitok, ze bielkoviny budu modre, sacharidy oranzove, tuky cervene (mierne tlmena) a vlaknina tmavsia zelena
podobne farebne to rozlis aj na denndom prehlade app/today v sucte dna a tiez tam pridaj vlakninu
v zozname jedalnickov app/meals je pri kazdom len pocet kalorii, pridaj tam tiez sumar makrozivin (bielkoviny, sacharidy, tuky a vlaknina)
GPT upravil takto:
Rozšír UI aplikácie Nutrio nasledovne:
1) Ingredients list (route: /app/ingredients)
- Aktuálne sa zobrazujú len bielkoviny, sacharidy a tuky.
- Pridaj zobrazenie vlákniny (fiber_g_100).
- Makrá zobraz ako malé farebné štítky (badge), nie ako obyčajný text.
Farby štítkov:
- Bielkoviny (protein) → modrá #3B82F6
- Sacharidy (carbs) → oranžová #F59E0B
- Tuky (fat) → tlmená červená #EF4444
- Vláknina (fiber) → tmavšia zelená #10B981
Štýl badge:
- malé zaoblené pill tvary
- jemné svetlé pozadie (napr. 1015% opacity farby)
- text farba plná farba
- formát: B 12g / S 24g / T 5g / V 6g
2) Today page (route: /app/today)
- V dennom súčte pridaj vlákninu.
- Makrá zobraz rovnakým farebným štýlom ako v ingredients.
- Kalórie nech ostanú neutrálne (tmavá šedá), vizuálne dominantné veľkosťou písma, nie farbou.
Layout:
- hore veľké číslo kcal
- pod tým horizontálne makrá ako farebné štítky
3) Meals list (route: /app/meals)
- Aktuálne sa zobrazuje len počet kalórií.
- Pridaj aj súhrn makier (protein, carbs, fat, fiber).
- Zobraz ich rovnakým badge systémom pre konzistentnosť.
- Kcal nech je oddelené (napr. nad makrami alebo výraznejšie písmo).
4) Konzistentnosť:
- Použi jeden spoločný komponent napr. <MacroBadge />
- Nepoužívaj sýte plné farebné pozadia.
- Použi minimalistický SaaS štýl.
- Farby makier musia byť identické naprieč celou aplikáciou.
- Nepridávaj nové knižnice.
Výsledok:
Čistý, konzistentný, moderný vzhľad bez prehnaných farieb.