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 git@github.com:Wiz410/foodgram-project-react.git
cd foodgram-project-react/Создайте файл .env:
touch .env
nano .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
Сохраните ctrl + s выйдите из него ctrl + x.
Перейдите в директорию infra и запустите Docker Compose:
cd infra/
docker compose up --buildПроект будет доступен по адресу http://localhost/
Полный список запросов доступен в /api/docs/redoc.html.
/api/users/
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"email": "user@example.com",
"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": "user@example.com",
"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": "user@example.com",
"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": "user@example.com",
"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