# 📘 NodeMap – Entwicklerdokumentation Willkommen in der Entwicklerdokumentation für **NodeMap** – einer modularen Kartenanwendung zur Visualisierung und Bearbeitung von GIS-Daten, POIs und Gerätestatus in einer interaktiven Leaflet-Karte. Diese Anleitung führt dich **Schritt für Schritt** durch die wichtigsten Themen für lokale Entwicklung, Architekturverständnis und Erweiterung. --- ## 📚 Inhaltsverzeichnis ### 🔹 Einstieg & Übersicht - [Projektüberblick](#projektüberblick) - [Build & Deployment](build-and-deploy.md) - [Checkliste für Deployment](checklist.md) - [Dynamische Marker erklärt](DynamischeMarkerErklaerung.md) ### 🧭 Architektur - [Layer-Verbindung (Geräte)](architecture/device-layer-connection.md) ### ⚙️ Konfiguration - [appVersion.js](config/appVersion.md) - [Konfiguration: config.js](config/config.md) - [Layer-Konfiguration](config/layers.md) - [Allgemeine Übersicht](config/README.md) ### 🧩 Hauptkomponenten - [MapComponent](components/mainComponent/MapComponent.md) - [useInitializeMap](components/mainComponent/hooks/useInitializeMap.md) ### 🗺️ Kontextmenü - [Übersicht Kontextmenü](components/contextmenu/README.md) - [useMapContextMenu Hook](components/contextmenu/useMapContextMenu.md) - [CoordinatePopup](components/contextmenu/CoordinatePopup.md) ### ➕ POIs - [POI hinzufügen (AddPOIModal)](components/pois/AddPOIModal.md) - [POI bearbeiten (PoiUpdateModal)](components/pois/PoiUpdateModal.md) ### 📏 GIS-Polylinien - [PolylineContextMenu](components/gisPolylines/PolylineContextMenu.md) - [StartIcon](components/gisPolylines/icons/StartIcon.md) - [EndIcon](components/gisPolylines/icons/EndIcon.md) - [CircleIcon](components/gisPolylines/icons/CircleIcon.md) - [SupportPointIcons](components/gisPolylines/icons/SupportPointIcons.md) ### 💡 UI-Komponenten - [CoordinateInput](components/uiWidgets/CoordinateInput.md) - [VersionInfoModal](components/uiWidgets/VersionInfoModal.md) - [EditModeToggle](components/uiWidgets/mapLayersControlPanel/EditModeToggle.md) - [MapLayersControlPanel](components/uiWidgets/mapLayersControlPanel/MapLayersControlPanel.md) ### 🧪 Weitere Tools - [TestScript (Debug)](components/TestScript.md) --- ## Projektüberblick NodeMap wird von **TALAS.web** über einen iFrame geladen. Die Anwendung basiert auf folgenden Technologien: | Technologie | Zweck | | ------------- | ------------------------------ | | Next.js | React-Framework (Frontend/SSR) | | Leaflet | Kartendarstellung | | Redux Toolkit | Zustandverwaltung | | Tailwind CSS | Styling | | MySQL | Datenbank | | Node.js / IIS | Server und Auslieferung | 👉 Mehr zur Systemarchitektur: [architecture.md](architecture.md) --- ## Projektstruktur & Setup ### Zielsystem - Offline-Umgebung - Windows-Server mit IIS - Datenzugriff über TALAS-Webservice oder lokale API ### Lokale Entwicklung ➡ [Entwicklungs-Setup](guide/setup-dev.md) ➡ [Projektstruktur erklärt](guide/project-structure.md) ➡ [Abhängigkeiten & Tools](guide/dependencies.md) ➡ [Umgebungsvariablen (env-Dateien)](guide/env.md) --- ## Webservices & API-Fluss NodeMap verwendet zwei Quellen für Daten: 1. **TALAS-WebServices** (Port 80) – POIs, Geräte, Rechte, Linien usw. 2. **Lokale Next.js API** (Port 3000) – direkte Datenbankzugriffe via MySQL ➡ [Webservices-Dokumentation](guide/webservices.md) --- ## Zustandverwaltung Redux Die komplette Anwendung verwendet Redux zur globalen Zustandverwaltung. - Architektur: `Service → Thunk → Slice → Komponente` - Beispiel: POIs, Marker, Linien, Rechte, Layer-Status - Redux DevTools werden unterstützt ➡ [Zustandverwaltung mit Redux](guide/redux-zustand.md) --- ## Entwicklung & Testdaten Zur Entwicklung ohne echte API stehen lokale Mockdaten zur Verfügung: - Aktivierung über `.env.local → NEXT_PUBLIC_USE_MOCKS=true` - Nutzung z. B. in `pages/api/mocks/...` - Hinweise im UI zeigen aktivierten Mockmodus ➡ [Mockdaten & Entwicklung](guide/mock-data.md) --- ## Fehlerbehandlung & Glossar Typische Probleme (z. B. Webservice nicht erreichbar, Layer nicht sichtbar) werden in der FAQ gesammelt. Zudem gibt es eine Begriffsliste zur Orientierung: ➡ [FAQ & häufige Fehler](guide/faq.md) ➡ [Glossar](guide/glossar.md) --- ## Hinweis zum Deployment 📦 Die Anleitung für Server-Installation und ZIP-Deployment findest du in: ➡ [Root-README.md](../README.md) --- ## Tipp Wenn du neu im Projekt bist, beginne mit dem Kapitel **Projektstruktur & Setup** und folge dann über die Webservices bis zu den Komponenten.