Skip to content

Foodgram - онлайн-платформа для обмена рецептами.

Notifications You must be signed in to change notification settings

chrnmaxim/foodgram

Repository files navigation

Foodgram

Python Django DjangoREST Postgres Swagger

Foodgram — проект, созданный во время обучения в Яндекс Практикуме. Этот проект — часть учебного курса, но он создан полностью самостоятельно.

Цель проекта — дать возможность пользователям создавать и хранить рецепты на онлайн-платформе. Кроме того, можно скачать список продуктов, необходимых для приготовления блюда, просмотреть рецепты друзей и добавить любимые рецепты в список избранных.

Проект доступен для ознакомления по ссылке — https://foodgram-practicum.ddns.net/.

Документация API проекта в формате Swagger UIhttps://foodgram-practicum.ddns.net/api/swagger/.

Технологии:

  • Python 3.11
  • Django 5.0
  • Django REST framework 3.15
  • CI/CD с использованием GitHub Actions и Docker

Установка и запуск проекта

Склонируйте проект:

git clone git@github.com:chrnmaxim/foodgram.git

Запуск проекта в режиме разработки

  1. В корневой директории проекта создайте .env на основе .env.example:
cp -r .env.example .env
  1. Запустите базу данных PostgreSQL в Docker контейнере:
docker compose -f docker-compose.localdb.yml up -d
  1. Перейдите в директорию /backend:
cd backend/
  1. Создайте виртуальное окружение:
python -m venv venv
  1. Активируйте виртуальное окружениe:
. venv/Scripts/activate
  1. Обновите менеджер пакетов pip:
python -m pip install --upgrade pip
  1. Установите зависимости из requirements.txt:
pip install -r requirements.txt
  1. Примените миграции:
python manage.py migrate
  1. Создайте суперпользователя:
python manage.py createsuperuser
  1. Запустите сервер разработки (виртуальное окружение должно быть активно):
python manage.py runserver 

Запуск проекта в Docker контейнерах

  1. В корневой директории проекта создайте .env на основе .env.example:

Note

Измените значение параметра POSTGRES_HOST для корректного запуска в контейнере c localhost на db.

cp -r .env.example .env
  1. Запустите проект в Docker контейнерах:
docker compose up -d

Документация API и доступные эндпоинты в формате Swagger UI: