Skip to content

Foodgram - продуктовы помощник.

Notifications You must be signed in to change notification settings

Hengich/foodgram

Repository files navigation

Проект Фудграм

Фудграм — проект, цель которого дать возможность пользователям создавать и хранить рецепты на онлайн-платформе. Кроме того, можно скачать список продуктов, необходимых для приготовления блюда, просмотреть рецепты друзей и добавить любимые рецепты в список избранных.

Технологии

Python Django DjangoREST Postgres Docker Nginx Gunicorn GitHub Actions

Настройка

Репозиторий

Проект имеет следующую структуру:

  • backend - папка для кода Backend приложения (Django)
  • docs - папка со спецификациями API
  • frontend - папка для кода Frontend приложения
  • infra - папка для настроек приложений и файлов развертывания инфраструктуры для локальной отладки, а также с конфигурациями nginx
  • postman_collection - папка с коллекцией postman
  • docker-compose.production.yml - настройки для развёртывания приложения

1. Настройка после клонирования репозитория

После клонирования репозитория устанавливаем и настраиваем виртуальное окружение:

Виртуальное окружение для backend
  1. Переходим в папку /backend/foodgram_backend
  2. Устанавливаем и активируем виртуальное окружение
    • Для linux/mac:
      python3.11 -m venv venv
      source .venv/bin/activate
    • Для Windows:
      python -m venv venv
      source venv\Scripts\activate
    В начале командной строки должно появиться название виртуальног окружения (venv)
  3. Устанавливаем зависимости
    pip install -r requirements.txt

2. Запуск приложения локально.

  1. Создать .env на основе указанного ниже примера. Указав валидные данные для подключения.

    SECRET_KEY=django-secret-key
    DEBUG=True
    POSTGRES_USER=foodgram_user
    POSTGRES_PASSWORD=foodgram_password
    POSTGRES_DB=foodgram
    DB_HOST=db
    DB_PORT=5432
    ALLOWED_HOSTS=example.com 127.0.0.1 localhost
    TRUST_URL=https://example.com
    
  2. Создать файл docker-compose.yml (скопируйте всё из файла docker-compose.production.yml, поменяйте поля image на build: ./{соответствующая папка}/)

  3. В настройках Django приложения setting.py в качестве базы данных стоит PostgreSQL. При необходмости изменить на SQLite, закоментировать настройки для БД на основе PostgreSQL и раскоментировать настройки для SQLite. А также закоментировать в /foodgram/docker-compose.yml контейнер с db.

  4. При необходимости, поменять порт в Dockerfile'ах и конфигурации nginx.

  5. Находясь в папке foodgram выполните команду docker compose up.

  6. По адресу http://localhost:8000 будет доступен проект

  7. Находясь в папке infra выполните команду docker compose up.

  8. По адресу http://localhost:8000/api/docs/ вы увидите спецификацию API с примерами запросов и спецификацией проекта.