Skip to content

Latest commit

 

History

History
88 lines (76 loc) · 6.08 KB

README.md

File metadata and controls

88 lines (76 loc) · 6.08 KB

Foodgram

Доменное имя: http://praktikum3.ddns.net/
IP-адрес: 51.250.85.212
Логин администратора: [email protected]
Пароль администратора: flvbybcnhfnjh

Проект Foodgram (Продуктовый помощник)

Дипломный проект по специальности "Python-разработчик" на обучающей платформе Яндекс.Практикум

На этом сервисе пользователи могут публиковать рецепты, подписываться на публикации других пользователей, добавлять понравившиеся рецепты в список «Избранное», а перед походом в магазин скачивать сводный список продуктов, необходимых для приготовления одного или нескольких выбранных блюд.

Стек технологий

  • Python 3.7
  • Django
  • Django Rest Framework
  • REST API
  • Djoser

Примеры API запросов:

  • [POST] /api/users/ - Зарегистрировать нового пользователя
  • [GET] /api/users/1/ - Получить информацию о пользователе с id=1
  • [POST] /api/auth/token/login/ - Получить Authtoken для входа в личный кабинет
  • [GET] /api/ingredients/?name=молоко - Получить список ингредиентов с поиском по имени
  • [GET] /api/recipes/?page=1&limit=3&is_favorited=1 - Получить все рецепты, добавленные в избранное. Разбить выдачу по 3 рецепта на странице, отобразить страницу 1
  • [GET] /api/recipes/?author=1&tags=dinner&tags=lunch - Получить все рецепты, которые созданы пользователем с id=1, и помеченные один из тегов: dinner, lunch
  • [DELETE] /api/users/{id}/subscribe/ - Отписаться от пользователя с заданным id
  • [POST] /api/recipes/{id}/shopping_cart/ - Добавить рецепт с заданным id в корзину

Пользовательский функционал

Что могут делать неавторизованные пользователи

  • Создать аккаунт
  • Просматривать рецепты на главной
  • Просматривать отдельные страницы рецептов
  • Просматривать страницы пользователей
  • Фильтровать рецепты по тегам

Что могут делать авторизованные пользователи

  • Входить в систему под своим логином и паролем
  • Выходить из системы (разлогиниваться)
  • Менять свой пароль
  • Создавать/редактировать/удалять собственные рецепты
  • Просматривать рецепты на главной
  • Просматривать страницы пользователей
  • Просматривать отдельные страницы рецептов
  • Фильтровать рецепты по тегам
  • Работать с персональным списком избранного: добавлять в него рецепты или удалять их, просматривать свою страницу избранных рецептов
  • Работать с персональным списком покупок: добавлять/удалять любые рецепты, выгружать файл со количеством необходимых ингридиентов для рецептов из списка покупок
  • Подписываться на публикации авторов рецептов и отменять подписку, просматривать свою страницу подписок

Что может делать администратор

  • Администратор обладает всеми правами авторизованного пользователя
  • Плюс к этому он может:
  • изменять пароль любого пользователя,
  • создавать/блокировать/удалять аккаунты пользователей,
  • редактировать/удалять любые рецепты,
  • добавлять/удалять/редактировать ингредиенты.
  • добавлять/удалять/редактировать теги.

Запуск приложения

  • Склонируйте репозитарий:
git clone [email protected]:dcomrad/foodgram-project-react
  • Установите Docker согласно инструкции с официального сайта: https://docs.docker.com/
  • В папке infra/ создайте файл .env и заполните его следующими переменными:
SECRET_KEY - секретный ключ Django приложения
DEBUG_MODE - флаг режима отладки (True/False)
DB_ENGINE - Django backend базы данных (например, django.db.backends.postgresql)
DB_NAME - имя базы данных
DB_USER - логин для подключения к БД (неприменимо для SQLite)
DB_PASSWORD - пароль для подключения к БД (неприменимо для SQLite)
DB_HOST - хост для подключения к БД (неприменимо для SQLite)
DB_PORT - порт для подключения к БД (неприменимо для SQLite)
  • В папке infra выполните следующую команду:
sudo docker compose up

Автор

Александр Бондаренко