Skip to content

Foodgram - продуктовый помощник, с помощью которого, можно создавать рецепты, добавлять в избраное, создавать список покупок и подписываться на авторов рецептов.

Notifications You must be signed in to change notification settings

mxnoob/foodgram

Repository files navigation

Продуктовый помощник

GitHub - Test status pre-commit.ci status

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

Django Django-REST-Framework PostgreSQL Nginx gunicorn docker

Описание

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

В списке покупок можно скачать `.pdf` файл, который включает в себя список ингредиентов и названия рецептов.

Запуск

# Склонировать репозиторий
git clone [email protected]:mxnoob/foodgram.git

Important

Необходимо создать файл .env с переменными окружения в папке infra.
Пример файла infra/.env.example

# Запустить докер композ
docker compose -f infra/docker-local.yml up -d --build

Как наполнить БД данными

# Добавить теги
docker compose -f infra/docker-local.yml python manage.py add_tags
# Добавить ингредиенты
docker compose -f infra/docker-local.yml python manage.py add_ingredients

Пример запросов/ответов

Get all items

  GET /api/recipes/
Parameter Type Description
page integer Номер страницы.
limit integer Количество объектов на странице.
is_favorited integer Enum: 0 1. Показывать только рецепты, находящиеся в списке избранного.
is_in_shopping_cart integer Enum: 0 1. Показывать только рецепты, находящиеся в списке покупок.
author integer Показывать рецепты только автора с указанным id.
tags Array of strings xample: tags=lunch&tags=breakfast. Показывать рецепты только с указанными тегами (по slug)
Response
{
  "count": 123,
  "next": "http://foodgram.example.org/api/recipes/?page=4",
  "previous": "http://foodgram.example.org/api/recipes/?page=2",
  "results": [
    {
      "id": 0,
      "tags": [
        {
          "id": 0,
          "name": "Завтрак",
          "slug": "breakfast"
        }
      ],
      "author": {
        "email": "[email protected]",
        "id": 0,
        "username": "string",
        "first_name": "Вася",
        "last_name": "Иванов",
        "is_subscribed": false,
        "avatar": "http://foodgram.example.org/media/users/image.png"
      },
      "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.png",
      "text": "string",
      "cooking_time": 1
    }
  ]
}

Get item

  GET /api/recipes/{id}/
Response
{
  "id": 0,
  "tags": [
    {
      "id": 0,
      "name": "Завтрак",
      "slug": "breakfast"
    }
  ],
  "author": {
    "email": "[email protected]",
    "id": 0,
    "username": "string",
    "first_name": "Вася",
    "last_name": "Иванов",
    "is_subscribed": false,
    "avatar": "http://foodgram.example.org/media/users/image.png"
  },
  "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.png",
  "text": "string",
  "cooking_time": 1
}
Parameter Type Description
id string Required. Уникальный идентификатор этого рецепта

Автор:

mxnoob

About

Foodgram - продуктовый помощник, с помощью которого, можно создавать рецепты, добавлять в избраное, создавать список покупок и подписываться на авторов рецептов.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published