Foodgram - это онлайн-сервис, на котором пользователи могут публиковать рецепты, подписываться на публикации других пользователей, добавлять понравившиеся рецепты в список «Избранное», а перед походом в магазин скачивать сводный список продуктов, необходимых для приготовления одного или нескольких выбранных блюд.
Для развёртывания проетка вам потребуется установить Docker и docker compose на вашей виртуальной машине. Инструкции по установке для вашей операционной системы можно найти на официальном сайте Docker.
- Скопируйте папки frontend и infra этого репозитория на вашу виртуальную машину.
- В папке infra создайте файл переменных окружения по данному образцу:
SECRET_KEY=<ваш секретный ключ для settings.py Django проекта>
DB_ENGINE=django.db.backends.postgresql
DB_NAME=<имя вашей базы postgres>
POSTGRES_USER=<имя пользователя для допуска к базе>
POSTGRES_PASSWORD=<пароль для допуска к базе>
DB_HOST=db
DB_PORT=5432
- Запустите команду
docker-compose up
- Далее выполнить последовательно следующие команды для применения миграций, создания суперпользователя и сбора статических файлов проекта:
sudo docker-compose exec backend python migrate
sudo docker-compose exec backend python manage.py createsuperuser
sudo docker-compose exec backend python manage.py collectstatic --no-input
В качестве примера для базы данных создано несколько записей и заполнен список ингредиентов, хранящихся в файле datadump.json
. Их можно внести в базу данных развернутого проекта следующей командой:
sudo docker-compose exec backend python manage.py loaddata datadump.json
Foodgram предлагает следующие функции:
- Публикация рецептов: пользователи могут публиковать свои рецепты, указывая ингридиенты и их количество, прикрепляя картинку, помечая рецепт тэгами (например, "завтрак") для удобства их поиска.
- Подписка на пользователей: пользователи могут подписываться на публикации других пользователей.
- Добавление рецептов в избранное: пользователи могут добавлять понравившиеся рецепты в список "Избранное".
- Скачивание списка продуктов: пользователи могут скачивать список продуктов, необходимых для приготовления выбранных блюд.
- FRONTEND: команда Яндекс.Практикум
- BACKEND: Дмитрий Смолов