{"id":15844440,"url":"https://github.com/sunnyinhouse/recipes-assistant","last_synced_at":"2026-04-09T16:04:24.996Z","repository":{"id":174362609,"uuid":"437052057","full_name":"SunnyInHouse/recipes-assistant","owner":"SunnyInHouse","description":"Recipes Assistant «Помощник для работы с рецептами»","archived":false,"fork":false,"pushed_at":"2024-03-29T07:26:38.000Z","size":17334,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-10T09:31:17.860Z","etag":null,"topics":["django","django-filter","django-rest-framework","docker","docker-compose","flake8","pillow","poetry","postrgresql","reportlab"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SunnyInHouse.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2021-12-10T16:57:41.000Z","updated_at":"2024-03-30T08:39:13.000Z","dependencies_parsed_at":"2024-03-29T08:32:14.602Z","dependency_job_id":"fafa9f34-4f38-454f-8e28-05ffc4acf8f8","html_url":"https://github.com/SunnyInHouse/recipes-assistant","commit_stats":null,"previous_names":["sunnyinhouse/foodgram-project-react","sunnyinhouse/recipes-assistant"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/SunnyInHouse/recipes-assistant","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SunnyInHouse%2Frecipes-assistant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SunnyInHouse%2Frecipes-assistant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SunnyInHouse%2Frecipes-assistant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SunnyInHouse%2Frecipes-assistant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SunnyInHouse","download_url":"https://codeload.github.com/SunnyInHouse/recipes-assistant/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SunnyInHouse%2Frecipes-assistant/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267717912,"owners_count":24133443,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-29T02:00:12.549Z","response_time":2574,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["django","django-filter","django-rest-framework","docker","docker-compose","flake8","pillow","poetry","postrgresql","reportlab"],"created_at":"2024-10-05T17:22:24.145Z","updated_at":"2026-04-09T16:04:24.954Z","avatar_url":"https://github.com/SunnyInHouse.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cайт Recipes Assistant «Помощник для работы с рецептами»\n\n### Описание\nНа сервисе Recipes Assistant пользователи могут публиковать рецепты, подписываться на публикации других пользователей, добавлять понравившиеся рецепты в список «Избранное», а перед походом в магазин скачивать сводный список продуктов, необходимых для приготовления одного или нескольких выбранных блюд. \nВ ходе реализации проекта мною были реализованы:\n1. бэкенд проекта на Django REST Framework (реализовано API по готовой спецификации)\n2. созданы Dockerfile для контейнера бэкенда\n3. создана конфигурация сервера nginx\n4. созданы конфигурации для запуска docker контейнеров для базы данных (PostgreSQL),\nдля HTTP-сервера nginx, для фронтенда и бэкенда (файл docker-compose)\n\n\n### О проекте\nПроект базируется на следующих технологиях:\n1. Python 3.8\n2. Django 3.2.11\n3. Django REST Framework 3.13.1\n4. PostgreSQL \n5. django-filter 21.1\n6. Pillow 9.0 (для загрузки изображений)\n7. reportlab 3.6.8 (для формирования документа в формате PDF)\n8. Poetry  (для разработки проекта в отдельном окружении и работы с зависимостями проекта)\n9. Git (GitHub) (для сохранения и отслеживания изменений кода)\n10. Линтер Flake8 (для проверки соответствия кода стандарту PEP8)\n11. Docker (для запуска проекта в контейнерах)\n12. Gunicorn\n13. Nginx\n\n\n### Установка и запуск проекта:\n\n1. Установите Docker и Docker-compose\n```\n sudo apt install docker.io\n sudo curl -L \"https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)\" -o /usr/local/bin/docker-compose\n sudo chmod +x /usr/local/bin/docker-compose\n```\n\n2. Скопируйте файлы Docker-compose.yml и nginx.conf из папки infra репозитория\nhttps://github.com/SunnyInHouse/recipes-assistant\nТакже необходимо скопировать файл ingredients.csv из папки data указанного репозитория.\n\n3. Создайте файл .env в папке со скопированными из репозитория файлами со следующим\nсодержимым:\n```\nDB_ENGINE=django.db.backends.postgresql\nDB_NAME=postgres\nPOSTGRES_USER=postgres\nPOSTGRES_PASSWORD=postgres\nDB_HOST=db\nDB_PORT=5432\n```\n\n4. Перейдите с папку со скопированными из репозитория файлами и запустите проект:\n```\nsudo docker-compose up -d --build\n```\n\n5. Соберите статику и проведите миграции:\n\u003cCONTAINER ID\u003e - id контейнера backend\n```\ndocker-compose exec \u003cCONTAINER ID\u003e python3 manage.py collectstatic --noinput\ndocker exec -it \u003cCONTAINER ID\u003e bash\npython manage.py makemigrations\npython manage.py migrate --noinput\n```\n\n6. Создайте суперпользователя для сайта:\n```\ndocker exec -it \u003cCONTAINER ID\u003e bash\npython manage.py createsuperuser\n```\n\n7. загрузите список ингредиентов на сайт:\n```\ndocker cp ingredients.csv \u003cCONTAINER ID\u003e:/code\ndocker exec -it \u003cCONTAINER ID\u003e bash\npython manage.py load_ingridients /code/ingredients.csv\n```\n\n8. зайдите в админку сайта и создайте теги рецептов.\n\n\n### Примеры запросов:\n\nPOST http://localhost:8000/api/users/ - регистрация\nPOST http://localhost:8000/api/auth/token/login - создание токена\nGET http://localhost:8000/api/users/ - Просмотр информации о пользователях\n\nPOST http://localhost:8000/api/users/set_password/ - Изменение пароля\nGET http://localhost:8000/api/users/4/subscribe/ - Подписаться на пользователя\nDEL http://localhost:8000/api/users/4/subscribe/ - Отписаться от пользователя\n\nPOST http://localhost:8000/api/recipes/ - Создать рецепт\nGET http://localhost:8000/api/recipes/ - Получить рецепты\nGET http://localhost:8000/api/recipes/\u003cid\u003e/ - Получить рецепт по id\nDEL http://localhost:8000/api/recipes/\u003cid\u003e/ - Удалить рецепт по id\n\nGET http://localhost:8000/api/recipes/\u003cid\u003e/favorite/ - Добавить рецепт в избранное\nDEL http://localhost:8000/api/recipes/\u003cid\u003e/favorite/ - Удалить рецепт из избранного\n\nGET http://localhost:8000/api/users/\u003cid\u003e/subscribe/ - Подписаться на пользователя\nDEL http://localhost:8000/api/users/\u003cid\u003e/subscribe/ - Отписаться от пользователя\n\nGET http://localhost:8000/api/ingredients/ - Получить список всех ингредиентов\n\nGET http://localhost:8000/api/tags/ - Получить список всех тегов\n\nGET http://localhost:8000/api/recipes/\u003cid\u003e/shopping_cart/ - Добавить рецепт в корзину\nDEL http://localhost:8000/api/recipes/\u003cid\u003e/shopping_cart/ - Удалить рецепт из корзины\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsunnyinhouse%2Frecipes-assistant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsunnyinhouse%2Frecipes-assistant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsunnyinhouse%2Frecipes-assistant/lists"}