Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/smolodtsova13/foodgram
Продуктовый помощник, сайт для публикации рецептов
https://github.com/smolodtsova13/foodgram
django django-rest-framework docker github-actions nginx postgresql python workflow
Last synced: 2 months ago
JSON representation
Продуктовый помощник, сайт для публикации рецептов
- Host: GitHub
- URL: https://github.com/smolodtsova13/foodgram
- Owner: SMolodtsova13
- Created: 2024-09-13T15:59:19.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2024-11-02T17:13:08.000Z (2 months ago)
- Last Synced: 2024-11-02T18:20:46.364Z (2 months ago)
- Topics: django, django-rest-framework, docker, github-actions, nginx, postgresql, python, workflow
- Language: JavaScript
- Homepage:
- Size: 3.34 MB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Продуктовый помощник Foodgram
### Ссылка на проект: [foodgram](http://foodgram.webhop.me/)
## Технологический стек
[![Python](https://img.shields.io/badge/-Python-464646?style=flat&logo=Python&logoColor=56C0C0&color=008080)](https://www.python.org/)
[![Django](https://img.shields.io/badge/-Django-464646?style=flat&logo=Django&logoColor=56C0C0&color=008080)](https://www.djangoproject.com/)
[![Django REST Framework](https://img.shields.io/badge/-Django%20REST%20Framework-464646?style=flat&logo=Django%20REST%20Framework&logoColor=56C0C0&color=008080)](https://www.django-rest-framework.org/)
[![PostgreSQL](https://img.shields.io/badge/-PostgreSQL-464646?style=flat&logo=PostgreSQL&logoColor=56C0C0&color=008080)](https://www.postgresql.org/)
[![Nginx](https://img.shields.io/badge/-NGINX-464646?style=flat&logo=NGINX&logoColor=56C0C0&color=008080)](https://nginx.org/ru/)
[![gunicorn](https://img.shields.io/badge/-gunicorn-464646?style=flat&logo=gunicorn&logoColor=56C0C0&color=008080)](https://gunicorn.org/)
[![Docker](https://img.shields.io/badge/-Docker-464646?style=flat&logo=Docker&logoColor=56C0C0&color=008080)](https://www.docker.com/)
[![Docker-compose](https://img.shields.io/badge/-Docker%20compose-464646?style=flat&logo=Docker&logoColor=56C0C0&color=008080)](https://www.docker.com/)
[![Docker Hub](https://img.shields.io/badge/-Docker%20Hub-464646?style=flat&logo=Docker&logoColor=56C0C0&color=008080)](https://www.docker.com/products/docker-hub)
[![GitHub%20Actions](https://img.shields.io/badge/-GitHub%20Actions-464646?style=flat&logo=GitHub%20actions&logoColor=56C0C0&color=008080)](https://github.com/features/actions)## Описание проекта Foodgram
Продуктовый помощник - это сервис, на котором пользователям доступны публиковация рецептов, подписки на публикации других пользователей, добавление понравившиеся рецепты в список «Избранное», а так же выгрузка сводного списка продуктов, необходимых для приготовления одного или нескольких выбранных блюд.## Запуск проекта
- Клонируйте репозиторий с проектом на свой компьютер. В терминале из рабочей директории выполните команду:
```
git clone https://github.com/SMolodtsova13/foodgram.git
```- Установить и активировать виртуальное окружение
```
source /venv/bin/activate
```- Установить зависимости из файла requirements.txt
```
python -m pip install --upgrade pip
```
```
pip install -r requirements.txt
```
- Создать файл .env в папке проекта:
```.env
DB_ENGINE=django.db.backends.postgresql # указываем, что работаем с postgresql
DB_NAME=postgres # имя базы данных
POSTGRES_USER=postgres # логин для подключения к базе данных
POSTGRES_PASSWORD=postgres # пароль для подключения к БД (установите свой)
DB_HOST=db # название сервиса (контейнера)
DB_PORT=5432 # порт для подключения к БД
DEBUG=0
```### Выполните миграции:
```
python manage.py migrate
```- В папке с файлом manage.py выполнить команду:
```
python manage.py runserver
```- Создание супер пользователя
```
python manage.py createsuperuser
```### Загрузите статику:
```
python manage.py collectstatic --no-input
```
### Заполните базу тестовыми данными:
```
python manage.py dataloads
```## Запуск проекта через Docker
Установите Docker, используя инструкции с официального сайта:
- для [Windows и MacOS](https://www.docker.com/products/docker-desktop)
- для [Linux](https://docs.docker.com/engine/install/ubuntu/). Отдельно потребуется установть [Docker Compose](https://docs.docker.com/compose/install/)Клонируйте репозиторий с проектом на свой компьютер.
В терминале из рабочей директории выполните команду:
```
git clone https://github.com/SMolodtsova13/foodgram.git
```- в Docker cоздаем образ :
```
docker build -t foodgram .
```Выполните команду:
```
cd ../infra
docker-compose up -d --build
```- В результате должны быть собрано три контейнера, при введении следующей команды получаем список запущенных контейнеров:
```
docker-compose ps
```
Назначение контейнеров:| IMAGES | NAMES | DESCRIPTIONS |
|:--------------------------------------:|:---------------------|:---------------------------:|
| nginx:1.25.4 | infra-_nginx_1 | контейнер HTTP-сервера |
| postgres:13 | infra-_db_1 | контейнер базы данных |
| smolodtsova13/foodgram_backend:latest | infra-_backend_1 | контейнер приложения Django |
| smolodtsova13/foodgram_frontend:latest | infra-_frontend_1 | контейнер приложения React |### Выполните миграции:
```
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 dataloads
```## Основные адреса:
| Адрес | Описание |
|:----------------------|:---------|
| 127.0.0.1 | Главная страница |
| 127.0.0.1/admin/ | Для входа в панель администратора |
| 127.0.0.1/api/docs/ | Описание работы API |## Пользовательские роли
![ Пользовательские роли](https://i.imgur.com/LSv1kca.png)## Автор:
_Молодцова Светлана_
**telegram** _@smolodtsova_