Skip to content

DenisMaslennikov/photo_organizer_with_django-v2

Repository files navigation

Органайзер изображений на Django

Пример сайта можете увидеть по ссылке

С помощью органайзера изображений можно:

  1. Хранить изображения разных пользователей
  2. Пользователи могут тегать свои изображения
  3. Искать изображения по тегу или набору тегов
  4. Похожие изображения выводятся на основе расстояния Хэмминга между хешами
  5. Теги группируются по категориям задаваемым администратором
  6. Получать информацию из EXIF о месте и параметрах съемки
  7. Использовать апи полностью покрывающее возможности сайтовой версии органайзера
  8. Пользователи могут комментировать изображения.
  9. Добавлены файлы настроек докера для запуска сервера django, nginx и postgreSQL
  10. Добавлены файлы CI/CD для github actions и gitlab с автоматическим запуском проекта на сервере в docker контейнере.

В планах:

  1. Улучшение покрытия кода тестами
  2. Тесты для API

Для более подробного описания возможностей проекта смотрите patch_note.md

Стек:

Python, Django 4.2, DRF 3.14, pytest, Gunicorn, sorl-thumbnail, django-filter, exif, ImageHash, drf-spectacular.

Проект специально загружен на GitHub с изображениями и базой данных sqlite для облегчения демонстрации

Переменные окружения:

Для работы проекта необходимо создать файл .env в директории play_with_image в котором задается переменные окружения в качестве шаблона используйте .env.template

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

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

В директории с проектом

docker compose up

Запуск отладочного сервера под windows:

В директории с проектом

  1. Создание виртуального окружения:
python -m venv venv
  1. Активация виртуального окружения:
source venv\Scripts\activate  

Если возникла ошибка 'Имя "source" не распознано' или аналогичная:

venv\Scripts\activate
  1. Установка зависимостей:
pip install -r requirements.txt
  1. Запуск отладочного сервера:
cd play_with_image
python manage.py runserver