https://github.com/sabinadzh/cookbooker
https://github.com/sabinadzh/cookbooker
docker gunicorn nginx python sql
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/sabinadzh/cookbooker
- Owner: SabinaDzh
- Created: 2024-07-10T15:40:34.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-11-30T18:21:28.000Z (over 1 year ago)
- Last Synced: 2025-04-01T10:46:02.702Z (about 1 year ago)
- Topics: docker, gunicorn, nginx, python, sql
- Language: JavaScript
- Homepage:
- Size: 4.21 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Проект CookBooker
## Описание:
Проект "CookBooker" – это сервис, который даёт возможность людям делиться рецептами, и создавать свои списки покупок, для упрощения похода в магазин.
## Стек проекта:
- Python
- Docker
- Django
- Nginx
- Gunicorn
- REST framework
- Djoser
## Документация API
### При локальном запуске проекта статическая документация доступна
### по адресу:
http://127.0.0.1:7000/api/docs/redoc.html
## Запуск проекта локально
### Клонировать репозиторий:
https://github.com/SabinaDzh/foodgram.git
### Перейти в корневую директорию проекта:
cd foodgram/
## Установка докера:
```sh
sudo apt update
sudo apt install curl
curl -fSL https://get.docker.com -o get-docker.sh
sudo sh ./get-docker.sh
sudo apt install docker-compose-plugin
```
### Создайте собственный файл .env с переменными окружения.
### Соберите образы и отправьте их в Docker Hub, заменив username
### на свой:
```sh
cd frontend
docker build -t username/foodgram_frontend .
docker push username/foodgram_frontend
cd ../backend
docker build -t username/foodgram_backend .
docker push username/foodgram_backend
cd ../infra
docker build -t username/foodgram_infra .
docker push username/foodgram_infra
```
### В файле docker-compose.yml укажите нужные образы.
## Процесс запуска проекта:
```sh
sudo docker compose -f docker-compose.yml up
sudo docker compose -f docker-compose.yml exec backend python manage.py migrate
sudo docker compose -f docker-compose.yml exec backend python manage.py collectstatic
sudo docker compose -f docker-compose.yml exec backend cp -r /app/collected_static/. /backend_static/static/
```
## Создаем суперпользователя
```sh
sudo docker compose exec backend python manage.py createsuperuser
```
## Наполняем БД даннымии из файла data/ingredients.csv
```sh
sudo docker compose exec python manage.py load_ingredients_tags
```
## Примеры запросов:
### Создание рецепта
POST /api/recipes/
Content-Type: application/json
{
"ingredients": [
{
"id": 1,
"amount": 11
},
],
"tags": [
1
],
"image": "data:image/png,
"name": "Нечто съедобное (это не точно)",
"text": "Приготовьте как нибудь эти ингредиеты",
"cooking_time": 5
}
### Получение всех рецептов
GET /api/recipes/
### Полуение рецепта
GET /api/v1/posts/{id}/
### Получение короткой ссылки на рецепт
GET /api/recipes/{id}/get-link/
### Добавить рецепт в список покупок
POST /api/recipes/{id}/shopping_cart/
Content-Type: application/json
{
}
### Подписка
POST /api/users/{id}/subscribe/
Content-Type: application/json
{
}
### Регистрация пользователя
POST /api/users/
Content-Type: application/json
{
"email": "mitya@ya.ru",
"username": "mitya.mitya",
"first_name": "Митя",
"last_name": "Митин",
"password": "123qwe!"
}
### Получения профиля пользователя
GET /api/users/{id}/
## Ссылка на развернутый проект
(https://foodgram.myddns.me)
## Автор проекта
SabinaDzh