Сайт представляет собой сервис с возможностью оформления подписки.
При оформлении подписки, подписчик сам выбирает параметры для формирования плана питания.
Сервис не просто выдает рецепты, а так же высчитывает затраты на еду, формирует рецепты исходя из индивидуальных особенностей подписчика включая различные виды аллергии, кол-во приемов пищи и прочее.
Для запуска сайта вам понадобится Python третьей версии.
Скачайте код с GitHub:
git clone https://github.com/inkvizitor1991/food_plan
Создайте и активируйте виртуальное окружение:
cd food_plan
python -m venv venv
source venv/bin/activate
Установите зависимости:
pip install -r requirements.txt
Создайте базу данных SQLite:
python3 manage.py migrate
Запустите тестовую версию сервера:
python3 manage.py runserver
Часть настроек проекта берётся из переменных окружения. Чтобы их определить, создайте файл .env
рядом с manage.py
и запишите туда данные в таком формате: ПЕРЕМЕННАЯ=значение
.
Доступны несколько переменных:
DEBUG
— дебаг-режим. ПоставьтеTrue
, чтобы увидеть отладочную информацию в случае ошибки.SECRET_KEY
— секретный ключ проектаALLOWED_HOSTS
— см документацию Django.EDAMAM_APP_ID
— id приложения Edamam. Необязательно, нужно для заполнения базы тестовыми данными.EDAMAM_APP_KEY
— ключ приложения Edamam. Необязательно, нужно для заполнения базы тестовыми данными.BREAKFAST_TIME
— время в которое блюдо в подписках будет заменяться на завтрак. По умолчанию -4:00
.LUNCH_TIME
— время в которое блюдо в подписках будет заменяться на обед. По умолчанию -10:00
.DINNER_TIME
— время в которое блюдо в подписках будет заменяться на ужин или новогоднее меню. По умолчанию -16:00
.DESSERT_TIME
— время в которое блюдо в подписках будет заменяться на десерт. По умолчанию -12:00
.YOOKASSA_ACCOUNT_ID
— id магазина для платежей.YOOKASSA_SECRET_KEY
— секретный ключ магазина.
Для создания платежного кабинета ЮKassa зарегистрируйтесть на сайте https://yookassa.ru/ и подключите магазин.
Для заполнения базы данных тестовыми данными необходимо, чтобы были заданы переменные среды EDAMAM_APP_ID
и EDAMAM_APP_ID
.
Выполните команду:
venv/bin/python manage.py seed
Доступны два параметра:
--search
- поисковый запрос к Edamam Recipe API.--pages
- число страниц ответа API, которое необходимо обработать.
Для того чтобы блюда в подписках периодически менялись, выполните команду:
venv/bin/python manage.py run_food_change
Код написан в учебных целях — для курса по Python и веб-разработке на сайте Devman.