Веб-приложение для создания и управления интерактивной картой с точками интереса. Позволяет добавлять места с фотографиями, описаниями и координатами с удобной административной панелью.
Готовый сайт находится по ссылке 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 # Позиция для сортировки# Клонирование репозитория
git clone https://github.com/MikhailPI1/artem-s_map.git
cd artem-s_map
# Установка зависимостей
make install
# Настройка базы данных
make migrate
# Создание администратора
make superuser
# Запуск сервера
make run
python manage.py load_place (адрес JSON файла){
"title": "Название места",
"imgs": ["url1.jpg", "url2.jpg"],
"description_short": "Краткое описание",
"description_long": "Полное описание",
"coordinates": {"lng": 37.6173, "lat": 55.7558}
}Вот так будет работает данная функция:
Для начала у нас имеется всего пару точек:

Но после выполнения данной команды с загрузкой JSON файла, как показано ниже, мы получим множество точек. А сам JSON сохранится в папку static/places, чтобы вы могли его найти, а все данные перенесутся в бд. Фотографии отправятся в media/places, а их пути сохранятся в бд вместе с привязкой к месту.
