На этом сервисе пользователи могут публиковать кулинарные рецепты, подписываться публикации других пользователей, добавлять понравившиеся рецепты в список «Избранное», а перед походом в магазин скачивать сводный список продуктов, необходимых для приготовления одного или нескольких выбранных блюд.
Это готовый Docker-образ, содержащий REST API бекэнд и SPA-фронтенд на React. Пользователи могут:
- регистрироваться в приложении;
- получать токен для полноценного доступа к сайту;
- авторизованные пользователи могут создавать рецепты, добавлять их в избранное, подписываться на других пользователей, добавлять рецепты в список покупок;
- администраторы через специальный интерфейс могут создавать новых пользователей, изменять учетные данные других пользователей, редактировать ингредиенты, теги, рецепты;
- пользователи могут фильтровать рецепты по тегам, авторам.
- логин:
[email protected]
- пароль:
uPerhyChwHOuShArDleWoRtiONsoCr
- логин:
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