Skip to content

Foodgram - сервис для публикации рецептов

Notifications You must be signed in to change notification settings

BKSLab/foodgram-project-react

Repository files navigation

Проект Foodgram

Foodgram - сервис для публикации пользователями рецептов своих любимых блюд.

После регистрации и авторизации пользователю Foodgram будет доступно:

  • публикация своих рецептов;
  • редактирование и удаление своих рецептов;
  • просмотр профиля авторов рецептов;
  • подписываться на любимых авторов рецептов;
  • добавлять понравившиеся рецепты в избранное;
  • на основе рецептов, добавленных в список покупок формировать список продуктов, необходимых для приготовления рецептов из списка покупок.

Если вы не авторизованный пользователь, голодным не останетесь. Для вас доступен просмотр всех опубликованных рецептов.

Страницы проекта Foodgram

  • главная страница
  • страница регистрации пользователя
  • API проекта доступен по адресу: localhost/api/
  • документация к API доступна по адресу: localhost/api/docs/

Варианты формирования запросов к API

Регистрация пользователя на сайте

Endpoint: localhost/api/users/

Права доступа: доступно неавторизованным пользователлям

Метод: POST

Пример запроса:

{
"email": "vpupkin@yandex.ru",
"username": "vasya.pupkin",
"first_name": "Вася",
"last_name": "Пупкин",
"password": "Qwerty123"
}

Пример ответа:

{
"email": "vpupkin@yandex.ru",
"id": 0,
"username": "vasya.pupkin",
"first_name": "Вася",
"last_name": "Пупкин"
}

Создание рецепта

Endpoint: localhost/api/recipes/

Метод: POST

Права доступа: доступно авторизованным пользователлям

Пример запроса:

{
"ingredients": [
    {
    "id": 1123,
    "amount": 10
    }
],
"tags": [
    1,
    2
],
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAgMAAABieywaAAAACVBMVEUAAAD///9fX1/S0ecCAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAACklEQVQImWNoAAAAggCByxOyYQAAAABJRU5ErkJggg==",
"name": "string",
"text": "string",
"cooking_time": 1
}

Пример ответа:

{
"id": 0,
"tags": [
    {
    "id": 0,
    "name": "Завтрак",
    "color": "#E26C2D",
    "slug": "breakfast"
    }
],
"author": {
    "email": "user@example.com",
    "id": 0,
    "username": "string",
    "first_name": "Вася",
    "last_name": "Пупкин",
    "is_subscribed": false
},
"ingredients": [
    {
    "id": 0,
    "name": "Картофель отварной",
    "measurement_unit": "г",
    "amount": 1
    }
],
"is_favorited": true,
"is_in_shopping_cart": true,
"name": "string",
"image": "http://foodgram.example.org/media/recipes/images/image.jpeg",
"text": "string",
"cooking_time": 1
}

Создание суперпользователя для работы с панелью администратора

После разворачивания проекта на сервере в Docker контейнерах, необходимо подключиться к контейнеру бэкенда и дать команду для создания суперпользователя.
Сделать это можно следующей командой:

sudo docker compose -f docker-compose.production.yml exec backend python manage.py createsuperuser

После чего необходимо аккуратно ввести запрашиваемые данные. Обязательно создайте надежный и безопасный пароль

Загрузка ингредиентов

Для того, чтобы пользователи могли создавать рецепты, необходимо выгрузить данные об ингредиентах в БД из подготовленного CSV файла.
После того, как проект будет полностью запущен на сервере, введите следующую команду:

sudo docker compose -f docker-compose.production.yml exec backend python manage.py load

Об авторе

  • Барабанщиков Кирилл, Удмуртская республика, г. Ижевск

Вы можете меня найти:

Технологии

  • Python:3.9
  • Django 3.2.3
  • DjangoRestFramework 3.12.4

Releases

No releases published

Packages

No packages published