NodeMap ist eine modulare Kartenanwendung zur Visualisierung und Bearbeitung von GIS-Daten, POIs und Gerätestatus in einer interaktiven Leaflet-Karte.
📘 Für Entwickler:
Die technische Dokumentation (Architektur, Redux, Komponenten, etc.) befindet sich in:
/docs/README.md

🖥 Entwicklung & Test unter Windows 11 mit Node.js v18.17.1 und IIS
📦 MySQL 8.0 läuft lokal in einem Docker-Container (nur für Entwicklung)
🗄 Produktionsumgebung: TALAS.web und MySQL Server unter Windows Server
| Technologie | Zweck |
|---|---|
| Next.js | React-Framework (Frontend/SSR) |
| Leaflet | Kartendarstellung |
| Redux Toolkit | Zustandverwaltung |
| Tailwind CSS | Styling |
| MySQL | Datenbank |
| Node.js / IIS | Server und Auslieferung |
Die Anwendung wird von TALAS.web im iFrame geladen. Die URL enthält Parameter für Map- und
User-ID.
NodeMap lädt anschließend Daten über WebServices und MySQL.
➡ Details zur Architektur: docs/architecture.md
Die Datei public/config.json steuert, welche Kartenquelle (z.B. OSM oder lokale Tiles) für die
Leaflet-Karte verwendet wird.
Beispiel:
{
"//info": "tileSources: 'local' für offline, 'osm' für online",
"tileSources": {
"local": "http://localhost/talas5/TileMap/mapTiles/{z}/{x}/{y}.png",
"osm": "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"
},
"active": "osm"
}
active kann zwischen Online- und Offline-Karten umgeschaltet werden.mapTypC.aspx vorhanden in C:\inetpub\wwwroot\talas5\MessagesMap\
(Server-IP mit Port 3000)C:\inetpub\wwwroot\talas5\TileMap\mapTiles
Falls nicht vorhanden hier downloaden:
http://10.10.0.28/produkte/TALAS.map/mapTiles.zip
?m=X&u=Y für Map-/User-IDz.B.
`http://10.10.0.13/talas5/MessagesMap/mapTypC.aspx?m=12&u=484`
Ein fertiges Deployment-Bundle für jede Version (z. B. NodeMap V1.1.260.zip) ist auf dem internen
SharePoint verfügbar:
🛑 Dienst beenden
NodeMapService beendet werden,
🔍 Prüfen, ob passende node_modules-v1.1.xxx.zip Datei vorhanden ist
C:\inetpub\wwwroot\talas5\nodeMap komplett löschennode_modules-v1.1.xxx.zip und node_modules Verzeichnis behalten,
Rest löschennode_modules-v1.1.xxx.zip nach Entpacken und in node_modules umbenennen!📦 ZIP entpacken
NodeMap V1.1.260.zip entpacken
🚀 Dienst starten
NodeMapService wieder startenProjekt lokal klonen und kompilieren:
git clone http://10.10.0.12:3000/ISA/nodeMap
cd nodeMap # zu den Verzeichnis wechseln
npm install # Abhängigkeiten installieren (lädt alle Pakete aus package.json)
npm run build # Erstellt ein optimiertes Produktions-Build im Ordner .next/
ZIP-Paket vorbereiten (lokal):
.next/public/, node_modules/ falls auf dem Server nicht vorhanden sind oder etwas
hinzugefügt wurde (Bilder oder Bibliothek).env.production, package.json falls auf dem Server nicht vorhanden sind oder etwas
hinzugefügt wurde (Umgebungsvariablen oder Bibliothek)nssm.exe, StartNodeApp.bat, Start-Dev.ps1 um Windows Dienst zu erstellen falls noch nicht
vorhanden ist Download:
nssmAuf Server kopieren nach: Ein Ordner temp auf dem Desktop erstellen->ZIP-Paket einfügen->entpacken->Inhalt in folgende Verzeichnis einfügen
C:\inetpub\wwwroot\talas5\nodeMap\
Kartenmaterial hinzufügen (falls nicht vorhanden):
Muss noch in Download-Server eingefügt werden, damit eine zentrale Stelle verfügbar ist
C:\inetpub\wwwroot\talas5\TileMap\
.env.production konfigurieren
Die Datei .env.production enthält alle benötigten Verbindungs- und Betriebsvariablen wie z. B.
Datenbank-Zugang, Pfade und Mock-Option.
➡ Vollständige Anleitung & Beispieldatei: .env.production
Dienst registrieren falls nicht vorhanden
nssm.exe Windows-Dienst „nodeMapService“ erstellenStartNodeApp.batStarten: Dienst starten , falls vorhanden einmal beenden und neustarten
Im Browser testen:
http://<ip>/talas5/MessagesMap/mapTypC.aspx?m=IdMap&u=IdUser
z.B.
http://<ip>/talas5/MessagesMap/mapTypC.aspx?m=12&u=484
| Art | Ersetzte Dateien | Bemerkung |
|---|---|---|
| Kleines Update | .next/ |
node_modules nicht nötig |
| Großes Update | alle Dateien (wie Neuinstallation) | Dienst ggf. neu registrieren |
.next/ Verzeichnis nach Kompilieren kopieren und auf dem Server einfügen http://<ip>/talas5/MessagesMap/mapTypC.aspx?m=IdMap&u=IdUserwird mit husky Bibliothek automatisch erhöht bei "git commit message"
→ Wird in der Fußzeile angezeigt. Die Version wird automatisch erhöht über ein Script
(scripts/bumpVersion.js), das per Husky vor jedem Commit ausgeführt wird.
Die Version steht sowohl in package.json als auch in config/appVersion.js.
| Tool | Version | Link |
|---|---|---|
| Node.js | 20.12.1 | nodejs |
| Chrome | optional | Chrome |
| NSSM.exe | 2.24 | nssm |
Hinweis: Die Datei
MapTypC.aspxin TALAS lädt NodeMap als iFrame über Port 3000.
Wenn die Seite nicht angezeigt wird, bitte sicherstellen:
- Port 3000 ist in der Firewall freigegeben
- Die IP im Scriptteil von
MapTypC.aspxist aktuell (z. B.10.10.0.13)- Windows-Dienst
NodeMapServiceist aktiv odernpm startin Terminal ausgeführt
| Thema | Link |
|---|---|
| Benutzeranleitung | docs/guide/user-guide.md |
| Architekturübersicht | architecture.md |
| Projektstruktur | project-structure.md |
| Webservices (TALAS) | webservices.md |
| Umgebungsvariablen | env.md |
| Mockdaten-Modus | mock-data.md |
| Zustandverwaltung (Redux) | redux-zustand.md |
| Abhängigkeiten | dependencies.md |
| Lokale Entwicklung | setup-dev.md |
| FAQ & Fehlerbehandlung | faq.md |
| Glossar | faq.md |