By continuing, you agree to our use of cookies. For more information, please read our privacy policy.

Plan My Meals

Jakub Pojsl - jakub@devehope.com

Main Mealplanner Dashboard

Figure 1: Main dashboard with weekly overview

Abstract

This project aimed to design and implement a web-based application that assists users in improving their eating habits and potentially reducing food waste. The app allowes users to plan meals, monitor nutritional intake, and automatically generate personalized meal plans based on their preferences and lifestyle. A significant focus was placed on designing and testing a user-friendly interface for effective meal plan management.

Introduction

The importance of a proper diet has become increasingly recognized by the public, and a wealth of information is available online. Many diet plans and recommendations for the 'ideal diet' exist. However, changing eating habits can be challenging, requiring effort in planning meals, cooking, and shopping. This lack of planning can also contribute to consumer food waste. We believed that better meal planning could help reduce this waste.

[1] https://www.similarweb.com/top-websites/category/health/nutrition-diets-and-fitness/

Our primary goal was to develop a web application to help users improve their eating habits. The app focuses on providing an intuitive interface for easy meal planning and nutritional monitoring. Key features included recipe suggestions, shopping list exports, and the ability to automatically prepare grocery orders. By building a positive relationship with users, we aimed to collect data on their eating habits to offer personalized meal recommendations. The ultimate success would be users eating more healthy and wasting less food.

[2] https://www.rohlik.cz/

Existing Solutions

Numerous solutions address meal planning, nutrition monitoring, or meal recommendations, but few combine these features comprehensively.

One notable foreign app, EatThisMuch, offers many desired functionalities, including meal planning, ingredient tracking, nutrition monitoring, and meal recommendations. However, it has limitations: essential features are locked behind a paywall, it focuses on single-day planning, and it lacks common foods for Czech users. Despite these drawbacks, it serves as a strong reference.

[3] https://www.eatthismuch.com/

In the Czech Republic, no alternative offers similar comprehensive functionality. One popular local app, 'kaloricketabulky.cz,' primarily focuses on nutrition tracking with a large database of local foods. However, it lacks automated meal plan generation and personalized recommendations.

[4] https://www.kaloricketabulky.cz/

Our solution sought to address these gaps by combining all desired functionalities into one application.

UI Design

The application required a tool for easy weekly meal planning with a clear overview. The process needed to be simple, efficient, and capable of automation, with personalized food and meal recommendations.

Weekly Meal Plan Overview

The key component was a visual overview of the weekly meal plan. The interface featured seven columns for each day, allowing users to manage meals, rearrange foods, and view nutritional information conveniently.

Weekly meal plan overview

Figure 2: Weekly meal plan overview with generated meals

Nutrition Monitoring

Monitoring nutritional intake was essential for understanding users' eating habits and providing better feedback. The app displays daily and meal-specific nutrition statistics, helping users create balanced meal plans according to their needs.

Meal Search and Adding to Plan

Users could easily add foods and meals to their plan, either manually or from a list of recommended and favorite items. The system facilitated quick additions, modifications, and removals, with features for bulk actions and new food creation.

Modal window for food search with recommended and favourite foods

Figure 3: Modal window for food search with recommended and favorite foods

Favorite Foods and Meals

The app allowed users to mark specific foods and meals as favorites, simplifying future planning and enhancing personalized recommendations.

Automation Tools

Automation features enables users to generate personalized meal plans and individual meals automatically. Users can set parameters such as height, weight, age, gender, physical activity, and dietary goals, tailoring the recommendations to their needs.

Simplified meal plan generator algorithm

Figure 4: Simplified meal plan generator algorithm

Automatic Meal Plan Generation

The ideal outcome is a balanced weekly meal plan tailored to each user. We developed an algorithm using user data to generate suitable plans, taking into account factors like daily nutritional needs and meal variety.

Meal plans include various meals such as breakfast, snacks, lunch, and dinner, using a diverse database of foods categorized for easy access. The app calculates recommended daily nutritional intake based on user data and goals, using established formulas.

RMR Calculation

  • Men: calories/day = 10 x weight (kg) + 6.25 x height (cm) – 5 x age (y) + 5
  • Women: calories/day = 10 x weight (kg) + 6.25 x height (cm) – 5 x age (y) – 161

