Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/a-menshikov/foodgram
май 2023. Дипломный проект для Яндекс Практикум. REST API для веб-приложение "Продуктовый помощник"
https://github.com/a-menshikov/foodgram
django django-rest-framework docker docker-compose github-actions nginx postgresql python
Last synced: 25 days ago
JSON representation
май 2023. Дипломный проект для Яндекс Практикум. REST API для веб-приложение "Продуктовый помощник"
- Host: GitHub
- URL: https://github.com/a-menshikov/foodgram
- Owner: a-menshikov
- Created: 2023-05-05T09:11:25.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2023-10-31T06:50:26.000Z (about 1 year ago)
- Last Synced: 2024-10-12T00:16:37.769Z (about 1 month ago)
- Topics: django, django-rest-framework, docker, docker-compose, github-actions, nginx, postgresql, python
- Language: JavaScript
- Homepage:
- Size: 568 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Проект "Продуктовый помощник"
Если вам помог этот репозиторий - не пожалейте звездочки для него))
## Описание проекта
Приложение «Продуктовый помощник» - это сайт, на котором пользователи будут публиковать рецепты, добавлять чужие рецепты в избранное и подписываться на публикации других авторов. Сервис «Список покупок» позволит пользователям создавать список продуктов, которые нужно купить для приготовления выбранных блюд.
## Техническая информация
Стек технологий: Python 3, Django, DjangoRestFramework, Docker, Docker Compose, Nginx, Postgres, React
Веб-сервер: nginx
Frontend фреймворк: React
Backend фреймворк: Django
API фреймворк: Django REST
База данных: PostgreSQLВеб-сервер nginx перенаправляет запросы клиентов к контейнерам frontend и backend, либо к хранилищам (volume) статики и файлов.
Контейнер nginx взаимодействует с контейнером backend через gunicorn.
Контейнер frontend взаимодействует с контейнером backend посредством API-запросов.## Документация к проекту
Документация для API после установки доступна по адресу
```url
/api/docs/redoc.html
```## Запуск проекта через Docker
1. Клонировать репозиторий и перейти в него в командной строке:
Для развертывания на моих образах потребуются только файлы docker-compose.yml и nginx.conf.
Для сборки своих образов с доработанным кодом - откорректируйте файл docker-compose.yml чтобы образы билдились, а не скачивались.```bash
git clone <ссылка с git-hub>
```2. Шаблон наполнения .env (не включен в текущий репозиторий), расположить по пути infra/.env
```text
DB_ENGINE=django.db.backends.postgresql
DB_NAME= # имя базы данных
POSTGRES_USER= # логин для подключения к базе данных
POSTGRES_PASSWORD= # пароль для подключения к БД (установите свой)
DB_HOST=database
DB_PORT= # порт для подключения к БД
SECRET_KEY= # секретный ключ Django
DEBUG= # True или False
ALLOWED_HOSTS= # через запятую
```также настройте адрес сервера в nginx.conf.
3. Находясь в папке infra/ поднять контейнеры
```bash
docker-compose up -d --build
```4. Выполнить миграции:
```bash
docker-compose exec backend python manage.py migrate
```5. Создать суперпользователя:
```bash
docker-compose exec backend python manage.py createsuperuser
```6. Собрать статику:
```bash
docker-compose exec backend python manage.py collectstatic --no-input
```7. Наполнить базу заранее заготовленными файлами:
```bash
docker-compose exec backend python manage.py import_data
```