Skip to content

MikhailPI1/artem-s_map

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🗺️ Artem Map - Интерактивная карта достопримечательностей

Django Python PostgreSQL Leaflet Docker

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

Готовый сайт находится по ссылке https://mikhailpi2.pythonanywhere.com/.

Чтобы попасть в Админ панель перейдите по ссылке https://mikhailpi2.pythonanywhere.com/admin воспользуйтесь следующими данными:

Login: Mikhail
Password: 12345678

✨ Возможности

🎯 Основной функционал

  • Интерактивная карта на основе Leaflet с точками интереса
  • Детальная информация о каждом месте при клике на маркер
  • Галерея изображений для каждого места с превью
  • GeoJSON API для интеграции с другими системами
  • Адаптивный дизайн для мобильных устройств

🛠️ Администрирование

  • 📍 Добавление/редактирование мест через админку Django
  • 🖼️ Загрузка нескольких фотографий для каждого места
  • 🔄 Drag & Drop сортировка изображений
  • 📊 Превью фотографий прямо в админке
  • 📝 Rich-text редактор для описаний (CKEditor)
  • 🗃️ Автоматическая загрузка данных из JSON файлов

🔧 Технические особенности

  • Django 4.2 с архитектурой MVC
  • PostgreSQL для хранения данных
  • Docker контейнеризация для простого развертывания
  • RESTful API для получения данных о местах
  • Автоматический линтинг с black и isort

🏗️ Архитектура проекта

Модели данных

class Place:
    title: str                    # Название места
    description_short: RichText   # Краткое описание  
    description_long: RichText    # Полное описание
    lat: float                   # Широта
    lng: float                   # Долгота

class Image:
    place: ForeignKey            # Связь с местом
    image: ImageField            # Фотография
    position: int                # Позиция для сортировки

🚀 Быстрый старт

Установка и запуск с Make (рекомендуется)

# Клонирование репозитория
git clone https://github.com/MikhailPI1/artem-s_map.git
cd artem-s_map

# Установка зависимостей
make install

# Настройка базы данных
make migrate

# Создание администратора
make superuser

# Запуск сервера
make run

Добавление новых позиций прямо с помощью GEOJSON

python manage.py load_place (адрес JSON файла)

GeoJSON внутри:

{
    "title": "Название места",
    "imgs": ["url1.jpg", "url2.jpg"],
    "description_short": "Краткое описание", 
    "description_long": "Полное описание",
    "coordinates": {"lng": 37.6173, "lat": 55.7558}
}

Вот так будет работает данная функция:

Для начала у нас имеется всего пару точек: 2025-10-25_01-27-53

Но после выполнения данной команды с загрузкой JSON файла, как показано ниже, мы получим множество точек. А сам JSON сохранится в папку static/places, чтобы вы могли его найти, а все данные перенесутся в бд. Фотографии отправятся в media/places, а их пути сохранятся в бд вместе с привязкой к месту. 2025-10-25_01-24-23 2025-10-25_01-24-51 2025-10-25_01-17-31

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published