The RMR is adjusted for digestion (10% increase) and multiplied by an activity factor to estimate total daily energy expenditure (TDEE). Depending on the user's goal (weight loss, maintenance, or gain), TDEE is adjusted accordingly.

Activity Level Adjustment

  • Sedentary = RMR x 1.2
  • Lightly active = RMR x 1.375
  • Moderately active = RMR x 1.55
  • Very active = RMR x 1.725
  • Extra active = RMR x 1.9

Carbohydrates, proteins, and fats are distributed in recommended ratios. The level of personalization depends on available user data.

[Mifflin-St. Jeor equation]

[TEF Calculation]

[TDEE Calculation]

[Nutrient Calculation Guidelines]

Architecture and Implementation

The solution is a web application using a client-server architecture. We chose the Django framework for its robust features in Python web development, including security and scalability.

The architecture followes the Model-View-Template (MVT) pattern. Models represents the data structure, views handle business logic, and templates manage the user interface.

JavaScript is employed for handling user interactions and asynchronous communication, providing a responsive and dynamic user experience.

Model-View-Template design pattern

Figure 5: Model-View-Template design pattern

Evaluation of Generated Meal Plans

We evaluated the automatic meal plan generation using a model user profile: 178 cm height, 84 kg weight, 42 years age, with moderate physical activity and a goal of weight maintenance. The generated meal plans were analyzed for their nutritional balance and variation.

  • Calories: 2971 kcal
  • Carbohydrates: 260 - 409 grams
  • Proteins: 83 - 126 grams
  • Fats: 111 - 260 grams

The generated plans generally met the nutritional guidelines, with some variation between days. Users could regenerate specific meals or days to achieve better balance.

Generated days730100
Average calories252626742895
Average carbohydrates285305328
Average proteins101102109
Average fats98107126

The plans showed a convergence towards optimal nutritional intake with more generated samples. However, deviations occurred, requiring user adjustments.

MinMax
Calories18263574
Carbohydrates135540
Proteins72165
Fats56167

While the meal plans were generally well-balanced, users could regenerate meals to optimize their diet. The variety of foods ensured minimal repetition, enhancing the user experience.

Generated meals example

Figure 6: Example of generated meals in two days with displayed nutritional information (snacks not displayed)

User Testing

User testing focused on the interface and overall experience, assessing clarity, usability, and usefulness. Key questions addressed users' ease of use, the utility of the application, and their ability to monitor nutrition.

  • Was the application easy to use?
  • Did it effectively assist in meal planning?
  • Was the process straightforward and efficient?
  • Could users easily track their nutritional intake?
  • How did users perceive the quality of the generated meals?

The testing involved five users who provided feedback through a survey. They were asked to perform tasks such as planning meals, recording food intake, and using the meal plan generator.

GUI Testing

Initial testing focused on the layout and design elements. Users provided feedback on the clarity and predictability of the interface, leading to several design improvements.

Usability Testing

Usability testing assessed the efficiency of user processes. Users rated their experiences, and improvements were made based on their feedback, particularly in food search and selection.

Testing Results

StatementScore
Ease of use8.5
Effectiveness in meal planning7.9
Ease of finding foods8.2
Use of recommended foods7.1
Nutritional monitoring clarity9.3
Suitability of generated meal combinations7.2
Incorporation of generated meals8.6
Overall quality of generated meal plans6.2

Conclusions

In this project we successfully developed an application that provides users with tools to improve their diet and reduce food waste. Key features include easy meal planning, nutritional monitoring, and automation tools for personalized meal plans.

The user interface was designed for simplicity and efficiency, allowing users to manage their weekly meal plans effectively. Future enhancements could include automated grocery orders and integration with recipe databases.

While the app met the initial goals, further improvements could enhance meal plan quality and personalization. Machine learning could refine recommendations, and gamification elements could motivate users.

Overall, the application proved useful for its intended purpose. Further testing and development are needed to fully understand its impact on long-term user habits and food waste reduction.

© All rights reserved 2024. Devehope Technologies s.r.o.
Devehope Technologies s.r.o. Nové sady 988/2 602 00 Brno, Czech Republic