УДК 004.4

Веб-приложение для индивидуального подсчета калорий и создания плана питания

Липман Николай Александрович – студент бакалавриата Института космических и информационных технологий Сибирского федерального университета

Сидорова Айлиена Анатольевна – студент бакалавриата Института космических и информационных технологий Сибирского федерального университета

Научный руководитель Макуха Любовь Витальевна – старший преподаватель Института космических и информационных технологий Сибирского федерального университета

Аннотация: В статье приводится описание работы веб-приложения для индивидуального подсчета калорий и создания плана питания. Приложение может рассчитать суточную норму калорий пользователя, помочь проследить за изменениями физических параметров тела. Так же приложение может составить рацион на неделю, основываясь на индивидуальные потребности и предпочтения пользователя. Приложение является удобным инструментом для тех, кто стремится к здоровому образу жизни и правильному питанию.

Ключевые слова: правильное питание, сбалансированное питание, здоровье, спорт, питание, здоровый образ жизни, ЗОЖ, приложение.

Каждый человек уникален, поэтому при подборе диеты следует обратить внимание на многие факторы, от которых уже зависят дальнейшие решения программы, так как от указанных параметров и внесенных персональных данных, зависят энергозатраты человека в течение всего дня. Например, с возрастом замедляется метаболизм, принято считать, что он влияет на то, с какой скоростью человек набирает вес. Мужчинам, по сравнению с женщинами, нужно чуть больше калорий, которые они получат в течении дня, так как у мужчин больше мышечной массы. Именно благодаря таким факторам, как рост, вес, пол, физическая или спортивная активность, зависит грамотный расчет суточной нормы калорий, которые необходимы человеку.

Очевидно, физическая активность – самая главная переменная при расчетах дневной нормы калорий. Если человек ведет активный образ жизни, постоянно занимается в спортзале или же занят тяжелой физической работой, само собой, он нуждается в большем количестве калорий, чем тот, кто постоянно сидит в офисе и выполняет работу за компьютером.

Следом за суточной нормой калорий следует норма питательных веществ, которые должен получить человек. Данная норма узнается из информации про суточную норму калорий у человека, которая позволяет сопоставить количество пищи, которую должен принимать пользователь. Для создания полезного меню, приложение также получает от пользователя информацию об его пищевых ограничениях, например, человек обладает аллергическими реакциями: если у человека непереносимость лактозы, то из его плана исключаются кисломолочные продукты. С этим же человек может обладать личными вкусовыми предпочтениями, что также будет учитываться приложением.

В системе реализовано три роли пользователей и их прав доступа к функциям приложения, а именно: администратор, авторизованный пользователь и неавторизованный пользователь. На рисунке 1 представлены диаграммы вариантов использования веб-приложения для каждой из ролей пользователей.

image001

Рисунок 1. Диаграмма вариантов использования.

Главное отличие авторизованного пользователя от неавторизованного заключается в том, что неавторизованный пользователь может пользоваться лишь ограниченным функционалом приложения: он может рассчитать свою норму калорий, белков, жиров, углеводов (далее КБЖУ), но не имеет возможности составить план питания на неделю.

Для реализации системы, которая будет создавать меню, необходимы две функции: подсчет КБЖУ и составление недельного рациона для пользователя. Для того, чтобы получить меню, пользователю необходимо внести свои данные – как уже описано выше – рост, вес, возраст, пол, какого рода его нагрузка: экстремально-активный/сидячий образ жизни, физическая/спортивная активность.

Изначально пользователь вводит свои данные в предложенной системой форме, затем они сохраняются в базу данных в таблицу «User_param». Модель User_param имеет функцию «get_kcal», с помощью которой, основываясь на значения данных в таблице «User_param», рассчитывается суточная норма КБЖУ пользователя по представленным формулам:

  • (10 x вес (кг) + 6.25 x рост (см) — 5 x возраст (г) + 5) x A – для мужчин;
  • (10 x вес (кг) + 6.25 x рост (см) — 5 x возраст (г) — 161) x A – для женщин [1].

На рисунке 2 представлены данные одного из пользователей.

