Онлайн-сервис и API для него. Пользователи могут публиковать рецепты, добавлять чужие рецепты в избранное и подписываться на публикации других авторов. Сервис «Список покупок» позволит пользователям создавать список продуктов, которые нужно купить для приготовления выбранных блюд.
Особенности:
- Просматривать рецепты
- Добавлять рецепты в избранное
- Добавлять рецепты в список покупок
- Создавать, удалять и редактировать собственные рецепты
- Скачивать список покупок
Временно доступен по адресу
- Python 3.7
- Django 3.2.18
- Django Rest Framework 3.14.0
- Gunicorn 20.1.0
- Nginx 1.19.3
- Postres 13.0-alpine
- Docker 20.10.23
- Docker Compose 2.15.1
- Postman (графическая программа для тестирования API)
Клонировать репозиторий и перейти в него в командной строке:
git clone /~https://github.com/elenashovtyuk/foodgram-project-react.git
Cоздать и активировать виртуальное окружение:
python3 -m venv venv
source venv/bin/activate
python3 -m pip install --upgrade pip
pip install -r requirements.txt
cd infra
docker-compose up -d --build
docker compose exec backend python manage.py migrate
docker compose exec backend python manage.py createsuperuser
docker-compose exec backend python manage.py collectstatic --no-input
docker compose exec backend python manage.py runscript load_ingredients
sudo apt install docker.io
curl -L "/~https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
Отредактируем конфигурационный файл infra/nginx.conf - в строке server_name укажем публичный IP своего сервера
Отредактируем файл settings.py - добавим в ALLOWED_HOST публичный IP своего сервера или доменное имя
scp ./docker-compose.yml <username>@<host>:/home/<username>/
scp ./nginx.conf <username>@<host>:/home/<username>/default.conf
- DB_ENGINE=django.db.backends.postgresql
- DB_NAME=postgres
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
- DB_HOST=db
- DB_PORT=5432
- DJANGO_SECRET_KEY=<секретный ключ проекта django>
sudo docker-compose up -d --build
sudo docker compose exec backend python manage.py migrate
sudo docker compose exec backend python manage.py collectstatic
sudo docker compose exec backend python manage.py createsuperuser
sudo docker compose exec backend python manage.py runscript load_ingredients
POST /api/users/ - регистрация
POST /api/auth/token/login - создание токена
POST /api/auth/token/logout/ - удаление токена
GET /api/users/ - просмотр информации о пользователях
POST /api/users/set_password/ - изменение пароля
GET /api/users/{id}/subscribe/ - подписаться на пользователя
DEL /api/users/{id}/subscribe/ - отписаться от пользователя
POST /api/recipes/ - создать рецепт
GET /api/recipes/ - получить рецепты
GET /api/recipes/{id}/ - получить рецепт по id
DEL /api/recipes/{id}/ - удалить рецепт по id
GET /api/recipes/{id}/favorite/ - добавить рецепт в избранное
DEL /api/recipes/{id}/favorite/ - удалить рецепт из избранного
GET /api/users/{id}/subscribe/ - подписаться на пользователя
DEL /api/users/{id}/subscribe/ - отписаться от пользователя
GET /api/ingredients/ - получить список всех ингредиентов
GET /api/tags/ - получить список всех тегов
GET /api/recipes/{id}/shopping_cart/ - добавить рецепт в корзину
DEL /api/recipes/{id}/shopping_cart/ - удалить рецепт из корзины