Чек-лист для проверки
Функциональность проекта
Проект доступен по IP или доменному имени.
Все сервисы и страницы доступны для пользователей в соответствии с их правами.
Рецепты на всех страницах сортируются по дате публикации (новые — выше).
Работает фильтрация по тегам, в том числе на странице избранного и на странице рецептов одного автора).
Работает пагинатор (в том числе при фильтрации по тегам).
Обрабатывается ошибка 404.
Для авторизованных пользователей:
- Доступна главная страница.
- Доступна страница другого пользователя.
- Доступна страница отдельного рецепта.
Доступна страница «Мои подписки».
- Можно подписаться и отписаться на странице рецепта.
- Можно подписаться и отписаться на странице автора.
- При подписке рецепты автора добавляются на страницу «Мои подписки» и удаляются оттуда при отказе от подписки.
Доступна страница «Избранное».
- На странице рецепта есть возможность добавить рецепт в список избранного и удалить его оттуда.
- На любой странице со списком рецептов есть возможность добавить рецепт в список избранного и удалить его оттуда.
Доступна страница «Список покупок».
- На странице рецепта есть возможность добавить рецепт в список покупок и удалить его оттуда.
- На любой странице со списком рецептов есть возможность добавить рецепт в список покупок и удалить его оттуда.
- Есть возможность выгрузить файл (txt или PDF) со перечнем и количеством необходимых продуктов для рецептов из «Списка покупок».
- Ингредиенты в выгружаемом списке не повторяются, корректно подсчитывается общее количество для каждого ингредиента.
Доступна страница «Создать рецепт».
- Есть возможность опубликовать свой рецепт.
- Есть возможность отредактировать и сохранить изменения в своём рецепте.
- Есть возможность удалить свой рецепт.
- Доступна и работает форма изменения пароля.
- Доступна возможность выйти из системы (разлогиниться).
Для неавторизованных пользователей
- Доступна главная страница.
- Доступна страница отдельного рецепта.
- Доступна страница любого пользователя.
- Доступна и работает форма авторизации.
- Доступна и работает система восстановления пароля.
- Доступна и работает форма регистрации.
Администратор и админ-зона
- Все модели выведены в админ-зону.
- Для модели пользователей включена фильтрация по имени и email.
- Для модели рецептов включена фильтрация по названию.
- Для модели ингредиентов включена фильтрация по названию.
Инфраструктура
- Проект работает с СУБД PostgreSQL.
- Проект запущен на сервере в Яндекс.Облаке в трёх контейнерах: nginx, PostgreSQL и Django+Gunicorn.
- Контейнер с проектом обновляется на Docker Hub.
- В nginx настроена раздача статики, остальные запросы переадресуются в Gunicorn.
- Данные сохраняются в volumes.
Оформление кода
Код соответствует PEP8.