image002

Рисунок 2. Пример данных пользователя.

Далее данные сохраняются в базу данных в таблицу параметров пользователя. После этого, при запросе, вызывается функция подсчета калорий и сохраняет полученные данные (суточная норма КБЖУ) в таблицу «User_prefs». В этой таблице имеются еще поля, отвечающие за вкусовые предпочтения пользователя, такие как: веганство, непереносимость лактозы, пищевые запреты религией. Данные таблицы «Предпочтения пользователя» предназначены для составления плана питания с учетом указанных предпочтений пользователей (Рисунок 3).

image003

Рисунок 3. Пример вкусовых предпочтений пользователя.

Полученная информация о суточной норме калорий, при подборе питания, разделится на четыре приема пищи в течение дня в установленной нормой соотношении: 30% – завтрак, 10% – поздний завтрак, 35% – обед, 25% – ужин [2].

План питания подбирается, основываясь на вкусовые предпочтения и суточную норму КБЖУ. У каждого из сохраненных блюд в базе данных есть связь с продуктами, которые используются в рецепте, так как продукты могут не подходить пользователям по вкусовым предпочтениям. Так же каждое блюдо имеет данные о своей пищевой ценности на 100 грамм, именно эти данные нужны, чтобы подобрать индивидуальный рацион для пользователя.

При запросе, функция создания плана питания сохраняет в таблицу «User_nutrition» блюдо и его количество (в граммах), которое нужно употребить в определенный прием пищи, чтобы суточная норма калорий была получена. На рисунке 4 можно увидеть пример составленного недельного меню для авторизованного пользователя.

image004

Рисунок 4. Пример меню авторизованного пользователя.

При тестировании системы создания недельного рациона была выявлена следующая проблема. Чтобы получить норму калорий в любой из приемов пищи, некоторые блюда, входящие в рацион, предлагаются системой в нерациональных количествах.

Приведем практический пример: при использовании системы мужчиной, который по условию весит 80 килограмм и ведет экстремально-активный образ жизни; его пищевые предпочтения ограничены по всем пунктам (непереносимость лактозы, веганство, мусульманство). Из-за таких пищевых ограничений значительно снижается количество подходящих блюд для создания плана питания, но в любом случае, системой будет предложено множество позиций, однако, некоторые из них необходимо будет употребить в чрезмерно больших количествах, например, в меню мужчины, в вышеуказанном практическом примере, порция «Жиросжигающего овощного напитка» только на завтрак будет составлять около 14 литров (Рисунок 5). Данная проблема происходит из-за того, что на текущий момент количество рецептов в системе ограничено, что в условиях рассматриваемого примера может привести к недостатку разнообразия блюд и некоторые позиции меню неизбежно начтут повторяться.

image005

Рисунок 5. Пример чрезмерно большой порции в приеме пищи

Одним из способов устранения данной проблемы можно предположить расширение базы данных готовых рецептов. Эта мера позволит отредактировать функцию подбора питания так, что будут учитываться не только вкусовые предпочтения пользователя, но и благоразумность принимаемого объема пищи.

Разработанное веб-приложение является удобным и эффективным инструментом для тех, кто следит за своим здоровьем и питанием, оно позволяет будущему пользователю легко отслеживать потребляемые калории, контролировать вес и другие параметры тела, и самое главное – создавать персональный план питания, в котором учитываются индивидуальные предпочтения пользователя. Благодаря данному приложению пользователи могут легко контролировать свое питание, улучшить свое здоровье и достичь желаемых результатов.

Список литературы

  1. Как правильно рассчитывать норму БЖУ в своем рационе и почему это важно делать // Государственное федеральное СМИ «Спорт-Экспресс Интернет» сетевое издание. – 2020. – URL: https://www.sport–ru/zozh/reviews/bzhu–chto–eto–takoe–kak–pravilno–rasschityvat–normu–pochemu–eto–vazhno–1946582/ (дата обращения: 10.10.2022).
  2. https://gpol3.ru/node/176 (про соотношение калорий).

Интересная статья? Поделись ей с другими: