45 lines
2.8 KiB
Plaintext
45 lines
2.8 KiB
Plaintext
----- 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 07:33:30 -----------------------------------------------------
|
||
doplniť jemnejší UX flow (toasty, confirm modaly pri delete, loading/error states per card) |