Foodgram сайт для любителей готовки, с возможностью публикации своих рецептов. Дипломный проект Yandex Practicum.
Foodgram позволяет:
- Просматривать рецепты пользователей с сортировкой по тегам.
- Создавать свои рецепты.
- Добавлять рецепты в избранное и список покупок, с возможностью скачать файл
txt
с нужными ингредиентами. - Подписаться на любимого автора.
- Python 3.9.10
- Node 13.12
- Django 3.2.16
- React 5.0.1
- DRF 3.12.4
- Djoser 2.2.2
- Django filter 23.5
- Docker 4.25
- Gunicorn 20.1
- PostgreSQL 13
- Nginx 1.19.3
Проект написан с использованием контейнеров и для запуска потребуется Docker.
Клонируйте проект и перейдите в его директорию:
git clone [email protected]:Wiz410/foodgram-project-react.git
cd foodgram-project-react/
Создайте файл .env
:
touch .env
И заполните его:
POSTGRES_USER=foodgram_user
POSTGRES_PASSWORD=foodgram_db_password
POSTGRES_DB=foodgram
DB_HOST=db
DB_PORT=5432
FOODGRAM_SECRET_KEY=foodgram_secret_key
FOODGRAM_DEBUG=False
FOODGRAM_ALLOWED_HOSTS=127.0.0.1 localhost
FOODGRAM_TIME_ZONE=UTC
Перейдите в директорию infra
и запустите Docker Compose
:
cd infra/
docker compose up
Проект будет доступен по адресу http://localhost/
Полный список запросов доступен в /api/docs/redoc.html
.
/api/users/
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"email": "[email protected]",
"id": 0,
"username": "string",
"first_name": "Вася",
"last_name": "Пупкин",
"is_subscribed": false
}
]
}
/api/recipes/
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"id": 0,
"tags": [
{
"id": 0,
"name": "Завтрак",
"color": "#E26C2D",
"slug": "breakfast"
}
],
"author": {
"email": "[email protected]",
"id": 0,
"username": "string",
"first_name": "Вася",
"last_name": "Пупкин",
"is_subscribed": false
},
"ingredients": [
{
"id": 0,
"name": "Картофель отварной",
"measurement_unit": "г",
"amount": 1
}
],
"is_favorited": true,
"is_in_shopping_cart": true,
"name": "string",
"image": "http://foodgram.example.org/media/recipes/images/image.jpeg",
"text": "string",
"cooking_time": 1
}
]
}
/api/recipes/id/
{
"id": 0,
"tags": [
{
"id": 0,
"name": "Завтрак",
"color": "#E26C2D",
"slug": "breakfast"
}
],
"author": {
"email": "[email protected]",
"id": 0,
"username": "string",
"first_name": "Вася",
"last_name": "Пупкин",
"is_subscribed": false
},
"ingredients": [
{
"id": 0,
"name": "Картофель отварной",
"measurement_unit": "г",
"amount": 1
}
],
"is_favorited": true,
"is_in_shopping_cart": true,
"name": "string",
"image": "http://foodgram.example.org/media/recipes/images/image.jpeg",
"text": "string",
"cooking_time": 1
}
/api/users/subscriptions/
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"email": "[email protected]",
"id": 0,
"username": "string",
"first_name": "Вася",
"last_name": "Пупкин",
"is_subscribed": true,
"recipes": [
{
"id": 0,
"name": "string",
"image": "http://foodgram.example.org/media/recipes/images/image.jpeg",
"cooking_time": 1
}
],
"recipes_count": 0
}
]
}
- Danila Polunin Backend
- Yandex Praktikum Frontend