Skip to content

Веб-приложение для кулинарных рецептов

License

Notifications You must be signed in to change notification settings

xanhex/foodgram

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Foodgram

foodgram_workflow

Описание

Сервис для публикации кулинарных рецептов. Пользователи могут создавать свои или добавлять чужие рецепты в избранное, подписываться на других авторов, а также создавать и скачивать в формате PDF список продуктов, необходимых для приготовления отобранных блюд.

В ходе проекта было разработано:

  • backend приложение на Django REST
  • Django Unit Tests покрывающие функционал приложения
  • CI/CD посредством Docker и GitHub Actions

Стек технологий

  • Python
  • Django
  • Django REST Framework
  • Unittest
  • Nginx
  • PostgreSQL
  • Docker
  • Github Actions

Используемые стандарты

  • pep8
  • flake8
  • black
  • pymarkdown
  • mypy

Запуск проекта на сервере

  1. На сервере создайте директорию foodgram и внутри неё - файл .env имеющий формат:

    SECRET_KEY=КЛЮЧ
    CSRF_TRUSTED_ORIGINS=your_server_address
    HOSTS=hostname_1, hostname_2
    DB_ENGINE=django.db.backends.postgresql
    DB_NAME=ИМЯ БАЗЫ ДАННЫХ
    POSTGRES_USER=ИМЯ ПОЛЬЗОВАТЕЛЯ БД
    POSTGRES_PASSWORD=ПАРОЛЬ БД
    DB_HOST=postgres_db
    DB_PORT=5432
  2. Скопируйте из репозитория директории infra и docs в foodgram

  3. В директории infra выполните команды:

    docker-compose up -d
    docker-compose exec backend python manage.py makemigrations
    docker-compose exec backend python manage.py migrate
    docker-compose exec backend python manage.py collectstatic
    docker-compose exec backend python manage.py createsuperuser
  4. Для наполнения БД тестовыми данными используйте команду:

    docker compose exec backend python manage.py importcsv
  5. После запуска оркестра контейнеров сервис будет доступен по IP адресу вашего сервера. Добавление данных возможно через frontend для зарегистрированных пользователей, а также через админ-зону Django. Документация API расположена: адрес_вашего_сервера/api/docs

Демо

Иллюстрация к проекту