Giter Club home page Giter Club logo

foodgram-project-react's Introduction

example workflow

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

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

Ресурсы API «Продуктовый помощник»:

Доступ к API осуществляется через ресурс /api/

  • Ресурс auth - доступ получению и изменению токена аутентификации
  • Ресурс tags - доступ к списку тэгов или конкретному тэгу
  • Ресурс users - доступ к списку пользователей, регистрации пользователя, профилю пользователя, текущему пользователю, изменению пароля
  • Ресурс ingredients - доступ к списку ингредиентов или конкретному ингредиенту

Внутри ресурса users:

  • Ресурс subscriptions - доступ к списку подписок
  • Ресурс subscribe - осуществление подписки на пользователя или отписки от него
  • Ресурс recipes - доступ к списку рецептов, конкретному рецепту, созданию рецепта, обновлению рецепта, удалению рецепта

Внутри ресурса recipes:

  • Ресурс shopping_cart - добавление или удаление корзины покупок
  • Ресурс download_shopping_cart - скачивание ингредиентов из списка покупок
  • Ресурс favorite - добавление рецепта в избранное или удаление из избранного

Инструкции по установке:

Клонируйте репозиторий
[email protected]:epsilonm/foodgram-project-react.git

Перейдите в директорию foodgram-project-react/infra
cd foodgram-project-react/infra

Создайте файл .env и укажите в нем следующие параметры:\

DEBUG = False
DB_ENGINE=django.db.backends.postgresql
DB_NAME=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
DB_HOST=db
DB_PORT=5432

Запустите контейнеры
docker-compose up -d --build

Примените миграции
docker-compose exec backend python manage.py migrate

Создайте супер-пользователя
docker-compose exec backend python manage.py createsuperuser

Соберите статику
docker-compose exec backend python manage.py collectstatic --no-input

Наполните базу ингредиентами
docker-compose exec backend python manage.py upload_json data/ingredients.json -i

Наполните базу тэгами
docker-compose exec backend python manage.py upload_json data/tags.json -t

Остановить проект
docker-compose down

Доступ к документации

После запуска контейнеров, доступ к документации осуществляется по ссылке: http://localhost/api/docs/redoc.html

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

Создание рецепта POST | http://localhost/api/recipes/

Request

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

Response

{
  "id": 0,
  "tags": [
    {
      "id": 0,
      "name": "Завтрак",
      "color": "#E26C2D",
      "slug": "breakfast"
    }
  ],
  "author": {
    "email": "[email protected]",
    "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
}

foodgram-project-react's People

Contributors

epsilonm avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.