NizhneudinskMap
README.md
Карта мест Нижнеудинска
Веб-приложение для отображения мест на карте Нижнеудинска с карточками, категориями и защищенным добавлением новых точек.
Что реализовано
- Главная страница: сначала карта и список мест.
- Карта на Leaflet с OpenStreetMap.
- При наведении на метку показывается мини-карточка (название + категория), без адреса.
- Добавление точки открывается диалогом только после клика по карте.
- Для добавления нужно включить режим редактирования и один раз ввести пароль.
- Категории и цвета пинов:
- выбор существующей категории;
- создание новой категории с цветом;
- цвет категории определяет цвет пина;
- категории сохраняются в
data/categories.json.
- Фото: загрузка файла до 1 МБ или ссылка.
- Адрес заполняется автоматически по координатам.
Быстрый старт
- Установить зависимости:
npm install
- Запустить сервер:
npm start
- Открыть сайт:
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
Кратко:
- Разверните приложение на сервере и запустите на
PORT=3000. - В
deploy/nginx-example.confзамените домен вserver_name. - Подключите конфиг в Nginx и перезагрузите его.
- Выпустите сертификат:
sudo certbot --nginx -d map.example.ru -d www.map.example.ru
Именно в server_name указывается ваш домен.
Релизы
Релизов пока нет.
Открытые issues
Открытых issues нет 🎉