Skip to content

"DiZI IZI" посвящен автоматической планировке помещений. Пользователю может внести размеры своего помещения и выбрать мебель, которая там будет стоять. В ответ на полученные данные сайт предоставляет несколько изображений с уже готовой планировкой. У пользователя есть возможность запросить новую планировку при ее неудовлетворительном качестве.

License

Notifications You must be signed in to change notification settings

dizi-izi-plan/dizi-izi-backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python

Django

DjangoRESTframework

Docker

Nginx

Postgresql

Backend сайта "DIZI IZI"

"DiZI IZI" посвящен автоматической планировке помещений.

Пользователю дается возможность внести размеры своего помещения и выбрать мебель, которая там будет стоять. В ответ на полученные данные сайт предоставляет несколько изображений с уже готовой планировкой. У пользователя есть возможность запросить новую планировку при ее неудовлетворительном качестве.

Цель проекта

Данный репозиторий - API для сайта "DIZI IZI" совмещенный вместе с алгоритмом обработки данных и вывода координат мебели.

Технологии

Python 3.11, Django, DRF, Postgres, Docker, Nginx...

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

Все команды необходимо выполнять в корневой папке проекта

  1. Установка Docker
  2. Скопировать и настроить переменные окружения в файле .env
     copy .env.example .env
  3. Запуск проекта (доступно по адресу http://localhost:80)
    docker compose up -d
  4. Остановка проекта и удаление контейнеров и базы данных
    docker compose down -v

Админ панель: http://localhost/admin/

Swagger: http://localhost/swagger/

Дополнительные функции

  1. Запуск только базы данных (доступно по адресу localhost:5432)
    docker compose up -d database
  2. Перезапуск проекта
    docker compose restart
  3. Остановка проекта
    docker compose stop
  4. Отправить команду в контейнер
    docker compose exec -it backend <ваша команда>
    docker compose exec -it database <ваша команда>
    
  5. Создать суперпользователя:
    docker compose exec -it backend python manage.py createsuperuser
  6. Собрать новый образ (по умолчанию образ скачивается с DockerHub)
    docker compose build
  7. Скачать все образы
    docker compose pull

Режим разработки

Docker так же можно использовать во время разработки. Для этого корневая папка проекта подключается как внешний том контейнера, и все изменения в проекте мгновенно доступны в контейнере. Перезапуск сервера с новыми файлами происходит автоматически. Для разблокировки функционала необходимо в файле docker-compose.yml раскомментировать поле volumes у контейнера backend В файле .env DB_HOST database заменить на localhost.

Запуск проекта с выбираемым модулем настроек

Установите переменную окружения PATH_TO_SETTINGS_MODULE в файле .env, указав в значении путь к необходимому модулю настроек, например: 'config.settings.develop'. Чтобы вернуться к продакшн настройкам, удалите эту переменную, либо измените её значение на 'config.settings.production'.

Установка зависимостей и запуск проекта

Рекомендуется настроить в проекте папку виртуального окружения

pip install -r requirements.txt
python manage.py migrate
python manage.py runserver

Загрузка тестовых данных

Тестовые пользователи

python manage.py loaddata users.json

Тестовые тарифы

    python manage.py loaddata tariffs.json

Тестовые тарифы привязанные к пользователям

    python manage.py loaddata tariff_userstariffs.json

Тестовые типы комнат

    python manage.py loaddata furniture_roomtype.json

Тестовая мебель

    python manage.py loaddata furniture_furniture.json

Тестовые планировки

    python manage.py loaddata furniture_roomlayout.json

Загрузка сразу всех тестовых фикстур с моделями

    python manage.py loaddata users.json tariffs.json
     tariff_userstariffs.json furniture_roomtype.json
     furniture_furniture.json furniture_roomlayout.json

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

pip install -r req_dev.txt
python -m flake8
python manage.py test

About

"DiZI IZI" посвящен автоматической планировке помещений. Пользователю может внести размеры своего помещения и выбрать мебель, которая там будет стоять. В ответ на полученные данные сайт предоставляет несколько изображений с уже готовой планировкой. У пользователя есть возможность запросить новую планировку при ее неудовлетворительном качестве.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 23