Чек-лист для проверки

Функциональность проекта

Проект доступен по IP или доменному имени.
Все сервисы и страницы доступны для пользователей в соответствии с их правами.
Рецепты на всех страницах сортируются по дате публикации (новые — выше).
Работает фильтрация по тегам, в том числе на странице избранного и на странице рецептов одного автора).
Работает пагинатор (в том числе при фильтрации по тегам).
Обрабатывается ошибка 404.

Для авторизованных пользователей:

  1. Доступна главная страница.
  2. Доступна страница другого пользователя.
  3. Доступна страница отдельного рецепта.
  4. Доступна страница «Мои подписки».
    1. Можно подписаться и отписаться на странице рецепта.
    2. Можно подписаться и отписаться на странице автора.
    3. При подписке рецепты автора добавляются на страницу «Мои подписки» и удаляются оттуда при отказе от подписки.
  5. Доступна страница «Избранное».
    1. На странице рецепта есть возможность добавить рецепт в список избранного и удалить его оттуда.
    2. На любой странице со списком рецептов есть возможность добавить рецепт в список избранного и удалить его оттуда.
  6. Доступна страница «Список покупок».
    1. На странице рецепта есть возможность добавить рецепт в список покупок и удалить его оттуда.
    2. На любой странице со списком рецептов есть возможность добавить рецепт в список покупок и удалить его оттуда.
    3. Есть возможность выгрузить файл (txt или PDF) со перечнем и количеством необходимых продуктов для рецептов из «Списка покупок».
    4. Ингредиенты в выгружаемом списке не повторяются, корректно подсчитывается общее количество для каждого ингредиента.
  7. Доступна страница «Создать рецепт».
    1. Есть возможность опубликовать свой рецепт.
    2. Есть возможность отредактировать и сохранить изменения в своём рецепте.
    3. Есть возможность удалить свой рецепт.
  8. Доступна и работает форма изменения пароля.
  9. Доступна возможность выйти из системы (разлогиниться).

Для неавторизованных пользователей

  1. Доступна главная страница.
  2. Доступна страница отдельного рецепта.
  3. Доступна страница любого пользователя.
  4. Доступна и работает форма авторизации.
  5. Доступна и работает система восстановления пароля.
  6. Доступна и работает форма регистрации.

Администратор и админ-зона

  1. Все модели выведены в админ-зону.
  2. Для модели пользователей включена фильтрация по имени и email.
  3. Для модели рецептов включена фильтрация по названию.
  4. Для модели ингредиентов включена фильтрация по названию.

Инфраструктура

  1. Проект работает с СУБД PostgreSQL.
  2. Проект запущен на сервере в Яндекс.Облаке в трёх контейнерах: nginx, PostgreSQL и Django+Gunicorn.
  3. Контейнер с проектом обновляется на Docker Hub.
  4. В nginx настроена раздача статики, остальные запросы переадресуются в Gunicorn.
  5. Данные сохраняются в volumes.

Оформление кода

Код соответствует PEP8.