«Продуктовый помощник» - это интерактивное веб-приложение, которое позволяет пользователям делиться своими рецептами, добавлять чужие рецепты в избранное и подписываться на публикации других авторов. Сервис также предоставляет удобный инструмент «Список покупок», с помощью которого пользователи могут скачать список добавленных ингредиентов в виде PDF файла.
Вот основной функционал, доступный веб-приложению:
- Рецепты: Пользователи могут создавать рецепты, указывать автора, название, картинку, описание, ингредиенты, теги и время приготовления. Все поля являются обязательными для заполнения.
- Теги: Рецепты могут быть помечены тегами, которые помогают классифицировать и фильтровать рецепты. Каждый тег имеет название, цветовой HEX-код и slug. Все поля тега также обязательны для заполнения и должны быть уникальными.
- Ингредиенты: Данные об ингредиентах хранятся в нескольких связанных таблицах. Пользователи могут указывать название ингредиента, его количество и единицы измерения. Все поля ингредиента обязательны для заполнения.
- Главная страница: На главной странице отображается список первых шести рецептов, отсортированных по дате публикации. Для остальных рецептов доступна пагинация.
- Страница рецепта: На странице рецепта предоставляется полное описание рецепта. Авторизованные пользователи могут добавлять рецепты в избранное и в список покупок, а также подписываться на автора рецепта.
- Страница пользователя: На странице пользователя отображается имя пользователя, все рецепты, опубликованные им, и возможность подписаться на пользователя.
- Подписка на авторов: Авторизованные пользователи могут подписываться на публикации авторов рецептов и отменять подписку. Страница подписок доступна только владельцу.
- Список избранного: Авторизованные пользователи могут добавлять рецепты в свой список избранного, просматривать его и при необходимости удалять рецепты из него.
- Список покупок: Авторизованные пользователи могут создавать список покупок на основе рецептов, добавлять и удалять рецепты из списка. Также доступна функция скачивания списка покупок в формате PDF, который содержит суммированный перечень и количество необходимых ингредиентов для всех рецептов из списка. При скачивании списка покупок ингредиенты в результирующем списке не дублируются.
- Фильтрация по тегам: Пользователи могут фильтровать рецепты по тегам. При выборе тега выводится список рецептов, отмеченных этим тегом. Фильтрация может проводиться по нескольким тегам в комбинации "или".
- Регистрация и авторизация: Пользователям предоставляется возможность регистрации и авторизации в системе. Различные уровни доступа (гость, авторизованный пользователь, администратор) определяют, какой функционал доступен каждому типу пользователя.
Продуктовый помощник предоставляет удобный интерфейс для управления рецептами, позволяет организовывать списки покупок и находить нужные рецепты с помощью фильтрации по тегам. Это полезный инструмент для любителей готовить и планировать приготовление блюд.
Проект разработан с использованием следующих технологий:
- React
- Django Rest Framework
- PostgreSQL
- Docker
- Nginx
- Убедитесь, что у вас установлен Docker и Docker Compose. Если их нет, следуйте инструкциям на официальном сайте Docker для их установки на вашу операционную систему.
- Склонируйте репозиторий проекта на свою локальную машину
git@github.com:qwertttyyy/foodgram-project-react.git
- Перейдите в папку infra:
cd infra
- Запустите проект с помощью Docker Compose:
docker-compose up -d
- Проект будет запущен и будет доступен по адресу http://localhost.