Foodgram
или приложение «Продуктовый помощник» - это сайт, на котором пользователи публикуют рецепты, добавляют чужие рецепты в избранное и подписываются на публикации других авторов. Сервис «Список покупок» позволяет пользователям создавать список продуктов, которые нужно купить для приготовления выбранных блюд.
- Python 3.10
- Django 4.1.4
- Django Rest Framework 3.12.4
- Gunicorn 20.1.0
- Psycopg2 binary 2.9.5
- Просмотр опубликованных рецептов.
- Публикация рецептов.
- При создании рецепта выбираются ингредиенты из предустановленного списка, указывается их количество.
- Фильтрация рецептов по тегам.
- Добавление рецептов в Избранное.
- Добавление рецептов в Список покупок.
- Печать Списка покупок: печать требуемых для приготовления блюд ингредиентов и их количества.
- Подписка на авторов.
- Просмотр своих подписок. На странице подписки у каждого автора выведены его последние опубликованные рецепты.
- Просмотр страницы автора со списков опубликованных им рецептов.
- Регистрация и авторизация пользователей. Разные уровни доступа для гостей и авторизованных пользователей.
Для реализации проекта Яндекс.Практикум предоставил техническое задание и готовый фронтенд (одностраничное приложение на фреймворке React). На основе этого был полностью написан бэкенд приложения (созданы модели, админ-панель и реализован API).
- контейнер для бэкенда проекта;
- контейнер для фронтенда проекта;
- контейнер для базы данных Postgres (образ postgres:13.0-alpine);
- контейнер для веб-сервера Nginx (образ nginx:1.19.3).
Для работы с базой данных необходим env-файл с переменными окружения. Пример наполнения env-файла:
DB_ENGINE=django.db.backends.postgresql
DB_NAME=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=12345
DB_HOST=db
DB_PORT=5432
- Развернуть проект:
docker-compose up -d
- Выполнить миграции, создать суперпользователя и собрать статику:
docker-compose exec backend python manage.py migrate
docker-compose exec backend python manage.py createsuperuser
docker-compose exec backend python manage.py collectstatic --no-input
- Наполнить проект данными об ингредиентах для рецептов:
docker-compose exec backend python manage.py load_csv
The MIT License (MIT)
Студент Яндекс.Практикум,
Дарья Матвиевская