Skip to content

Juxoola/my-app

Repository files navigation

Описание проекта

My App — это веб-приложение для работы с интерактивными картами, имеющее интеграцию с геоинформационным сервисом GeoServer. Приложение построено с использованием React для клиентской части и OpenLayers для работы с картографическими данными.

Технологический стек

  • Frontend:

    • React
    • OpenLayers
    • Material UI
  • Backend:

    • Node.js
    • Python (для обработки данных)
    • PostgreSQL с PostGIS (для хранения геоданных)
  • Инфраструктура:

    • Docker и Docker Compose для контейнеризации
    • GeoServer для публикации геоданных

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

  • Интерактивная карта:

    • Используется базовый слой OpenStreetMap.
    • Добавляются динамические WMS-слои с GeoServer, позволяющие отображать геоданные.
  • Переключение слоев:

    • Пользователь может включать или отключать видимость отдельных WMS-слоев с помощью чекбоксов, что позволяет настраивать отображение карты по своему усмотрению.
  • Аутентификация:

    • Форма авторизации реализована для управления доступом к расширенной карте. При вводе корректных учетных данных пользователь перенаправляется на страницу с дополнительными данными.
  • Обработка данных:

    • Серверные компоненты на Node.js и Python для обработки геопространственных данных.
    • Интеграция с базой данных PostgreSQL/PostGIS.

Архитектура приложения

Приложение построено по микросервисной архитектуре и состоит из следующих компонентов:

  1. Frontend (React) - пользовательский интерфейс с интерактивными картами
  2. Backend (Node.js) - API для обработки запросов и координации сервисов
  3. Python-сервис - специализированная обработка геоданных
  4. PostgreSQL/PostGIS - хранение и пространственные запросы
  5. GeoServer - публикация геопространственных данных через стандартные протоколы

Интеграция с GeoServer

Приложение обращается к GeoServer через WMS-запросы, что позволяет динамически загружать геопространственные данные. Для корректной работы убедитесь, что:

  • GeoServer запущен и доступен по адресу http://localhost:8080/geoserver.

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

  1. Установка зависимостей:

    npm install
  2. Запуск приложения:

    npm start

    Приложение по умолчанию открывается на порту 3000.

  3. Запуск GeoServer: Следуйте инструкции по установке GeoServer (Stand-alone, через Tomcat) и убедитесь, что сервер доступен по адресу http://localhost:8080/geoserver.

Установка и запуск GeoServer

Варианты установки GeoServer

Stand-alone версия

На Windows:

  1. Скачивание:
    Перейдите на официальный сайт GeoServer и скачайте установщик

  2. Распаковка и запуск:

    • Запустите установщик и следуйте инструкциям.
    • Откройте браузер по адресу:
      http://localhost:8080/geoserver
      

На Linux:

  1. Скачивание:
    Скачайте ZIP-архив с официального сайта GeoServer.

  2. Распаковка:

    unzip geoserver-<version>-bin.zip -d /opt/geoserver
  3. Запуск:

    cd /opt/geoserver/geoserver-<version>
    java -jar start.jar
    • GeoServer будет доступен по адресу:
      http://localhost:8080/geoserver
      

Установка через Apache Tomcat (развертывание WAR-файла)

  1. Убедитесь, что установлен Java и Apache Tomcat.
    (На Ubuntu можно установить Tomcat9: sudo apt install tomcat9)

  2. Скачивание WAR-файла:
    Получите geoserver.war с официального сайта GeoServer.

  3. Размещение WAR-файла:
    Скопируйте файл в каталог webapps Tomcat:

    sudo cp geoserver.war /var/lib/tomcat9/webapps/
  4. Перезапуск Tomcat:

    sudo systemctl restart tomcat9
  5. Доступ к GeoServer:
    Откройте браузер и перейдите по адресу:

    http://localhost:8080/geoserver
    

Запуск проекта с помощью Docker

Перед запуском убедитесь, что на вашей машине установлены Docker и Docker Compose.

  1. Сборка и запуск контейнеров

    Перейдите в корневую директорию проекта (там, где находится файл docker-compose.yml) и выполните команду:

    docker-compose up --build

    Эта команда:

    • Соберёт Docker-образы для всех компонентов согласно файлам Dockerfile.
    • Запустит контейнеры: приложение (nodeapp), Python-сервис, GeoServer и PostgreSQL.
    • Создаст общие тома для обмена данными между сервисами.
  2. Доступ к приложениям

    После успешного запуска:

  3. Остановка контейнеров

    Чтобы остановить и удалить запущенные контейнеры, выполните команду:

    docker-compose down

    Для остановки контейнеров с сохранением томов данных:

    docker-compose down -v

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published