Skip to content

Latest commit

 

History

History
144 lines (108 loc) · 7.11 KB

README.md

File metadata and controls

144 lines (108 loc) · 7.11 KB

ci workflow codecov Codacy Badge PyPI - Python Version Django DRF

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

Содержание

📖 Описание

Это готовый Docker-образ, содержащий REST API бекэнд и SPA-фронтенд на React. Пользователи могут:

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

Сайт приложения Foodgram

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

  • логин: admin
  • пароль: uPerhyChwHOuShArDleWoRtiONsoCr

Описание приложения

Разделы сайта имеют разграниченный доступ. Пользователи делятся на:

  • неавторизованных пользователей
  • зарегистрированных пользователей (авторов)
  • администраторов

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

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

⬆️ Наверх

🛠️ Установка и запуск

Для запуска приложения должен быть установлен git и docker.

git clone [email protected]:spaut33/foodgram-project-react.git
cd foodgram-project-react

Шаблон для создания .env файла (содержит необходимые для работы перменные окружения). Данный файл должен находится в папке infra проекта:

DB_ENGINE=django.db.backends.postgresql
POSTGRES_DB=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
DB_HOST=db
DB_PORT=5432
SECRET_KEY=secret-key
ALLOWED_HOSTS="127.0.0.1 www.example.com"
CORS_WHITELIST="http://www.example.com https://www.example.com"

Собрать и запустить контейнеры

cd infra
sudo docker-compose ud -d --build

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

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

Тесты

Для запуска тестов нужно перейти в директорию репозитория

cd backend

Cоздать и активировать виртуальное окружение:

python -m venv .venv
source env/bin/activate

Запустить тесты:

pytest

Для наполнения базы данных данными можно использовать команду:

sudo docker-compose exec web python3 manage.py flush --no-input
sudo docker-compose exec web python3 manage.py loaddata fixtures.json

⬆️ Наверх

⚙️ Использованные технологии

⚠️ Лицензия

MIT

🧑‍💻 Автор

⬆️ Наверх