Skip to content

API for creating recipes, subscribing to favorite authors, adding recipes to favorites or shopping list. The shopping list is also available for download.

Notifications You must be signed in to change notification settings

mawuta-super-hack/foodgram-project-react

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Проект FoodGram - api для сайта для публикации рецептов.

Здесь вы можете создавать рецепты, подписываться на любимых авторов, добавлять рецепты в избранное или список покупок Список покупок также доступен для скачивания.

Возможности API:

  • Регистрация пользователя, получение или удаление токена авторизации.
  • Получение списка пользователей, получение списка подписчиков.
  • Получение или удаление подписки на любимых авторов.
  • Получение, создание, обновление, удаление рецептов.
  • Добавление рецептов в избранное или в список покупок, удаление рецепта из избранного или из списка покупок.
  • Скачивание списка покупок в формате txt.

Технологии:

Python Django DjangoREST Docker GitHub Actions Postgres Nginx

Описание команд для запуска приложения локально в контейнерах с помощью Docker:

Клонировать репозиторий и перейти в него в командной строке:

git clone https://github.com/mawuta-super-hack/foodgram-poject-react.git
cd ./foodgram-poject-react/infra

Запуск docker-compose:

docker-compose up -d --build

Выполнение миграций:

docker-compose exec backend python manage.py migrate

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

docker-compose exec backend python manage.py createsuperuser

Cбор статики:

docker-compose exec backend python manage.py collectstatic --no-input 

Создание резервной копии БД:

docker-compose exec backend python manage.py dumpdata > fixtures.json

Пример наполнения .env-файла:

DB_ENGINE=django.db.backends.postgresql <br>
DB_NAME=(имя базы данных)<br>
POSTGRES_USER=(логин для подключения к БД)<br>
POSTGRES_PASSWORD=(пароль для подключения к БД)<br>
DB_HOST=(название сервиса/контейнера)<br>
DB_PORT=(порт для подключения к БД)<br>
SECRET_KEY=(автоматически сгенерированное значение переменной при создании проекта django)<br>

Импорт данных из csv для наполнения базы:

Импорт данных реализуется за счет применения миграций: 0009_add_ingredients.py и 0011_add_tags.py
Путь до файлов миграций: foodgram-project-react/backend/foodgram/foods/migrations/

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

[
  {
    "count": 0,
    "next": "string",
    "previous": "string",
    "results": [
      {
        "name": "string",
        "slug": "string"
      }
    ]
  }
]
{
  "ingredients": [
    {
      "id": 13,
      "amount": 10
    }
  ],
  "tags": [
    4
    
  ],
  "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAgMAAABieywaAAAACVBMVEUAAAD///9fX1/S0ecCAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAACklEQVQImWNoAAAAggCByxOyYQAAAABJRU5ErkJggg==",
  "name": "Салат",
  "text": "вкусный",
  "cooking_time": 12
}

Автор проекта:
Клименкова Мария Github

About

API for creating recipes, subscribing to favorite authors, adding recipes to favorites or shopping list. The shopping list is also available for download.

Topics

Resources

Stars

Watchers

Forks