НА ГИТХАБЕ ЕСТЬ ГОТОВЫЕ ПРОЕКТЫ, но работа будет проходить через антиплагиат, поэтому нужно будет полностью изменить
Проект «Фудграм» — сайт, на котором пользователи будут публиковать рецепты, добавлять чужие рецепты в избранное и подписываться на публикации других авторов. Пользователям сайта также будет доступен сервис «Список покупок». Он позволит создавать список продуктов, которые нужно купить для приготовления выбранных блюд.
У будущего веб-приложения уже есть готовый фронтенд — это одностраничное SPA-приложение, написанное на фреймворке React. Файлы, необходимые для его сборки, хранятся в репозитории foodgram-project-react в папке frontend.
Ваша задача как бэкенд-разработчика — написать бэкенд, включая API, для веб-приложения «Фудграм», а также опубликовать это веб-приложение на вашем виртуальном удалённом сервере и сделать его доступным в интернете.
Никаких жёстких рамок по структуре и содержанию кода нет, однако есть технические условия общего плана, которые должны быть соблюдены.
Как должно работать веб-приложение
Проект состоит из следующих страниц:
главная,
страница рецепта,
страница пользователя,
страница подписок,
избранное,
список покупок,
создание и редактирование рецепта.
Главная
Содержимое главной — список первых шести рецептов, отсортированных по дате публикации «от новых к старым». На этой странице нужно реализовать постраничную пагинацию. Остальные рецепты должны быть доступны на следующих страницах.
Страница пользователя
На странице — имя пользователя, все рецепты, опубликованные пользователем и возможность подписаться на пользователя.
Должна быть возможность скачать список покупок в формате .txt, pdf или любом другом, который вы посчитаете удобным для пользователя.
Проект доступен по IP или доменному имени.
Все сервисы и страницы доступны для пользователей в соответствии с их правами.
Для авторизованных пользователей:
1. Доступна главная страница.
2. Доступна страница другого пользователя.
3. Доступна страница отдельного рецепта.
4. Доступна страница «Мои подписки»:
a. можно подписаться и отписаться на странице рецепта;
b. можно подписаться и отписаться на странице автора;
c. при подписке рецепты автора добавляются на страницу «Мои подписки» и удаляются оттуда при отказе от подписки.
5. Доступна страница «Избранное»:
a. на странице рецепта есть возможность добавить рецепт в список избранного и удалить его оттуда;
b. на любой странице со списком рецептов есть возможность добавить рецепт в список избранного и удалить его оттуда.
6. Доступна страница «Список покупок»:
a. на странице рецепта есть возможность добавить рецепт в список покупок и удалить его оттуда;
b. на любой странице со списком рецептов есть возможность добавить рецепт в список покупок и удалить его оттуда;
c. есть возможность выгрузить файл с перечнем и количеством необходимых ингредиентов для рецептов из «Списка покупок»;
d. ингредиенты в выгружаемом списке не повторяются, корректно подсчитывается общее количество для каждого ингредиента.
7. Доступна страница «Создать рецепт»:
a. есть возможность опубликовать свой рецепт;
b. есть возможность отредактировать и сохранить изменения в своём рецепте;
c. есть возможность удалить свой рецепт.
8. Доступна возможность выйти из системы.
Для неавторизованных пользователей:
1. Доступна главная страница.
2. Доступна страница отдельного рецепта.
3. Доступна страница любого пользователя.
4. Доступна и работает форма авторизации.
5. Доступна и работает система восстановления пароля.
6. Доступна и работает форма регистрации.
Администратор и админ-зона:
1. Все модели выведены в админ-зону.
2. Для модели пользователей включена фильтрация по имени и email.
3. Для модели рецептов включена фильтрация по названию, автору и тегам.
4. На админ-странице рецепта отображается общее число добавлений этого рецепта в избранное.
5. Для модели ингредиентов включена фильтрация по названию.
Рецепты на всех страницах сортируются по дате публикации (новые — выше).
Работает фильтрация по тегам, в том числе на странице избранного и на странице рецептов одного автора.
Работает пагинатор, в том числе при фильтрации по тегам.
Исходные данные предзагружены; добавлены тестовые пользователи и рецепты.
Обрабатывается ошибка 404.
Проект работает с СУБД PostgreSQL.
Проект запущен на виртуальном удалённом сервере в трёх контейнерах: nginx, PostgreSQL и Django+Gunicorn. Заготовленный контейнер с фронтендом используется для сборки файлов.
Контейнер с проектом обновляется на Docker Hub.
В nginx настроена раздача статики, запросы с фронтенда переадресуются в контейнер с Gunicorn. Джанго-админка работает напрямую через Gunicorn.
Данные сохраняются в volumes.
Код соответствует PEP8.
Проект мне нужно будет запушить на гитхаб-аккаунт и сделать деплой на боевой сервер в докер контейнерах и потом автоматизировать развертывание через GitHub Actions.
Разделы:
Опубликован:
11.05.2025 | 10:46 [поднят: 11.05.2025 | 10:46]
Заказ находится в архиве