Skip to content

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

Notifications You must be signed in to change notification settings

DNKer/foodgram-project-react

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Foodgram. Ваш «Продуктовый помошник».

workflow

Описание.

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

drawing

Технологии.

Python Django Django REST Framework PostgreSQL JWT Nginx gunicorn Docker Docker-compose Docker Hub GitHub%20Actions

Что могут делать неавторизованные пользователи

  • Создать аккаунт.
  • Просматривать рецепты на главной.
  • Просматривать отдельные страницы рецептов.
  • Просматривать страницы пользователей.
  • Фильтровать рецепты по тегам.

Что могут делать авторизованные пользователи

  • Входить в систему под своим логином и паролем.
  • Выходить из системы (разлогиниваться).
  • Менять свой пароль.
  • Создавать/редактировать/удалять собственные рецепты
  • Просматривать рецепты на главной.
  • Просматривать страницы пользователей.
  • Просматривать отдельные страницы рецептов.
  • Фильтровать рецепты по тегам.
  • Работать с персональным списком избранного: добавлять в него рецепты или удалять их, просматривать свою страницу избранных рецептов.
  • Работать с персональным списком покупок: добавлять/удалять любые рецепты, выгружать файл с количеством необходимых ингредиентов для рецептов из списка покупок.
  • Подписываться на публикации авторов рецептов и отменять подписку, просматривать свою страницу подписок.

Что может делать администратор

Администратор обладает всеми правами авторизованного пользователя. Плюс к этому он может:

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

Все эти функции реализованы в стандартной админ-панели Django.

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

  • Клонирование удаленного репозитория
git clone git@github.com:dnker/foodgram-project-react.git
cd infra
  • В директории /infra создайте файл .env, с переменными окружения, используя образец .env.example
  • Сборка и развертывание контейнеров
docker-compose up -d --build
  • Выполните миграции, соберите статику, создайте суперпользователя
docker-compose exec backend python manage.py migrate
docker-compose exec backend python manage.py collectstatic --no-input
docker-compose exec backend python manage.py createsuperuser
  • Наполните базу данных ингредиентами и тегами
docker-compose exec backend python manage.py load_data
  • или наполните базу тестовыми данными (включают посты и пользователей)
cat dump.json | sudo docker exec -i <ID контейнера> python manage.py loaddata --format=json -e contenttypes -e auth.Permission -
  • Стандартная админ-панель Django доступна по адресу https://localhost/admin/
  • Документация к проекту доступна по адресу https://localhost/api/docs/

Запуск API проекта в dev-режиме

  • Клонирование удаленного репозитория (см. выше)
  • Создание виртуального окружения и установка зависимостей
cd backend
python -m venv venv
. venv/Scripts/activate (windows)
. venv/bin/activate (linux)
pip install --upgade pip
pip install -r -requirements.txt
  • Примените миграции и соберите статику
python manage.py migrate
python manage.py collectstatic --noinput
  • Наполнение базы данных ингредиентами и тегами
python manage.py load_data
python manage.py load_tags
  • Запуск сервера
python manage.py runserver

About

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

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published