Plan My Meals
Jakub Pojsl - jakub@devehope.com
Obrázek 1: Hlavní panel s týdenním přehledem
Abstract
V rámci tohoto projektu jsem si stanovil cíl navrhnout a implementovat webovou aplikaci, která pomůže uživatelům zlepšit jejich stravovací návyky a snížit plýtvání potravinami. Aplikace uživatelům nabízí možnost sledování příjmu živin a automatické generování jídelních plánů na základě jejich preferencí a životního stylu. Důraz byl kladen především na návrh a testování uživatelsky přívětivého rozhraní pro efektivní správu těchto jídelníčků.
Úvod
Význam vyvážené stravy je stále více uznáván širokou veřejností a na internetu je k dispozici množství informací týkající se této problematiky. Existuje řada dietních plánů a doporučení pro optimální stravování. Změnit své stravovací návyky však není snadné, jelikož to vyžaduje pečlivé plánování jídel, vaření a nákup surovin. Nedostatek tohoto plánování může navíc vést k plýtvání jídlem. Věříme, že efektivní plánování jídel může tento problém zmírnit, a právě to si aplikace planMyMeals klade za cíl.
[1] https://www.similarweb.com/top-websites/category/health/nutrition-diets-and-fitness/
Hlavním cílem našeho projektu bylo vytvořit webovou aplikaci, která by uživatelům pomohla zlepšit jejich stravovací návyky. Aplikace klade důraz na přehledné a uživatelsky přívětivé rozhraní pro snadné plánování jídel a sledování výživy. Mezi hlavní funkce patří návrhy receptů, export nákupních seznamů a možnost automaticky vytvářet objednávky potravin. Díky budování pozitivního vztahu s uživateli jsme shromažďovali informace o jejich stravování, abychom mohli nabídnout personalizovaná doporučení. Naším největším cílem je pomoci uživatelům jíst zdravěji a snižovat plýtvání potravinami.
[2] https://www.rohlik.cz/
Existující řešení
Četná řešení se zaměřují na plánování jídel, sledování výživy nebo doporučení jídel, ale jen málo z nich kombinuje tyto funkce efektivně dohromady.
Aplikace EatThisMuch zaujme širokou škálou funkcí, mezi které patří plánování jídel, sledování výživy a ingrediencí, či poskytování doporučení jídel. Mezi její nevýhody patří omezený přístup k pokročilým funkcím, zaměření pouze na denní plánování a absence tradičních českých jídel. Přesto se jedná o zajímavý nástroj, který stojí za zvážení.
[3] https://www.eatthismuch.com/
V České republice momentálně neexistuje žádná aplikace, která by nabízela tak komplexní funkce. Jednou z oblíbených místních aplikací je 'kaloricketabulky.cz', která se soustředí hlavně na sledování výživy a obsahuje rozsáhlou databázi českých potravin. Nicméně postrádá funkce, jako je automatické vytváření jídelníčků nebo personalizovaná doporučení.
[4] https://www.kaloricketabulky.cz/
V rámci aplikace planMyMeals jsme si dali za cíl vyřešit tento problém tak tak, že jsme zkombinovali všechny požadované funkce do jednoho uceleného nástroje
Návrh uživatelského rozhraní
Aplikace vyžadovala nástroj pro snadné plánování jídelníčků na týden s jasným přehledem. Proces musel být jednoduchý, efektivní a schopný automatizace s personalizovanými doporučeními jídel a potravin.
Přehled jídelníčků na týden
Klíčovým prvkem byl vizuální přehled jídelníčků na týden. Rozhraní obsahovalo sedm sloupců pro každý den, což uživatelům umožňovalo spravovat jídla, přesouvat potraviny a pohodlně zobrazovat výživové informace.
Obrázek 2: Přehled týdenního plánu jídel s generovanými jídly
Sledování výživy
Sledování příjmu výživy bylo klíčové pro porozumění stravovacím návykům uživatelů a poskytování lepší zpětné vazby. Aplikace zobrazuje denní a specifické výživové statistiky, které uživatelům pomáhají vytvářet vyvážené plány jídel podle jejich potřeb.
Vyhledávání jídel a přidání do jídelníčků
Uživatelé mohou snadno přidávat potraviny a jídla do svého jídelníčku, buď ručně, nebo ze seznamu doporučených a oblíbených položek. Systém usnadnil rychlé přidávání, úpravy a odstraňování s funkcemi pro hromadné akce a vytváření nových potravin.
Obrázek 3: Modální okno pro vyhledávání potravin s doporučenými a oblíbenými jídly
Oblíbené potraviny a jídla
Aplikace umožňuje uživatelům označovat konkrétní potraviny a jídla jako jejich oblíbené, což zjednodušuje budoucí plánování a zlepšuje personalizovaná doporučení.
Nástroje automatizace
Funkce automatizace umožňuje uživatelům automaticky generovat personalizované plány jídel a jednotlivá jídla. Uživatelé mohou nastavit parametry, jako jsou výška, váha, věk, pohlaví, fyzická aktivita a dietní cíle, a tím přizpůsobit doporučení svým potřebám.
Obrázek 4: Zjednodušený algoritmus pro generátor jídelníčků
Automatické generování plánů jídel
Ideálním výsledkem je vyvážený týdenní jídelníček přizpůsobený každému uživateli. Vyvinuli jsme algoritmus, který na základě údajů o uživateli generuje vyvážené jídelníčky, přičemž zohledňuje faktory jako denní potřebu živin a rozmanitost jídel.
Jídelníčkyl zahrnují různá jídla, jako jsou snídaně, svačiny, obědy a večeře, přičemž využívají různorodou databázi potravin rozdělenou do kategorií pro snadný přístup. Aplikace vypočítá doporučený denní příjem živin na základě údajů o uživateli a cílů s využitím zavedených vzorců.
Výpočet RMR
- Muži: kalorie/den = 10 x váha (kg) + 6.25 x výška (cm) – 5 x věk (let) + 5
- Ženy: kalorie/den = 10 x váha (kg) + 6.25 x výška (cm) – 5 x věk (let) – 161
RMR se upravuje pro trávení (10% zvýšení) a násobí se faktorem aktivity pro odhad celkové denní spotřeby energie (TDEE). V závislosti na cíli uživatele (hubnutí, údržba nebo nárůst hmotnosti) se TDEE odpovídajícím způsobem upraví.
Úprava podle úrovně aktivity
- Sedavý = RMR x 1.2
- Lehce aktivní = RMR x 1.375
- Středně aktivní = RMR x 1.55
- Velmi aktivní = RMR x 1.725
- Mimořádně aktivní = RMR x 1.9
Sacharidy, bílkoviny a tuky jsou rozděleny v doporučených poměrech. Úroveň personalizace závisí na dostupných údajích o uživateli.
[Mifflin-St. Jeor rovnice]
[Výpočet TEF]
[Výpočet TDEE]
[Pokyny pro výpočet živin]
Architektura a implementace
Řešení je webová aplikace využívající architekturu klient-server. Vybrali jsme framework Django pro jeho robustní funkce v Pythonovém webovém vývoji, včetně bezpečnosti a škálovatelnosti.
Architektura následuje vzor Model-View-Template (MVT). Modely představují datovou strukturu, pohledy zpracovávají obchodní logiku a šablony spravují uživatelské rozhraní.
Pro zpracování uživatelských interakcí a asynchronní komunikaci je použit JavaScript, což zajišťuje responzivní a dynamický uživatelský zážitek.
Obrázek 5: Návrhový vzor Model-View-Template
Hodnocení generovaných plánů jídel
Generování plánů jídel jsme hodnotili pomocí modelového profilu uživatele: výška 178 cm, váha 84 kg, věk 42 let, střední fyzická aktivita a cíl udržení hmotnosti. Generované plány jídel byly analyzovány z hlediska jejich nutriční rovnováhy a rozmanitosti.
- Kalorie: 2971 kcal
- Sacharidy: 260 - 409 gramů
- Bílkoviny: 83 - 126 gramů
- Tuky: 111 - 260 gramů
Generované plány obecně splňovaly nutriční pokyny, s určitou variabilitou mezi dny. Uživatelé mohli regenerovat konkrétní jídla nebo dny, aby dosáhli lepší rovnováhy.
Generované dny | 7 | 30 | 100 |
---|---|---|---|
Průměrné kalorie | 2526 | 2674 | 2895 |
Průměrné sacharidy | 285 | 305 | 328 |
Průměrné bílkoviny | 101 | 102 | 109 |
Průměrné tuky | 98 | 107 | 126 |
Plány ukázaly sbližování směrem k optimálnímu příjmu živin s více generovanými vzorky. Nicméně došlo k odchylkám, které vyžadovaly uživatelské úpravy.
Min | Max | |
---|---|---|
Kalorie | 1826 | 3574 |
Sacharidy | 135 | 540 |
Bílkoviny | 72 | 165 |
Tuky | 56 | 167 |
Zatímco plány jídel byly obecně dobře vyvážené, uživatelé mohli regenerovat jídla, aby optimalizovali svou stravu. Rozmanitost potravin zajišťovala minimální opakování, což zlepšilo uživatelský zážitek.
Obrázek 6: Příklad generovaných jídel za dva dny s uvedenými nutričními informacemi (nezobrazené svačiny)
Testování uživatelů
Testování uživatelů se zaměřilo na rozhraní a celkový zážitek, hodnotilo jasnost, použitelnost a užitečnost. Klíčové otázky se zaměřily na snadnost použití aplikace, užitečnost při plánování jídel a schopnost sledovat výživu.
- Byla aplikace snadno použitelná?
- Byla nápomocná při plánování jídel?
- Byl proces jednoduchý a efektivní?
- Mohli uživatelé snadno sledovat svůj příjem živin?
- Jak uživatelé vhodnost vygenerovaných jídel?
Testování se zúčastnilo pět uživatelů, kteří poskytli zpětnou vazbu prostřednictvím dotazníku. Byli požádáni, aby vyzkoušeli funkce, jako je plánování jídelníčku manuálně, zaznamenávání příjmu potravin a používání automatického generátoru jídelníčku.
Testování uživatelského rozhraní
Počáteční testování se zaměřilo na rozvržení a designové prvky. Uživatelé poskytli zpětnou vazbu k jasnosti a předvídatelnosti rozhraní, což vedlo k několika vylepšením designu.
Testování použitelnosti
Testování použitelnosti hodnotilo efektivitu uživatelských procesů. Uživatelé hodnotili své zkušenosti a na základě jejich zpětné vazby byla provedena vylepšení, zejména při vyhledávání a výběru potravin.
Výsledky testování
Tvrzení | Skóre |
---|---|
Snadnost použití | 8.5 |
Efektivita při plánování jídel | 7.9 |
Snadnost nalezení potravin | 8.2 |
Vhodnost doporučených potravin | 7.1 |
Jasnost sledování výživy | 9.3 |
Vhodnost kombinací generovaných jídel | 7.2 |
Začlenění generovaných jídel | 8.6 |
Celková kvalita generovaných plánů jídel | 6.2 |
Zhodnocení
V tomto projektu jsme úspěšně vyvinuli aplikaci, která poskytuje uživatelům nástroje ke zlepšení jejich stravy a snížení plýtvání potravinami. Klíčové funkce zahrnují snadné plánování jednotlivých chodů, sledování výživy a nástroje pro automatizaci personalizovaných jídelníčků.
Uživatelské rozhraní bylo navrženo tak, aby bylo uživatelsky přívětivé a efektivní, což uživatelům umožňuje efektivně spravovat své týdenní jídelníčky. Budoucí vylepšení by mohla zahrnovat automatizované objednávky potravin a integraci s databázemi receptů.
Samotná aplikace sice splnila své počáteční cíle, ale další vylepšení by mohla výrazně zlepšit kvalitu i míru personalizace jídelních plánů. Implementace AI by mohla zpřesnit doporučení, zatímco gamifikace by přispěla k větší motivaci uživatelů jídelníčky sestavovat a dodržovat.
Aplikace se celkově osvědčila ve svém zamýšleném účelu. Pro úplné zhodnocení jejího vlivu na dlouhodobé stravovací návyky uživatelů a snížení plýtvání potravinami však bude nutné provést další testování a vývoj.