iffilippov / foodgram-project-react

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

<-foodgram workflow

Foodgram, «Продуктовый помощник»

Описание проекта

На этом сервисе пользователи могут публиковать рецепты, подписываться на публикации других пользователей, добавлять понравившиеся рецепты в список «Избранное», а перед походом в магазин скачивать сводный список продуктов, необходимых для приготовления одного или нескольких выбранных блюд.

Технологии

Python Django DjangoREST Postgres Docker

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

Клонировать репозиторий:

git clone git@github.com:iffilippov/foodgram-project-react.git

Создать infra/.env Пример заполнения infra/.env:

SECRET_KEY=Секретный_ключ
DEBUG=True
DB_ENGINE=django.db.backends.postgresql
DB_NAME=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
DB_HOST=db
DB_PORT=5432

Запустить docker-compose:

docker-compose up -d

Будут созданы и запущены в фоновом режиме необходимые для работы приложения контейнеры (foodgram-db, foodgram-backend, foodgram-frontend, foodgram-nginx).

Внутри контейнера foodgram-backend выполнить миграции, создать суперпользователя и собрать статику:

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

Запуск проекта локально

Клонируем проект

git clone git@github.com:iffilippov/foodgram-project-react.git

Добавляем файл infra/.env с настройками БД. Например:

SECRET_KEY=Секретный_ключ
DEBUG=True
DB_ENGINE=django.db.backends.postgresql
DB_NAME=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
DB_HOST=db
DB_PORT=5432

Переходим в папку с бэкендом. Создаем и активируем виртуальное окружение

cd .../foodgram-project-react/backend
python -m venv venv
source venv/Scripts/activate

Устанавливаем зависимости из файла requirements.txt

pip install -r requirements.txt

При необходимости создаем и выполняем миграции, заполняем базу ингредиентов, создаем суперпользователя

cd foodgram/
python manage.py makemigrations
python manage.py migrate
python manage.py import_csv
python manage.py createsuperuser

Запускаем проект

из папки infra выполняем

docker-compose up -d db

из папки frontend выполняем

npm i
npm run start

из папки foodgram выполняем

python manage.py runserver

Автор проекта

Иван Филиппов

About

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


Languages

Language:JavaScript 51.8%Language:CSS 34.9%Language:Python 12.9%Language:HTML 0.4%Language:Dockerfile 0.1%