‹ Все проекты

NizhneudinskMap

★ 0 звёзд↓ 0 загрузок
Открыть на GitHub ↗

README.md

Карта мест Нижнеудинска

Веб-приложение для отображения мест на карте Нижнеудинска с карточками, категориями и защищенным добавлением новых точек.

Что реализовано

  • Главная страница: сначала карта и список мест.
  • Карта на Leaflet с OpenStreetMap.
  • При наведении на метку показывается мини-карточка (название + категория), без адреса.
  • Добавление точки открывается диалогом только после клика по карте.
  • Для добавления нужно включить режим редактирования и один раз ввести пароль.
  • Категории и цвета пинов:
    • выбор существующей категории;
    • создание новой категории с цветом;
    • цвет категории определяет цвет пина;
    • категории сохраняются в data/categories.json.
  • Фото: загрузка файла до 1 МБ или ссылка.
  • Адрес заполняется автоматически по координатам.

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

  1. Установить зависимости:
npm install
  1. Запустить сервер:
npm start
  1. Открыть сайт:
http://localhost:3000

Пароль режима редактирования

По умолчанию пароль: nizhneudinsk

Задайте свой пароль через переменную окружения:

ADD_PLACE_PASSWORD="ваш_сложный_пароль" npm start

Хранение данных

  • Точки: data/places.geojson.
  • Категории: data/categories.json.
  • Загруженные изображения: uploads/.

API

  • GET /api/places — список мест.
  • GET /api/places/:id — одно место.
  • GET /api/categories — список категорий.
  • POST /api/auth/login — вход в режим редактирования (проверка пароля).
  • POST /api/places — создание места.

Подготовка к деплою (Nginx + HTTPS)

Готовые материалы:

  • пример Nginx-конфига: deploy/nginx-example.conf
  • пошаговая инструкция: deploy/DEPLOY.md
  • пример переменных окружения: .env.example

Кратко:

  1. Разверните приложение на сервере и запустите на PORT=3000.
  2. В deploy/nginx-example.conf замените домен в server_name.
  3. Подключите конфиг в Nginx и перезагрузите его.
  4. Выпустите сертификат:
sudo certbot --nginx -d map.example.ru -d www.map.example.ru

Именно в server_name указывается ваш домен.

Релизы

Релизов пока нет.

Открытые issues

Открытых issues нет 🎉