Позволяет публиковать рецепты, сохранять избранные, а также формировать список покупок для выбранных рецептов.
- Рецепты на всех страницах сортируются по дате публикации (новые — выше).
- Работает фильтрация по тегам, в том числе на странице избранного и на странице рецептов одного автора.
- Работает пагинатор (в том числе при фильтрации по тегам).
- Для авторизованных пользователей:
- Доступна главная страница.
- Доступна страница другого пользователя.
- Доступна страница отдельного рецепта.
- Доступна страница «Мои подписки»:
- Можно подписаться и отписаться на странице рецепта.
- Можно подписаться и отписаться на странице автора.
- При подписке рецепты автора добавляются на страницу «Мои подписки» и удаляются оттуда при отказе от подписки.
- Доступна страница «Избранное»:
- На странице рецепта есть возможность добавить рецепт в список избранного и удалить его оттуда.
- На любой странице со списком рецептов есть возможность добавить рецепт в список избранного и удалить его оттуда.
- Доступна страница «Список покупок»:
- На странице рецепта есть возможность добавить рецепт в список покупок и удалить его оттуда.
- На любой странице со списком рецептов есть возможность добавить рецепт в список покупок и удалить его оттуда.
- Есть возможность выгрузить файл (.pdf) с перечнем и количеством необходимых ингредиентов для рецептов из «Списка покупок».
- Ингредиенты в выгружаемом списке не повторяются, корректно подсчитывается общее количество для каждого ингредиента.
- Доступна страница «Создать рецепт»:
- Есть возможность опубликовать свой рецепт.
- Есть возможность отредактировать и сохранить изменения в своём рецепте.
- Есть возможность удалить свой рецепт.
- Доступна и работает форма изменения пароля.
- Доступна возможность выйти из системы (разлогиниться)
- Для неавторизованных пользователей:
- Доступна главная страница
- Доступна страница отдельного рецепта
- Доступна и работает форма авторизации
- Доступна и работает система восстановления пароля
- Доступна и работает форма регистрации
- Администратор и админ-зона:
- Все модели выведены в админ-зону
- Для модели пользователей включена фильтрация по имени и email
- Для модели рецептов включена фильтрация по названию, автору и тегам
- На админ-странице рецепта отображается общее число добавлений этого рецепта в избранное
- Для модели ингредиентов включена фильтрация по названию
Проект доступен по адресу.
Документация по проекту доступна по адресу.
- Владимир Васильев | chem1sto
- Python 3.10.6
- Django 4.1.7
- Django Rest Framework 3.14.0
- Webcolors 1.12
- Reportlab 3.6.12
- Gunicorn 20.1.0
- Nginx
- Postgres
- Djoser 2.0.5
- Docker 20.10.23
- Docker Compose 2.15.1
- Клонируйте репозиторий:
git@github.com:chem1sto/foodgram-project-react.git
- Перейдите в него в командной строке:
cd foodgram-project-react/
- Cоздайте и активируйте виртуальное окружение:
python3 -m venv venv
source env/bin/activate
- Установите зависимости из файла requirements.txt:
python3 -m pip install --upgrade pip
pip install -r requirements.txt
- Перейдите в папку foodgram-project-react/infra/
cd infra/
- Выполните команду для развертывания приложения и его запуска:
docker compose up -d
- Выполните миграции:
docker compose exec backend python manage.py makemigrations users recipes
docker compose exec backend python manage.py migrate
- Загрузите в базу данные из CSV-файлов:
python manage.py upload ingredients.csv tags.csv
- Соберите все статические файлы в папку static:
docker compose exec backend python manage.py collectstatic --no-input
- Создайте суперпользователя:
docker compose exec backend python manage.py createsuperuser
- Приложение активно и готово к использованию. Можно перейти по адресу и авторизоваться, введя свои данные от созданного суперпользователя.
Доступна после запуска сервера: Redoc.
- Клонируйте репозиторий:
git@github.com:chem1sto/foodgram-project-react.git
- Установите на сервере Docker, Docker Compose:
sudo apt install curl # установка утилиты для скачивания файлов
curl -fsSL https://get.docker.com -o get-docker.sh # скачать скрипт для установки
sh get-docker.sh # запуск скрипта
sudo apt-get install docker-compose-plugin # последняя версия docker compose
- На сервере перейдите в папку foodgram-project-react/infra/
cd foodgram-project-react/infra/
- Создайте и запустите контейнеры Docker, выполнив команду на сервере (версии команд "docker compose" или "docker-compose" отличаются в зависимости от установленной версии Docker Compose):
sudo docker compose up -d
- Выполните миграции:
sudo docker compose exec backend python manage.py makemigrations users recipes
sudo docker compose exec backend python manage.py migrate
- Загрузите в базу данные из CSV-файлов:
sudo python manage.py upload ingredients.csv tags.csv
- Соберите все статические файлы в папку static:
sudo docker compose exec backend python manage.py collectstatic --no-input
- Создайте суперпользователя:
sudo docker compose exec backend python manage.py createsuperuser
-
Приложение активно и готово к использованию. Доступно по IP-адресу (домену) вашего текущего сервера.
-
Для остановки контейнеров Docker:
sudo docker compose stop
- Для удаления контейнеров Docker:
sudo docker compose down -v # с удалением контейнеров и volumes
sudo docker compose down # без удаления volumes